For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).
Mojo struct
SmemPipelineBundle
struct SmemPipelineBundle[num_group_pipeline_stages: Int, num_accum_pipeline_stages: Int, num_clc_pipeline_stages: Int, Payload: TilePayload, num_epilogue_load_stages: Int = Int(0)]
Composed pipeline storage with unified barrier accessors.
Bundles InputPipelineStorage, OutputPipelineStorage, ClcPipelineStorage, TmemDeallocStorage, and optionally EpiLoadPipelineStorage into a single composed struct, eliminating ~60 lines of duplicated pipeline declarations, barrier type aliases, and barrier accessor methods from each SMEM struct.
Parameters
- num_group_pipeline_stages (
Int): Number of grouped pipeline stages for input. - num_accum_pipeline_stages (
Int): Number of accumulator pipeline stages. - num_clc_pipeline_stages (
Int): Number of CLC scheduler pipeline stages. - Payload (
TilePayload): Tile payload type (e.g. StandardTilePayload, BlockScaledTilePayload). - num_epilogue_load_stages (
Int): Number of epilogue load stages (0 = disabled).
Fields
- input_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].InputPipeline): - output_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].OutputPipeline): - clc_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcPipeline): - tmem_dealloc_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemDeallocPipeline): - epi_load_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].EpiLoadPipeline):
Implemented traits
comptime members
AccumBarriers
comptime AccumBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].OutputPipeline.BarrierArray
ClcBarriers
comptime ClcBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcPipeline.BarrierArray
ClcPipeline
comptime ClcPipeline = ClcPipelineStorage[num_clc_pipeline_stages]
ClcResponse
comptime ClcResponse = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcPipeline.ResponseArray
ClcThrottleBarriers
comptime ClcThrottleBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcPipeline.ThrottleArray
EpiLoadBarriers
comptime EpiLoadBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].EpiLoadPipeline.BarrierArray
EpiLoadPipeline
comptime EpiLoadPipeline = EpiLoadPipelineStorage[num_epilogue_load_stages]
InputBarriers
comptime InputBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].InputPipeline.BarrierArray
InputPipeline
comptime InputPipeline = InputPipelineStorage[num_group_pipeline_stages, Payload]
OutputPipeline
comptime OutputPipeline = OutputPipelineStorage[num_accum_pipeline_stages]
TmemAddr
comptime TmemAddr = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemDeallocPipeline.AddrArray
TmemDealloc
comptime TmemDealloc = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemDeallocPipeline.BarrierArray
TmemDeallocPipeline
comptime TmemDeallocPipeline = TmemDeallocStorage
Methods
input_barriers
def input_barriers(ref[AddressSpace._value] self) -> Self.InputBarriers
Returns input tile pipeline barriers.
Returns:
Self.InputBarriers
accum_barriers
def accum_barriers(ref[AddressSpace._value] self) -> Self.AccumBarriers
Returns accumulator pipeline barriers.
Returns:
Self.AccumBarriers
clc_full
def clc_full(ref[AddressSpace._value] self) -> Self.ClcBarriers
Returns CLC full barriers.
Returns:
Self.ClcBarriers
clc_empty
def clc_empty(ref[AddressSpace._value] self) -> Self.ClcBarriers
Returns CLC empty barriers.
Returns:
Self.ClcBarriers
clc_throttle
def clc_throttle(ref[AddressSpace._value] self) -> Self.ClcThrottleBarriers
Returns CLC throttle barriers.
Returns:
Self.ClcThrottleBarriers
clc_response
def clc_response(ref[AddressSpace._value] self) -> Self.ClcResponse
Returns CLC response storage.
Returns:
Self.ClcResponse
tmem_dealloc
def tmem_dealloc(ref[AddressSpace._value] self) -> Self.TmemDealloc
Returns TMEM deallocation barrier.
Returns:
Self.TmemDealloc
tmem_addr
def tmem_addr(ref[AddressSpace._value] self) -> Self.TmemAddr
Returns TMEM address storage.
Returns:
Self.TmemAddr
epilogue_load_barriers
def epilogue_load_barriers(ref[AddressSpace._value] self) -> Self.EpiLoadBarriers
Returns epilogue load pipeline barriers.
Returns:
Self.EpiLoadBarriers
epilogue_load_barrier_ptr
def epilogue_load_barrier_ptr(ref[AddressSpace._value] self) -> MbarPtr
Returns epilogue load pipeline barrier pointer.
Returns:
MbarPtr