What Is GPU Systolic Array Device Architecture
A GPU systolic array device architecture is the specialized hybrid semiconductor microarchitecture that integrates 2D planar arrays of rhythmic, neighbor-connected processing elements (PEs)—historically pioneered by H.T. Kung and Charles Leiserson in 1978—directly into the streaming execution pipelines of modern Graphics Processing Units (GPUs). In classical GPU SIMT execution, every arithmetic operation performed by an ALU (CUDA core) requires fetching two source operands from a centralized register file and writing the computed result back through shared crossbars. While flexible for general-purpose code, this register-file-centric dataflow incurs catastrophic energy consumption on dense General Matrix Multiplications (GEMMs): in an $N \times N$ matrix multiplication, memory and register access energy scales as $O(N^3)$, rapidly thermal-throttling the GPU die. A GPU systolic array device architecture circumvents this register-energy bottleneck by embedding dedicated 2D matrix computing engines (such as modern Tensor Cores and Matrix Execution Units) within each Streaming Multiprocessor (SM). In this architecture, once activation and weight operands enter the boundary of the PE grid, they pulse rhythmically across adjacent neighbor PEs over lockstep clock cycles. Each PE performs a Multiply-Accumulate (MAC) operation and passes its input operands directly to its spatial neighbors via sub-micrometer interconnects without returning to the register file or memory hierarchy. Structurally, a GPU systolic array device architecture unites four co-designed silicon components: (1) *A 2D Mesh of Pipelined Processing Elements (PEs)*, containing dual-path multiplier-accumulator units supporting multi-precision FP16, BF16, FP8, and INT8/INT4 math; (2) *Spatial Dataflow Controllers*, implementing Weight-Stationary (WS), Output-Stationary (OS), or Input-Stationary (IS) scheduling to optimize data reuse; (3) *Tile Distribution Registers & Skew FIFOs*, formatting and staging incoming matrix slices from shared memory to synchronize diagonal wavefront propagation across the array; and (4) *Asynchronous Tensor Memory Accelerators (TMA)*, streaming multi-dimensional tensor tiles directly from High Bandwidth Memory (HBM3e/HBM4) through L2 cache into on-chip SRAM, bypassing SM register files entirely. At a high level, the architectural anatomy of a GPU systolic array and its dataflow lifecycle looks like this:
A few principles are essential for understanding how GPU systolic array device architectures are structured, how spatial dataflow stationary topologies minimize register bandwidth, and why diagonal wavefront skewing is mathematically required:
Device structural hierarchy and physical classifications. Modern GPU systolic array device architectures are organized across four foundational technological domains:
1. *2D Systolic Processing Element (PE) Grid Microarchitecture:*
- Each systolic array within a GPU SM (e.g., a 4th/5th generation Tensor Core block) consists of an $M \times N$ orthogonal grid of PEs (typically $16 \times 16$ or $32 \times 32$ PEs).
- *Anatomy of a Processing Element:* A single PE contains:
- An input activation register ($A_{\text{in}}$) and horizontal forwarding register ($A_{\text{out}}$).
- A weight storage register ($B$) or vertical input register ($B_{\text{in}}$).
- A high-speed multi-precision multiplier (FP16, BF16, FP8, or INT8).
- An accumulator register ($C$) maintaining 32-bit single-precision (FP32) intermediate sum precision to prevent numerical underflow/overflow:
2. *Spatial Dataflow Topologies (Stationary Modes):*
- To maximize energy efficiency, systolic architectures select a stationary dataflow that holds one matrix operand stationary inside the PE array while streaming the others:
- *Weight-Stationary (WS) Dataflow:* Matrix weights $B$ are pre-loaded into each PE's local register and held fixed throughout the computation. Activation vectors $A$ stream horizontally from the left, while partial sums $C$ stream vertically downward, accumulating products along the column. WS dataflow is ideally suited for convolutional layers and large LLM prefill GEMMs where weight reuse is maximized.
- *Output-Stationary (OS) Dataflow:* The accumulator $C$ remains stationary inside each PE throughout the calculation, accumulating products over time. Matrix $A$ streams horizontally and Matrix $B$ streams vertically. Once accumulation finishes, the completed result $C$ is drained. OS minimizes accumulator movement energy.
- *Input-Stationary (IS) Dataflow:* Activations $A$ remain pinned in the PEs while weights and partial sums move, optimal for streaming real-time batch-1 inference.
3. *Wavefront Synchronization & Input Skewing FIFOs:*
- Because operands take exactly one clock cycle to propagate to the adjacent PE, feeding matrix rows and columns simultaneously would cause misaligned product accumulation.
- *Skew FIFOs:* Matrix inputs must be skewed diagonally in time. For an $N \times N$ systolic array, row $i$ of Matrix $A$ is delayed by $i$ clock cycles, and column $j$ of Matrix $B$ is delayed by $j$ clock cycles before injection at the array boundary:
This guarantees that activation $A_{i,k}$ and weight $B_{k,j}$ meet simultaneously at PE $(i, j)$ at clock cycle $k + i + j$.
4. *Memory Hierarchy Integration & Asynchronous TMA Engine:*
- Traditional GPU SIMD pipelines load data from L1/Shared Memory into the register file before feeding ALUs. GPU systolic arrays deploy dedicated *Tensor Memory Accelerators (TMA)*.
- The TMA engine executes asynchronous hardware-managed transfers, copying multi-dimensional tensors directly from HBM3e/HBM4 through L2 into Shared Memory using tensor coordinate descriptors without consuming SM execution threads or register slots, maintaining continuous systolic saturation.
The microarchitectural floorplan of a GPU Streaming Multiprocessor featuring embedded Systolic Tensor Arrays and the internal anatomy of a 2D Processing Element (PE) are illustrated below:
In addition to SM-level integration, the internal 2D spatial dataflow mechanics (Weight-Stationary diagonal wavefront propagation and PE circuit design) are essential. The 2D systolic mesh and PE circuit schematics are illustrated below:
Boundary fill-drain pipeline overheads, array dimension scaling ($N \times N$), and numerical precision quantization. Designing high-performance GPU systolic array device architectures requires balancing structural hardware trade-offs:
- *Fill and Drain Pipeline Latency Overhead:* A 2D systolic array of dimensions $M \times N$ computing an inner dimension $K$ requires $M + N - 2$ cycles just to fill the array with the first diagonal wavefront, and another $M + N - 2$ cycles to drain the final accumulated partial sums. The effective compute utilization ($\eta$) is governed by:
If the inner matrix dimension $K$ is small (e.g., $K = 16$ in small batch sizes), $\eta < 50\%$, and the systolic array spends half its time idling during fill/drain phases. Consequently, GPU systolic arrays operate at peak efficiency on large GEMMs where $K \ge 128\text{–}256$, achieving $>95\%$ continuous MAC utilization.
- *Array Dimension Scaling ($16 \times 16$ vs. $128 \times 128$):* While dedicated NPUs (such as Google TPU's $128 \times 128$ or $256 \times 256$ Matrix Multiply Units) favor massive monolithic arrays, GPUs deploy smaller, modular $16 \times 16$ systolic Tensor Core arrays. Smaller arrays minimize fill/drain latency penalties on diverse non-GEMM workloads, reduce silicon dark-silicon penalties, and allow flexible tiling across thousands of independent thread warps executing concurrently.
- *Microscaling & Multi-Precision Quantization (FP8, MXFP6, MXFP4):* As deep learning models scale into hundreds of billions of parameters, 16-bit systolic floating-point units become memory-bandwidth and area constrained. Modern GPU systolic arrays incorporate *Microscaling (MX)* formats. Instead of standard IEEE FP16, groups of 32 elements share a single 8-bit scale factor (E8M0) while individual weights and activations are stored in 4-bit (E2M1) or 6-bit (E3M2) floating-point formats. The systolic multiplier units compute 4-bit multiplications at $4\times$ the throughput and $8\times$ the energy efficiency of FP16, with intermediate FP32 accumulators preserving gradient fidelity.
Read a GPU systolic array device architecture through a *spatial-dataflow-energy-minimization* lens: a specialized computing microarchitecture where rhythmic, neighbor-to-neighbor operand forwarding replaces power-hungry centralized register files to maximize dense matrix arithmetic throughput.