Mojo struct
SmemPipelineBundle
struct SmemPipelineBundle[num_group_pipeline_stages: Int, num_accum_pipeline_stages: Int, num_clc_pipeline_stages: Int, Payload: TilePayload]
Composed pipeline storage with unified barrier accessors.
Bundles InputPipelineStorage, OutputPipelineStorage, ClcPipelineStorage, and TmemDeallocStorage 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).
Fields
- input_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].InputPipeline): - output_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].OutputPipeline): - clc_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcPipeline): - tmem_dealloc_pipeline (
SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].TmemDeallocPipeline):
Implemented traits
AnyType,
ImplicitlyDestructible
comptime members
__del__is_trivial
comptime __del__is_trivial = True
AccumBarriers
comptime AccumBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].OutputPipeline.BarrierArray
ClcBarriers
comptime ClcBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].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].ClcPipeline.ResponseArray
ClcThrottleBarriers
comptime ClcThrottleBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcPipeline.ThrottleArray
InputBarriers
comptime InputBarriers = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].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].TmemDeallocPipeline.AddrArray
TmemDealloc
comptime TmemDealloc = SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].TmemDeallocPipeline.BarrierArray
TmemDeallocPipeline
comptime TmemDeallocPipeline = TmemDeallocStorage
Methods
input_barriers
input_barriers(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].InputBarriers
Returns input tile pipeline barriers.
Returns:
SmemPipelineBundle
accum_barriers
accum_barriers(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].AccumBarriers
Returns accumulator pipeline barriers.
Returns:
SmemPipelineBundle
clc_full
clc_full(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcBarriers
Returns CLC full barriers.
Returns:
SmemPipelineBundle
clc_empty
clc_empty(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcBarriers
Returns CLC empty barriers.
Returns:
SmemPipelineBundle
clc_throttle
clc_throttle(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcThrottleBarriers
Returns CLC throttle barriers.
Returns:
SmemPipelineBundle
clc_response
clc_response(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].ClcResponse
Returns CLC response storage.
Returns:
SmemPipelineBundle
tmem_dealloc
tmem_dealloc(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].TmemDealloc
Returns TMEM deallocation barrier.
Returns:
SmemPipelineBundle
tmem_addr
tmem_addr(ref[AddressSpace._value._mlir_value] self) -> SmemPipelineBundle[num_group_pipeline_stages, num_accum_pipeline_stages, num_clc_pipeline_stages, Payload].TmemAddr
Returns TMEM address storage.
Returns:
SmemPipelineBundle
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!