Skip to main content

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?