Mojo struct
OutputConsumerContext
@register_passable(trivial)
struct OutputConsumerContext[origin: MutOrigin, num_stages: Int, stage_stride_cols: Int, cta_group: Int]
Context manager for epilogue consumer access to OutputRingBuffer.
Automatically calls acquire_for_epilogue on enter and release_from_epilogue on exit.
Usage: with output_rb.consumer() as stage: # ... read from stage.tmem_offset, write to GMEM ... # release_from_epilogue called automatically
Fields
- ring_buffer_ptr (
Pointer[OutputConsumerContext[origin, num_stages, stage_stride_cols, cta_group].RingBufferType, origin]):
Implemented traits
AnyType,
Copyable,
ImplicitlyCopyable,
Movable,
UnknownDestructibility
comptime members
__copyinit__is_trivial
comptime __copyinit__is_trivial = True
__del__is_trivial
comptime __del__is_trivial = True
__moveinit__is_trivial
comptime __moveinit__is_trivial = True
RingBufferType
comptime RingBufferType = OutputRingBuffer[num_stages, stage_stride_cols, cta_group]
Stage
comptime Stage = OutputStage[num_stages]
Methods
__init__
__init__(ring_buffer_ptr: Pointer[OutputConsumerContext[origin, num_stages, stage_stride_cols, cta_group].RingBufferType, origin]) -> Self
__enter__
__enter__(mut self) -> OutputConsumerContext[origin, num_stages, stage_stride_cols, cta_group].Stage
Returns:
OutputConsumerContext
__exit__
__exit__(mut self)
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!