1 unstable release
Uses new Rust 2024
new 0.5.0 | Apr 23, 2025 |
---|
#6 in #linalg
Used in 6 crates
(3 directly)
160KB
3.5K
SLoC
CubeCL Intermediate Representation
The intermediate representation produced by the CubeCL frontend, and consumed by the backends.
Reflection
Operations must implement OperationReflect
to allow for reflecting the OpCode
and argument list.
In most cases this can be derived, but for operations that take arguments other than Variable
,
the OperationCode
derive is available. This derive generates only the opcode and a corresponding
match, while leaving the remaining reflection up to manual implementation.
To make a parameter struct reflectable, use the OperationArgs
derive.
Mathematical properties
Mathematical properties like pure
and commutative
are marked directly on each operation using
the `#[operation] helper attribute.
Dependencies
~6.5MB
~111K SLoC