Utilities#
Checks#
Utility functions for checking constraints on kernels and calculating kernel attributes
- cutlass.utils.check.alignment_or_default(alignment_provided, default_alignment)[source]#
Returns alignment_provided if it is set, otherwise default_alignment and checks that alignment_provided does not exceed default_alignment.
- Parameters:
alignment_provided (int) – alignment preference specified. Can be None.
default_alignment (int) – alignment to use if alignment_provided is None
- Returns:
alignment to use
- Return type:
int
- cutlass.utils.check.calculate_smem_usage(operation)[source]#
Returns the amount of shared memory in bytes consumed by a kernel.
- Returns:
number of bytes of shared memory consumed by the operation
- Returns:
int
- cutlass.utils.check.calculate_smem_usage_per_stage(tile_description, operation_kind)[source]#
Returns the amount of shared memory in bytes consumed in a single stage of a kernel.
- Returns:
number of bytes of shared memory consumed by a single stage
- Return type:
int
- cutlass.utils.check.valid_cluster_shape(cc, cluster_shape)[source]#
Checks whether a device with cc supports a thread block cluster of shape cluster_shape.
- Parameters:
cc (int) – compute capability of device in question
cluster_shape (list) – dimensions of thread block cluster shape to check
- Returns:
tuple with the first element indicating whether the provided cluster shape is valid for the provided device and the second element being an error message
- Return type:
tuple
- cutlass.utils.check.valid_kernel_schedule(cc, kernel_schedule)[source]#
Checks whether a device with
cc
supportskernel_schedule
.- Parameters:
cc (int) – compute capability of device in question
kernel_schedule (KernelScheduleType) – kernel schedule type
- Returns:
tuple with the first element indicating whether the provided kernel schedule is valid for the provided device and the second element being an error message
- Return type:
tuple
- cutlass.utils.check.valid_stage_count(cc, td)[source]#
Checks whether a device with cc supports the number of stages within tile_description, both based on raw limits on the number of stages and based on shared memory capacity
- Parameters:
cc (int) – compute capability of device in question
td (TileDescription) – tile description to check
- Returns:
tuple with the first element indicating whether the provided tile description is valid for the provided device and the second element being an error message
- Return type:
tuple
Data Types#
Utility functions for converting between frontend datatypes and CUTLASS datatypes
- cutlass.utils.datatypes.backend_math_operation(math_op)[source]#
- Parameters:
math_op (MathOperation) –
- cutlass.utils.datatypes.construct_backend_td(td, kernel_schedule)[source]#
- Parameters:
td (TileDescription) –
kernel_schedule (KernelScheduleType) –
- Return type:
TileDescription
- cutlass.utils.datatypes.td_from_profiler_op(op)[source]#
Converts the profiler’s TileDescription in
op
into the backend TileDescription- Parameters:
op – profiler Operation
- Returns:
backend TileDescription
- Return type:
cutlass.backend.TileDescription