For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).
Mojo struct
ConsumerView
struct ConsumerView[origin: MutOrigin, ring_buffer_type: AnyStruct[RingBuffer[ring_buffer_type.dtype, ring_buffer_type.layout, ring_buffer_type.pipeline_stages, ring_buffer_type.block_rows, ring_buffer_type.block_cols, ring_buffer_type.warp_rows, ring_buffer_type.warp_cols, ring_buffer_type.reads_per_warp_block, ring_buffer_type.tile_buffers, ring_buffer_type.sync_strategy_type]], warps_computed_per_consumer: Int]
Consumer view of the unified ring buffer.
Parameters
- origin (
MutOrigin): Memory origin for pointers to the underlying ring buffer. - ring_buffer_type (
AnyStruct[RingBuffer[ring_buffer_type.dtype, ring_buffer_type.layout, ring_buffer_type.pipeline_stages, ring_buffer_type.block_rows, ring_buffer_type.block_cols, ring_buffer_type.warp_rows, ring_buffer_type.warp_cols, ring_buffer_type.reads_per_warp_block, ring_buffer_type.tile_buffers, ring_buffer_type.sync_strategy_type]]): TheRingBuffertype accessed through this view. - warps_computed_per_consumer (
Int): Number of warps each consumer computes per pipeline stage.
Fields
- ring_buffer_ptr (
ConsumerView[origin, ring_buffer_type, warps_computed_per_consumer].RingBufferPtrType): - phases (
StaticTuple[Int32, (pipeline_stages * warps_computed_per_consumer)]):
Implemented traits
AnyType,
Copyable,
Deinitable,
ImplicitlyCopyable,
Movable,
RegisterPassable,
TrivialRegisterPassable
comptime members
ConsumerTileType
comptime ConsumerTileType = ConsumerTile[origin, ring_buffer_type, warps_computed_per_consumer]
RingBufferPtrType
comptime RingBufferPtrType = Pointer[ring_buffer_type, origin]
Methods
__init__
def __init__(ring_buffer_ptr: Pointer[ring_buffer_type, origin]) -> Self
__enter__
def __enter__(mut self) -> Self
Context manager entry.
__exit__
def __exit__(mut self)
Context manager exit.
acquire_tiles
def acquire_tiles(mut self, stage: Int, consumer_iteration: Int, warp_tile_idx: Int) -> ring_buffer_type.WarpTileTupleType
Acquire tiles for reading by this consumer.
Args:
- stage (
Int): Pipeline stage to read from. - consumer_iteration (
Int): Which iteration this consumer is on (0 to warps_computed_per_consumer-1). - warp_tile_idx (
Int): Which tile this consumer wants to read.
Returns:
ring_buffer_type.WarpTileTupleType
release_tiles
def release_tiles(mut self, stage: Int, warp_tile_idx: Int)
Signal to producers that tile is free.
Args:
get_tile
def get_tile(mut self, stage: Int, consumer_iteration: Int, warp_tile_idx: Int) -> Self.ConsumerTileType
Get a context manager for accessing a tile.
Args:
- stage (
Int): Pipeline stage. - consumer_iteration (
Int): Current iteration of this consumer. - warp_tile_idx (
Int): Which tile to access.
Returns:
Self.ConsumerTileType