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
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!