IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/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 = 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​

AnyType, ImplicitlyDestructible

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​

input_barriers(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].InputBarriers

Returns input tile pipeline barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].InputBarriers

accum_barriers​

accum_barriers(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].AccumBarriers

Returns accumulator pipeline barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].AccumBarriers

clc_full​

clc_full(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcBarriers

Returns CLC full barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcBarriers

clc_empty​

clc_empty(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcBarriers

Returns CLC empty barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcBarriers

clc_throttle​

clc_throttle(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcThrottleBarriers

Returns CLC throttle barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcThrottleBarriers

clc_response​

clc_response(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcResponse

Returns CLC response storage.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].ClcResponse

tmem_dealloc​

tmem_dealloc(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemDealloc

Returns TMEM deallocation barrier.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemDealloc

tmem_addr​

tmem_addr(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemAddr

Returns TMEM address storage.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].TmemAddr

epilogue_load_barriers​

epilogue_load_barriers(ref[AddressSpace._value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].EpiLoadBarriers

Returns epilogue load pipeline barriers.

Returns:

SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload, num_epilogue_load_stages].EpiLoadBarriers

epilogue_load_barrier_ptr​

epilogue_load_barrier_ptr(ref[AddressSpace._value] self) -> MbarPtr

Returns epilogue load pipeline barrier pointer.

Returns:

MbarPtr