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
//! `KernelOp` — marker trait for typed kernel-op envelopes.
//!
//! Each backend ships concrete actors (`BlasActor`, `CudnnActor`,
//! …) whose message enums carry op-specific payloads. The marker
//! trait here lets portable code parameterize over "any op the
//! backend supports", without committing to a specific message set.
//!
//! Backends that share an op vocabulary (e.g. cuBLAS' SGEMM has a
//! direct equivalent in hipBLAS, rocBLAS, MPS) are encouraged to
//! implement `KernelOp` for a shared envelope so portable code can
//! migrate between vendors without rewriting call sites.
/// Marker for any typed op envelope. The default impl is empty —
/// the trait exists to enable bound-by-name patterns in generic
/// pipelines without imposing a specific shape on the op.
/// Generic GEMM payload. Backends with cuBLAS-equivalent libraries
/// (cuBLAS, hipBLAS, rocBLAS, MPS) all map this to their underlying
/// SGEMM. The matrices are referred to by backend-typed handles
/// (`AccelRef<f32, B>`); storage layout is column-major to match
/// the BLAS convention.
/// Generic dense FFT payload. Maps to cuFFT, rocFFT, MPS Graph FFT,
/// or VkFFT depending on the backend.