What unit measures GPU memory bandwidth and why does that number cap decode speed?
Memory bandwidth is bytes per second from HBM to compute units; decode is bandwidth-bound because each step reads all weights and the KV cache to produce one token.
Think of a chef in a giant kitchen. The recipes are stored in a warehouse next door. To cook each dish, the chef has to fetch every recipe from the warehouse and read it once. The chef's hands are blazing fast, but they can only run between the warehouse and the kitchen at a certain speed. Even if you doubled the chef's hand speed, dinner takes just as long because the actual bottleneck is the walking trip. GPU decode is the same. Each token requires reading all the model's weights from HBM (the warehouse) into the streaming multiprocessors (the kitchen). The GPU is bandwidth-bound, not compute-bound. Memory bandwidth, measured in GB/s or TB/s, is the speed of those round trips, and it sets the ceiling on how fast tokens come out.
Detailed answer & concept explanation~7 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
3 min: definition + units + H100/A100/B200 numbers + why decode arithmetic intensity is near 1 + bandwidth as the ceiling + quantization and batching as the two main escape hatches.
Real products, models, and research that use this idea.
- An H100 SXM at 3.3 TB/s reading a 14 GB weight set (Llama 3.1 8B in bf16) caps decode at about 235 tokens/sec per request before any other overhead.
- FP8 quantization in TensorRT-LLM halves the bytes-per-parameter, roughly doubling per-request decode throughput on the same H100.
- DeepSeek V4 uses multi-head latent attention to compress KV cache by 5-10x, which is a direct bandwidth win on long-context decode.
- vLLM's continuous batching shares each weight read across many concurrent requests, turning what was a bandwidth-per-request cost into a bandwidth-per-batch cost.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy does prefill not hit the same bandwidth wall as decode?
QHow exactly does batching change the bandwidth story for decode?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Quoting peak FLOP/s when explaining decode speed. Decode does very few FLOPs per byte read, so FLOP/s is irrelevant; the bandwidth number is what bounds you.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.