Mojo struct
MMAOperandOffsetFn
@register_passable(trivial)
struct MMAOperandOffsetFn[dtype: DType, BMN: Int, BK: Int, swizzle: TensorMapSwizzle, is_k_major: Bool, WMMA_MN: Int, WMMA_K: Int]
Implemented traits
AnyType
,
Copyable
,
ImplicitlyCopyable
,
Movable
,
UnknownDestructibility
Aliases
__copyinit__is_trivial
alias __copyinit__is_trivial = True
__del__is_trivial
alias __del__is_trivial = True
__moveinit__is_trivial
alias __moveinit__is_trivial = True
canonical_K
alias canonical_K = 0 if (size_of[dtype]() == 0) else ((div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) + -1) if ((((rem_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) == 0) ^ True) & ((swizzle.bytes() < 0) ^ (size_of[dtype]() < 0))) else (div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) if (swizzle != TensorMapSwizzle(0)) else BK
canonical_layout
alias canonical_layout = tile_to_descriptor[dtype, tile_layout_k_major[dtype, BMN, 0 if (size_of[dtype]() == 0) else ((div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) + -1) if ((((rem_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) == 0) ^ True) & ((swizzle.bytes() < 0) ^ (size_of[dtype]() < 0))) else (div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) if (swizzle != TensorMapSwizzle(0)) else BK, swizzle]() if is_k_major else tile_layout_k_major[dtype, BMN, BK, swizzle]() if is_k_major else tile_layout_mn_major[dtype, BMN, BK, swizzle](), is_k_major]()
canonical_layout_flat
alias canonical_layout_flat = tile_layout_k_major[dtype, BMN, 0 if (size_of[dtype]() == 0) else ((div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) + -1) if ((((rem_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) == 0) ^ True) & ((swizzle.bytes() < 0) ^ (size_of[dtype]() < 0))) else (div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) if (swizzle != TensorMapSwizzle(0)) else BK, swizzle]() if is_k_major else tile_layout_k_major[dtype, BMN, BK, swizzle]() if is_k_major else tile_layout_mn_major[dtype, BMN, BK, swizzle]()
canonical_layout_size
alias canonical_layout_size = tile_to_descriptor[dtype, tile_layout_k_major[dtype, BMN, 0 if (size_of[dtype]() == 0) else ((div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) + -1) if ((((rem_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) == 0) ^ True) & ((swizzle.bytes() < 0) ^ (size_of[dtype]() < 0))) else (div_s swizzle.bytes()._mlir_value, 1 if (size_of[dtype]() == 0) else size_of[dtype]()._mlir_value) if (swizzle != TensorMapSwizzle(0)) else BK, swizzle]() if is_k_major else tile_layout_k_major[dtype, BMN, BK, swizzle]() if is_k_major else tile_layout_mn_major[dtype, BMN, BK, swizzle](), is_k_major]().size()
layout
alias layout = tile_layout_k_major[dtype, BMN, BK, swizzle]() if is_k_major else tile_layout_mn_major[dtype, BMN, BK, swizzle]()
layout_size
alias layout_size = tile_layout_k_major[dtype, BMN, BK, swizzle]() if is_k_major else tile_layout_mn_major[dtype, BMN, BK, swizzle]().size()
Methods
__init__
__init__() -> Self
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!