Skip to main content

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:

UnsafePointer

producer_mbar

producer_mbar(self) -> MBarType

Returns:

MBarType

acquire

acquire(self)

commit_step

commit_step(mut self)

Was this page helpful?