1 unstable release

Uses new Rust 2024

new 0.5.0 Apr 23, 2025

#6 in #linalg


Used in 6 crates (3 directly)

MIT/Apache

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