HomeComputer ScienceSystolic Array: 2D Weight-Stationary Dataflow

Systolic Array: 2D Weight-Stationary Dataflow

Interactive 2D counterpart to the 3D output-stationary systolic array simulator: a genuinely different, independently-computed weight-stationary dataflow (as used in Google's original TPU MXU) where weights are systolically shifted into place before any activation streams, activations move rightward, and partial sums drain downward — with the real extra weight-load latency this design pays, verified numerically against direct matrix multiplication.

Computer Science2DModerate60 FPS📱 Mobile-adapted⇄ 3D version
2d-ai-topic-56 ↗ Open standalone

This is a genuine, independently-computed 2D counterpart to the 3D output-stationary systolic array simulator. Instead of both operands streaming diagonally into a grid of fixed accumulators, this model implements the weight-stationary dataflow used in Google's original TPU MXU: the weight matrix B is systolically shifted into every processing element first — a real extra pipeline stall of 2N−2 cycles that output-stationary designs never pay — and only then do activations stream rightward while partial sums drain downward through the same grid, with finished dot products appearing in a separate output readout strip rather than being stored in place. Every number is computed from scratch in this page: the exact same triple-nested multiply-accumulate as ordinary matrix multiplication, scheduled with real systolic timing and checked against a direct O(N³) reference computation across many random trials before shipping (see verification note in the source). Resize the array, change the clock, or load fresh random matrices to watch the load-then-drain pipeline play out.

⚙ Under the hood

A genuinely different, independently-computed 2D counterpart to the 3D output-stationary systolic array: this weight-stationary dataflow (as used in Google's original TPU MXU) shifts the weight matrix into the grid first — paying a real 2N-2 cycle load stall the 3D model never pays — then streams activations rightward and drains partial sums downward into a separate output readout, verified numerically against direct matrix multiplication.

ai hardwaresystolic arrayweight stationarymatrix multiplicationcomputer architectureTPU

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)