Mojo module
ring_buffer
Ring buffer for SM100 producer-consumer synchronization.
Provides SM90-style get_tiles() API for TMA-MMA pipeline synchronization.
Usage: var ring_buffer = RingBuffer[...](pipeline, a_tiles, b_tiles)
# Producer: tiles contains stage, barrier, a_tiles, b_tiles
with ring_buffer.producer() as producer:
with producer.get_tiles() as tiles:
load_tiles(tiles) # Access tiles.a_tiles[stage * k_group + j]
# Consumer: tiles contains stage, mbar, a_tiles, b_tiles
with ring_buffer.consumer() as consumer:
with consumer.get_tiles() as tiles:
mma_tiles(tiles) # Access tiles.a_tiles[stage * k_group + j]comptime values
MbarPtr
comptime MbarPtr = LegacyUnsafePointer[SharedMemBarrier, address_space=AddressSpace.SHARED]
Structs
-
Consumer: Consumer view with get_tiles() API. -
ConsumerTiles: Context manager for consumer access with stage, barrier, and tile arrays. -
OutputConsumerContext: Context manager for epilogue consumer access to OutputRingBuffer. -
OutputProducerContext: Context manager for MMA producer access to OutputRingBuffer. -
OutputRingBuffer: Ring buffer for MMA→Epilogue output pipeline. -
OutputStage: Stage info for output pipeline. -
Producer: Producer view with get_tiles() API. -
ProducerTiles: Context manager for producer access with stage, barrier, and tile arrays. -
RingBuffer: Ring buffer with tile storage for SM100 producer-consumer sync.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!