Mojo struct
PipelineBody
struct PipelineBody
Builder for declarative pipeline body specifications.
Use as a context manager: with PipelineBody() as b:. Accumulates
logical OpDesc entries via role-typed methods and combinators.
Call b.done() to finalize the builder and return the op list
for annotate_ops() and subsequent scheduling.
Implemented traits
AnyType,
ImplicitlyDestructible,
Movable
Methods
__init__
__init__(out self)
__enter__
__enter__(var self) -> Self
Enable with PipelineBody() as b: syntax for scoped building.
load
load(mut self, tag: Int, *, ch: Int = -1, stage: Int = 0, sub: Int = 0, k: KOffsetKind = KOffsetKind.NONE)
Append a global load (DRAM → LDS or DRAM → registers).
store
store(mut self, tag: Int, *, ch: Int = -1, stage: Int = 0, sub: Int = 0)
Append a shared memory store (registers → LDS).
frag
frag(mut self, tag: Int, *, ch: Int = -1, stage: Int = 0, sub: Int = 0)
Append a fragment load (LDS → registers).
compute
compute(mut self, tag: Int, *, stage: Int = 0, sub: Int = 0)
Append a compute/MMA op.
barrier
barrier(mut self)
Append a barrier.
op
op(mut self, tag: Int, *, ch: Int = -1, stage: Int = 0, sub: Int = 0, k: KOffsetKind = KOffsetKind.NONE)
Append a generic logical op (escape hatch for non-standard ops).
fan
fan[N: Int](mut self, tag: Int, *, ch: Int = -1, stage: Int = 0, k: KOffsetKind = KOffsetKind.NONE)
Append N ops with subtile=0..N-1 (fan-out pattern).
grid
grid[M: Int, N: Int](mut self, tag: Int, *, ch: Int = -1)
Append M×N ops with stage=i, subtile=j (2D grid pattern).
First dimension maps to stage (0..M-1), second to subtile (0..N-1). For flat patterns where only subtile varies, use fan[M*N] instead.
extend
extend(mut self, mut other: Self)
Absorb all ops from another builder (for hierarchical composition).
done
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!