Memory Wall

Definition

The memory wall is the widening gap between how fast compute (peak FLOP/s) scales and how fast memory bandwidth (HBM) scales across GPU generations. Because compute grows far faster than the bandwidth feeding it, the ridge point marches right each generation: a kernel must do more arithmetic per byte to stay compute-bound, so ops that were compute-bound on old hardware silently become memory-bound on new hardware. “Just add more FLOPs” stopped being a strategy.

Key math

GPUYearPeak FP16/BF16 TCHBM BWRidge (FLOP/byte)
P1002016~21 TFLOP/s720 GB/s~29
V1002017125 TFLOP/s900 GB/s~139
A1002020312 TFLOP/s2.0 TB/s~156
H1002022990 TFLOP/s3.35 TB/s~295
B2002024/25~2250 TFLOP/s~8 TB/s~280

P100→H100: compute grew ~47×, bandwidth only ~4.6×. Ridge point climbs from ~29 to ~295 FLOP/byte.

Energy corollary (ratios are the point, ~1 pJ per on-chip FMA):

OperationEnergy
FP16/BF16 multiply-add (on-chip)~1 pJ
Read from register / SMEM~1–10 pJ
Read from L2~20–100 pJ
Read a word from HBM~100–1000× a FLOP
Move a word host↔device (PCIe)~1000s× a FLOP

An off-chip access costs 2–3 orders of magnitude more energy than the FLOP it feeds — so minimizing HBM traffic is simultaneously a speed, power, and cost optimization (“IO-aware” design).

Why it matters

As accelerators get faster, a growing fraction of any LLM workload becomes bandwidth-limited. Lower precision (FP8) doubles compute but not bandwidth, pushing the ridge point further right — more ops go memory-bound. The lever that keeps mattering is arithmetic intensity, raised by reuse (tiling, fusion), not faster math. This is the deep reason FlashAttention, fused elementwise chains, and tiled GEMM exist.

Taught in

See also