Skip to main content

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

done(self) -> List[OpDesc]

Return the logical op list.

Returns:

List

Was this page helpful?