02 Chapter 1 · inner pipeline
Kernel tour
Four instructions, in the order a GEMM inner loop actually issues them: build the predicate, load a vector, accumulate the outer product, store one slice.
Next walks the four instruction pages that already exist — whilelt, then ld1w, fmopa, and st1w. After the store, the intro continues at the microkernel.
-
1
SVE
WHILELT
Scalar bounds become a predicate: which lanes are live for this iteration.
Play this instructionwhilelt p0.s, x0, x1
-
2
SVE
LD1W
With that predicate, contiguous words move from memory into a Z register.
Play this instructionld1w { z0.s }, p0/z, [x0]
-
3
SME
FMOPA
The column vector and the row vector accumulate an outer product into the ZA tile.
Play this instructionfmopa za0.s, p0/m, p1/m, z0.s, z1.s
-
4
SME
ST1W
One horizontal slice of ZA is written back to memory.
Play this instructionst1w { za0h.s[w12, 0] }, p0, [x0]