Skip to main content

Mojo struct

ProducerView

struct ProducerView[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_processed_per_producer: Int]

Producer view of the unified ring buffer.

Fields

  • ring_buffer_ptr (ProducerView[origin, ring_buffer_type, warps_processed_per_producer].RingBufferPtrType):
  • phases (StaticTuple[Int32, (pipeline_stages * warps_processed_per_producer)]):

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDestructible, Movable, RegisterPassable, TrivialRegisterPassable

comptime members

ProducerTileType

comptime ProducerTileType = ProducerTile[origin, ring_buffer_type, warps_processed_per_producer]

RingBufferPtrType

comptime RingBufferPtrType = Pointer[ring_buffer_type, origin]

Methods

__init__

__init__(ring_buffer_ptr: Pointer[ring_buffer_type, origin]) -> Self

__enter__

__enter__(mut self) -> Self

Context manager entry.

__exit__

__exit__(mut self)

Context manager exit.

acquire_tiles

acquire_tiles(mut self, stage: Int, producer_iteration: Int, warp_tile_idx: Int) -> ring_buffer_type.WarpTileTupleType

Acquire tiles for writing by this producer.

Args:

  • stage (Int): Pipeline stage to write to.
  • producer_iteration (Int): Which iteration this producer is on (0 to warps_processed_per_producer - 1).
  • warp_tile_idx (Int): Which tile this producer is responsible for.

Returns:

ring_buffer_type.WarpTileTupleType

release_tiles

release_tiles(mut self, stage: Int, warp_tile_idx: Int)

Signal to consumers that tile is ready.

get_tile

get_tile(mut self, stage: Int, warp_tile_idx: Int, producer_iteration: Int) -> ProducerView[origin, ring_buffer_type, warps_processed_per_producer].ProducerTileType

Get a context manager for accessing a tile.

Args:

  • stage (Int): Pipeline stage.
  • warp_tile_idx (Int): Which tile to access.
  • producer_iteration (Int): Current iteration of this producer.

Returns:

ProducerView

Was this page helpful?