1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! # baracuda-kernels-types
//!
//! Shared type vocabulary for the baracuda ML kernel facade.
//!
//! This crate has no behavior of its own — it ships pure-data types that
//! are common to every member of the kernel facade ecosystem:
//!
//! - The [`KernelDtype`] umbrella marker trait + the [`Element`] /
//! [`IntElement`] / [`FpElement`] / [`BinElement`] / [`BiasElement`]
//! trait hierarchy plus the [`ScalarType`] alpha/beta projection.
//! - Wrapper types ([`S8`], [`U8`], [`S4`], [`U4`], [`Bin`],
//! [`F32Strict`], [`Fp8E4M3`], [`Fp8E5M2`]) that drive kernel
//! selection at the Rust type level.
//! - Tag enums ([`ElementKind`], [`MathPrecision`], [`BiasElementKind`],
//! [`LayoutSku`], [`ArchSku`], [`EpilogueKind`], [`ActivationKind`]).
//! - Borrowed device-buffer views ([`MatrixRef`], [`MatrixMut`],
//! [`VectorRef`]).
//! - Plan-layer descriptors ([`PlanPreference`], [`PrecisionGuarantee`],
//! [`Workspace`]).
//!
//! # 1.0-freeze stability (Phase 28)
//!
//! Most op-family discriminant enums (`BinaryKind`, `UnaryKind`,
//! `ReduceKind`, `ScanKind`, `SoftmaxKind`, `NormalizationKind`,
//! `LossKind`, `LinalgKind`, `ConvKind`, `PoolKind`, `AttentionKind`,
//! `IndexingKind`, `SegmentKind`, `EmbeddingKind`, `QuantizeKind`,
//! `GgufBlockFormat`, `MoeKind`, `SortKind`, `ImageKind`, `FftKind`,
//! `RandomKind`, `ShapeLayoutKind`, `BinaryCmpKind`, `TernaryKind`,
//! `GatedActivationKind`, `ArgReduceKind`, `PadMode`) plus the category
//! / backend tag enums (`OpCategory`, `BackendKind`) and the auxiliary
//! index-dtype tag enums (`IndexElementKind`, `IndexOutputKind`) are
//! marked `#[non_exhaustive]` as of Phase 28. Downstream `match` arms
//! must include a `_ =>` catch-all to remain forward-compatible with
//! new variants.
//!
//! The kernel-dispatch-keying enums `ElementKind`, `BiasElementKind`,
//! `LayoutSku`, `ArchSku`, `EpilogueKind`, `ActivationKind`, and
//! `Workspace<'a>` are **intentionally** left exhaustive — they're
//! the keys per-arch / per-layout / per-epilogue / per-bias-dtype
//! kernel dispatchers exhaustively match on, so adding a new variant
//! is a deliberate workspace-wide event that ought to surface as a
//! build break across every match site.
//!
//! The types here were previously defined in `baracuda-cutlass::types`;
//! they were lifted out so that `baracuda-kernels` (the unified ML op
//! facade) and any sibling wrapper crate (`baracuda-cublas`,
//! `baracuda-cudnn`, …) can share one vocabulary instead of each
//! re-declaring its own.
//!
//! The trait `Element` was previously named `CutlassElement`;
//! `baracuda-cutlass` keeps the old name available as a re-export for
//! back-compat. The semantics are unchanged.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;