tilelang.contrib.cutedsl.gemm_v2_sp¶
Sparse (2:4 structured) WGMMA helpers for the CuTeDSL backend.
CuTeDSL has no sparse WGMMA primitive, so the wgmma.mma_async.sp family is
emitted as inline PTX here. The operand layout mirrors the
cute::SM90::GMMA::SPARSE::GMMA_*_SS/_RS functors in
cute/arch/mma_sm90_gmma_sparse.hpp: the accumulator registers are the tied
D/C operands, e is the per-instruction 32-bit metadata register taken from
the E fragment, and the sparse selector is an immediate.
Functions¶
|
Sparse WGMMA shared-shared: A and B come from shared memory descriptors. |
|
Sparse WGMMA register-shared: A from registers, B from a descriptor. |
Module Contents¶
- tilelang.contrib.cutedsl.gemm_v2_sp.wgmma_sp_ss(A_dtype, B_dtype, C_dtype, M, N, K, tnspA, tnspB, scaleA, scaleB, spsel, desc_a, desc_b, C_ptr, scale_out, E_ptr, e_offset)¶
Sparse WGMMA shared-shared: A and B come from shared memory descriptors.
- Parameters:
A_dtype (str)
B_dtype (str)
C_dtype (str)
M (cutlass.cutlass_dsl.Constexpr[int])
N (cutlass.cutlass_dsl.Constexpr[int])
K (cutlass.cutlass_dsl.Constexpr[int])
tnspA (cutlass.cutlass_dsl.Constexpr[bool])
tnspB (cutlass.cutlass_dsl.Constexpr[bool])
scaleA (cutlass.cutlass_dsl.Constexpr[int])
scaleB (cutlass.cutlass_dsl.Constexpr[int])
spsel (cutlass.cutlass_dsl.Constexpr[int])
C_ptr (cutlass.cute.Pointer)
scale_out (int)
E_ptr (cutlass.cute.Pointer)
- tilelang.contrib.cutedsl.gemm_v2_sp.wgmma_sp_rs(A_dtype, B_dtype, C_dtype, M, N, K, tnspB, scaleA, scaleB, spsel, A_ptr, desc_b, C_ptr, scale_out, E_ptr, e_offset)¶
Sparse WGMMA register-shared: A from registers, B from a descriptor.
Sparse register A is always K-major, so it takes no trans-a operand.
- Parameters:
A_dtype (str)
B_dtype (str)
C_dtype (str)
M (cutlass.cutlass_dsl.Constexpr[int])
N (cutlass.cutlass_dsl.Constexpr[int])
K (cutlass.cutlass_dsl.Constexpr[int])
tnspB (cutlass.cutlass_dsl.Constexpr[bool])
scaleA (cutlass.cutlass_dsl.Constexpr[int])
scaleB (cutlass.cutlass_dsl.Constexpr[int])
spsel (cutlass.cutlass_dsl.Constexpr[int])
A_ptr (cutlass.cute.Pointer)
C_ptr (cutlass.cute.Pointer)
scale_out (int)
E_ptr (cutlass.cute.Pointer)