Skip to main content

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?