Mojo struct
DecodeOutProducer
@register_passable(trivial)
struct DecodeOutProducer[dtype: DType, config: MLA_SM100_Decode_Config]
Fields
- pipe (
DecodeOutProducer[dtype, config].OutPipeType): - smem (
UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]):
Implemented traits
AnyType,
Copyable,
ImplicitlyCopyable,
ImplicitlyDestructible,
Movable,
TrivialRegisterType
comptime members
__copyinit__is_trivial
comptime __copyinit__is_trivial = True
__del__is_trivial
comptime __del__is_trivial = True
__moveinit__is_trivial
comptime __moveinit__is_trivial = True
block_per_warp
comptime block_per_warp = (DecodeOutProducer[dtype, config].col_per_warp // config)
blocks_per_stage
comptime blocks_per_stage = 2 if (DecodeOutProducer[dtype, config].block_per_warp != 0)._mlir_value else 1
col_per_warp
comptime col_per_warp = (config // 2)
num_out_blocks
comptime num_out_blocks = (config // config)
num_out_stages
comptime num_out_stages = (DecodeOutProducer[dtype, config].num_out_blocks // DecodeOutProducer[dtype, config].blocks_per_stage)
out_stage_bytes
comptime out_stage_bytes = (DecodeOutProducer[dtype, config].out_stage_elems * size_of[dtype]())
out_stage_elems
comptime out_stage_elems = (config * config)
OutPipeType
comptime OutPipeType = OutPipeline[DecodeOutProducer[dtype, config].num_out_stages, WARPGROUP_SIZE, 1]
Methods
__init__
__init__(pipe: OutPipeline[DecodeOutProducer[dtype, config].num_out_stages, WARPGROUP_SIZE, 1], smem: UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]) -> Self
init
init(self)
stage_base_ptr
stage_base_ptr(self, half_idx: Int) -> UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]
Returns:
producer_mbar
producer_mbar(self) -> MBarType
Returns:
MBarType
acquire
acquire(self)
commit_step
commit_step(mut self)
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!