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
use crateHardware;
use ;
use ;
/// The half of a routine's `prepare` the blueprint does not hold as a field:
/// the cube the levels imply on this device, the grid the extents imply, and
/// the operand widths as the launch binds them.
///
/// `cube_dim` is read off the blueprint's levels and the device's plane width,
/// and cubecl folds it into the compilation key itself; `cube_count` changes
/// per call and compiles nothing. `V` is the widths the blueprint decided
/// (the widths it binds at), `()` for the families that bind every operand
/// scalar or read no width.
///
/// Not `Copy`/`Eq`: `CubeCount` has a `Dynamic` variant carrying a handle.