Skip to main content

Mojo struct

DecodeOutConsumer

struct DecodeOutConsumer[dtype: DType, config: MLA_SM100_Decode_Config]

Fields​

  • ​pipe (DecodeOutConsumer[dtype, config].OutPipeType):
  • ​smem (UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]):

Implemented traits​

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDestructible, Movable, RegisterPassable, TrivialRegisterPassable

comptime members​

block_per_warp​

comptime block_per_warp = (DecodeOutConsumer[dtype, config].col_per_warp // config)

blocks_per_stage​

comptime blocks_per_stage = 2 if (DecodeOutConsumer[dtype, config].block_per_warp != 0) 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 = (DecodeOutConsumer[dtype, config].num_out_blocks // DecodeOutConsumer[dtype, config].blocks_per_stage)

out_stage_elems​

comptime out_stage_elems = (config * config)

OutPipeType​

comptime OutPipeType = OutPipeline[DecodeOutConsumer[dtype, config].num_out_stages, WARPGROUP_SIZE, 1]

Methods​

__init__​

__init__(pipe: OutPipeline[DecodeOutConsumer[dtype, config].num_out_stages, WARPGROUP_SIZE, 1], smem: UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]) -> Self

stage_base_ptr​

stage_base_ptr(self, half_idx: Int) -> UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]

Returns:

UnsafePointer[Scalar[dtype], MutAnyOrigin, address_space=AddressSpace.SHARED]

wait​

wait(self)

release​

release(mut self, e: Int32)