GPU·

Co-design linear attention for TPU systolic arrays — Systolic Linear Attention — What does it mean?

The news. On November 4, 2026, Google researchers posted Systolic Linear Attention (SLA). On a 2,048-chip TPU v7x pre-training study of sparse mixture-of-experts models from 6.5B to 63.1B parameters, SLA trained 11%–24% faster than KDA at similar perplexity. A full SLA layer ran 1.6×–2.5× faster than the open-source Tokamax KDA kernel. Read the paper →

Picture the matrix unit as a baking sheet that is always the same size. The sheet bakes in one pass whether it holds a full tray or a single small batch, so a mostly empty sheet wastes oven time. A TPU v7x matrix unit is a 256×256 sheet. GPU tensor cores are far smaller tiles, which is why GPU-tuned linear-attention layers, with 128-wide keys and values per head, fit them well. Put the same 128-wide head on a TPU and it covers about a quarter of the sheet. This is the same rule as why matrix dimensions must align to the hardware tile, pushed to a larger tile.

Linear attention itself is simple to state: instead of a KV cache that grows, it keeps one state matrix and updates it for every token. The gated delta layers (Gated DeltaNet, KDA, GDN-2) add two refinements, a delta-rule overwrite (erase the old value stored for a key, then write the new one) and a decay gate, and on a GPU the per-channel decay and the in-chunk solve they need are cheap. On a TPU the paper identifies three bottlenecks: narrow states that leave tiles padded, per-channel decay that runs on the slow vector unit, and a sequential triangular solve that also runs there. SLA answers each one in turn, as the table shows.

Bottleneck on a TPUWhat a direct GPU port doesSLA's change
Narrow state128-wide keys and values fill only a fraction of each 256×256 tileWiden keys to 256 and let four value heads share them, so the packed state fills whole tiles
Per-channel decayEvery channel is rescaled separately on the vector unitGroup the decay gates into four 64-channel tiles, so intra-chunk scores become four 64-wide matrix products
Sequential solveThe in-chunk triangular solve runs step by step on the vector unitExpress the solve as block matrix products (block-doubling or a block Neumann series) on the matrix unit

The last piece is fusion. Once every stage of the chunk computation is a matrix product, the whole forward pass can run as one kernel that keeps its intermediate results in the 64 MiB VMEM scratchpad, the chip's fast on-chip memory. The backward pass recomputes two intermediate matrices instead of storing them in HBM. Skipping those round trips is the same idea as operator fusion: fewer trips to slow memory, more time inside the compute unit. It also echoes the data reuse that makes tiling work.

The paper's stage breakdown shows how the pieces combine. Fusing the GPU-shaped KDA layer gains only 1.03×. Reshaping the layer without fusing it gives 1.79×. Doing both gives 2.38×. Two numbers explain why. First, the tile arithmetic: a 256×256 tile has 65,536 cells and a 128×128 state has 16,384, which is 25% (this is geometry, assuming the compiler pads the state to the full tile). Second, the ratio of the last two measurements: 2.38 divided by 1.79 is about 1.33 (a figure derived here from the two reported totals, not a separately reported benchmark), so the same fusion that added 3% on the old shape adds about 33% once the layer is reshaped. Fusion only pays when the work inside it is already matrix-shaped.

Read the results with their limits in mind. The paper notes that its comparisons change the model as well as the kernel: SLA uses fewer key heads, a BF16 state, and grouped decay. Its abstract credits the kernel speedup primarily to head sharing and fusion, and the authors say they did not build a fused KDA or GDN kernel with the same 256-wide, 4:1 head sharing, so the tile-grouped gate's own contribution is not separated out. Without 4:1 sharing, the 256-wide SLA variants ran at 0.67×–0.77× of the Tokamax baseline. All measurements are on TPUs; the paper makes no claim about GPUs. On an identical portable kernel stack, SLA's forward speedup over a portable FP32 KDA baseline grows from 4.5× on TPU v4 to 6.7× on TPU v7x, which tracks the widening gap between matrix-unit and vector-unit throughput (a different baseline from the Tokamax numbers above).

Goes deeper in: GPU & CUDA → Tensor Cores & Mixed Precision → Dimension Alignment

Frequently Asked Questions

Check what you knowMap your AI & GPU knowledge across every track — free, role-based