Expand description
Cube Frontend Types.
Re-exports§
pub use branch::range;
pub use branch::range;
pub use branch::range_stepped;
pub use branch::range_stepped;
pub use branch::RangeExpand;
pub use branch::SteppedRangeExpand;
Modules§
- ABSOLUTE_
POS - The position of the working unit in the whole cube kernel, without regards to cubes and axis.
- ABSOLUTE_
POS_ X - The index of the working unit in the whole cube kernel along the X axis, without regards to cubes.
- ABSOLUTE_
POS_ Y - The index of the working unit in the whole cube kernel along the Y axis, without regards to cubes.
- ABSOLUTE_
POS_ Z - The index of the working unit in the whole cube kernel along the Z axis, without regards to cubes.
- CUBE_
COUNT - The number of cubes launched.
- CUBE_
COUNT_ X - The number of cubes launched along the X axis.
- CUBE_
COUNT_ Y - The number of cubes launched along the Y axis.
- CUBE_
COUNT_ Z - The number of cubes launched along the Z axis.
- CUBE_
DIM - The total amount of working units in a cube.
- CUBE_
DIM_ X - The dimension of the cube along the X axis.
- CUBE_
DIM_ Y - The dimension of the cube along the Y axis.
- CUBE_
DIM_ Z - The dimension of the cube along the Z axis.
- CUBE_
POS - The cube position, without regards to axis.
- CUBE_
POS_ X - The cube position along the X axis.
- CUBE_
POS_ Y - The cube position along the Y axis.
- CUBE_
POS_ Z - The cube position along the Z axis.
- PLANE_
DIM - The total amount of working units in a plane.
- UNIT_
POS - The position of the working unit inside the cube, without regards to axis.
- UNIT_
POS_ PLANE - The relative position of the working unit inside the plane, without regards to cube dimensions.
- UNIT_
POS_ X - The position of the working unit inside the cube along the X axis.
- UNIT_
POS_ Y - The position of the working unit inside the cube along the Y axis.
- UNIT_
POS_ Z - The position of the working unit inside the cube along the Z axis.
- add
- add_
assign - add_
assign_ array_ op - add_
assign_ op - and
- assign
- bitand
- bitand_
assign_ array_ op - bitand_
assign_ op - bitor
- bitor_
assign_ array_ op - bitor_
assign_ op - bitxor
- bitxor_
assign_ array_ op - bitxor_
assign_ op - branch
- cast
- cmma
- This module exposes cooperative matrix-multiply and accumulate operations.
- copy_
bulk - cube_
comment - div
- div_
assign_ array_ op - div_
assign_ op - eq
- ge
- gt
- index
- index_
assign - le
- lt
- mul
- mul_
assign_ array_ op - mul_
assign_ op - ne
- neg
- not
- or
- plane_
all - Module containing the expand function for plane_all().
- plane_
any - Module containing the expand function for plane_any().
- plane_
broadcast - Module containing the expand function for plane_broadcast().
- plane_
elect - Module containing the expand function for plane_elect().
- plane_
max - Module containing the expand function for plane_max().
- plane_
min - Module containing the expand function for plane_min().
- plane_
prod - Module containing the expand function for plane_prod().
- plane_
sum - Module containing the expand function for plane_sum().
- rem
- rem_
assign_ array_ op - rem_
assign_ op - select
- select_
many - shl
- shl_
assign_ array_ op - shl_
assign_ op - shr
- shr_
assign_ array_ op - shr_
assign_ op - sub
- sub_
assign_ array_ op - sub_
assign_ op - synchronization
Macros§
- debug_
print - Print a formatted message using the target’s debug print facilities. The format string is target specific, but Vulkan and CUDA both use the C++ conventions. WGSL isn’t currently supported.
- debug_
print_ expand - Print a formatted message using the target’s debug print facilities. The format string is target specific, but Vulkan and CUDA both use the C++ conventions. WGSL isn’t currently supported.
Structs§
- Array
- A contiguous array of elements.
- Array
Compilation Arg - Array
Handle Ref - Tensor representation with a reference to the server handle.
- Atomic
- An atomic numerical type wrapping a normal numeric primitive. Enables the use of atomic operations, while disabling normal operations. In WGSL, this is a separate type - on CUDA/SPIR-V it can theoretically be bitcast to a normal number, but this isn’t recommended.
- Cube
Context - Expand
Element Typed - Expand type associated with a type.
- Float
Expand - Line
- A contiguous list of elements that supports auto-vectorized operations.
- Registry
- It is similar to a map, but where the keys are stored at comptime, but the values can be runtime variables.
- Scalar
Arg - Sequence
- A sequence of cube types that is inlined during compilation.
- Sequence
Arg - Sequence
Compilation Arg - Sequence
Expand - Expand type of Sequence.
- Shared
Memory - Slice
- A read-only contiguous list of elements
- Slice
Mut - A read-write contiguous list of elements.
- Tensor
- The tensor type is similar to the array type, however it comes with more metadata such as stride and shape.
- Tensor
Compilation Arg - Compilation argument for a tensor.
- Tensor
Handle Ref - Tensor representation with a reference to the server handle, the strides and the shape.
- flex32
- A floating point type with relaxed precision, minimum
f16
, max [f32
]. - tf32
- A 19-bit floating point type implementing the
tfloat32
format.
Enums§
- Array
Arg - Atomic
Op - Expand
Element - Reference to a JIT variable
- Tensor
Arg - Argument to be used for tensors passed as arguments to kernels.
Constants§
- ABSOLUTE_
POS - The position of the working unit in the whole cube kernel, without regards to cubes and axis.
- ABSOLUTE_
POS_ X - The index of the working unit in the whole cube kernel along the X axis, without regards to cubes.
- ABSOLUTE_
POS_ Y - The index of the working unit in the whole cube kernel along the Y axis, without regards to cubes.
- ABSOLUTE_
POS_ Z - The index of the working unit in the whole cube kernel along the Z axis, without regards to cubes.
- CUBE_
COUNT - The number of cubes launched.
- CUBE_
COUNT_ X - The number of cubes launched along the X axis.
- CUBE_
COUNT_ Y - The number of cubes launched along the Y axis.
- CUBE_
COUNT_ Z - The number of cubes launched along the Z axis.
- CUBE_
DIM - The total amount of working units in a cube.
- CUBE_
DIM_ X - The dimension of the cube along the X axis.
- CUBE_
DIM_ Y - The dimension of the cube along the Y axis.
- CUBE_
DIM_ Z - The dimension of the cube along the Z axis.
- CUBE_
POS - The cube position, without regards to axis.
- CUBE_
POS_ X - The cube position along the X axis.
- CUBE_
POS_ Y - The cube position along the Y axis.
- CUBE_
POS_ Z - The cube position along the Z axis.
- PLANE_
DIM - The total amount of working units in a plane.
- UNIT_
POS - The position of the working unit inside the cube, without regards to axis.
- UNIT_
POS_ PLANE - The relative position of the working unit inside the plane, without regards to cube dimensions.
- UNIT_
POS_ X - The position of the working unit inside the cube along the X axis.
- UNIT_
POS_ Y - The position of the working unit inside the cube along the Y axis.
- UNIT_
POS_ Z - The position of the working unit inside the cube along the Z axis.
Traits§
- Abs
- ArgSettings
- Defines the argument settings used to launch a kernel.
- BitCast
- Enables reinterpet-casting/bitcasting from any floating point value to any integer value and vice versa
- BoolOps
- Extension trait for bool.
- Cast
- Enable elegant casting from any to any CubeElem
- Ceil
- Clamp
- Compilation
Arg - Argument used during the compilation of kernels.
- Cos
- Count
Ones - Cube
Index - Fake indexation so we can rewrite indexes into scalars as calls to this fake function in the non-expanded function
- Cube
Index Mut - Cube
Primitive - Form of CubeType that encapsulates all primitive types: Numeric, UInt, Bool
- Cube
Type - Types used in a cube function must implement this trait
- Dot
- Erf
- Exp
- Expand
Element Base Init - Float
- Floating point numbers. Used as input in float kernels
- Floor
- Index
- Init
- Trait to be implemented by cube types implementations.
- Int
- Signed or unsigned integer. Used as input in int kernels
- Into
Runtime - Trait useful for cube types that are also used with comptime.
- Launch
Arg - Defines a type that can be used as argument to a kernel.
- Launch
ArgExpand - Defines how a launch argument can be expanded.
- Log
- Log1p
- Magnitude
- Max
- Min
- Normalize
- Not
- Numeric
- Type that encompasses both (unsigned or signed) integers and floats Used in kernels that should work for both.
- Option
Ext - Powf
- Recip
- Registry
Query - To find an item from the registry, the query must be able to be translated to the actual key type.
- Remainder
- Reverse
Bits - Round
- Scalar
ArgSettings - Similar to ArgSettings, however only for scalar types that don’t depend on the Runtime trait.
- Sin
- Sized
Container - Slice
Operator - Slice
Operator Expand - Sqrt
- Tanh
Functions§
- array_
assign_ binary_ op_ expand - copy_
bulk - Bulk copy
length
elements between two array-likes without intermediates. - debug_
call_ expand - Calls a function and inserts debug symbols if debug is enabled.
- debug_
source_ expand - Adds source instruction if debug is enabled
- fma
- Fused multiply-add
A*B+C
. - fma_
expand - Expand method of fma.
- init_
expand - plane_
all - Perform a reduce all operation across all units in a plane.
- plane_
any - Perform a reduce any operation across all units in a plane.
- plane_
broadcast - Broadcasts the value from the specified plane unit at the given index to all active units within that plane.
- plane_
elect - Returns true if the cube unit has the lowest plane_unit_id among active unit in the plane
- plane_
max - Perform a reduce max operation across all units in a plane.
- plane_
min - Perform a reduce min operation across all units in a plane.
- plane_
prod - Perform a reduce prod operation across all units in a plane.
- plane_
sum - Perform a reduce sum operation across all units in a plane.
- printf_
expand - Prints a formatted message using the print debug layer in Vulkan, or
printf
in CUDA. - select
- Executes both branches, then selects a value based on the condition. This should be branchless, but might depend on the compiler.
- select_
many - Same as [select] but with lines instead.
- slice_
expand - spanned_
expand - Calls an intrinsic op and inserts debug symbols if debug is enabled.
- unary_
expand - unary_
expand_ fixed_ output