Skip to main content

Mojo struct

DecodeOutConsumer

@register_passable(trivial) 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, 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 = (DecodeOutConsumer[dtype, config].col_per_warp // config)

blocks_per_stage

comptime blocks_per_stage = 2 if (DecodeOutConsumer[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 = (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

wait

wait(self)

release

release(mut self, e: Int32)

Was this page helpful?