Find the wrong move in 'decode is slow, so let's switch to a smaller-FLOP model'
Click any words you think contain an error. Click again to unmark.
Decode is memory-bandwidth-bound at batch 1: per-step time is set by reading weights and KV cache from HBM, not by the matmul.
Picture a chef whose kitchen is so small that they can only carry one armful of ingredients at a time from the pantry. Once the ingredients are on the counter, chopping them is fast; the slow part is the trip to the pantry and back. Speeding up the chopping does nothing if the chef still has to make the same long walk for the same ingredients. Decode in a large language model is like that. Each new token forces the GPU to fetch the same enormous bag of weights from far-away memory. The actual math is done in a blink once the data arrives. A model that does thirty percent less chopping still walks the same distance to fetch the same load, so the meal is not faster.
Detailed answer & concept explanation~9 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: name decode as bandwidth-bound at batch 1, derive the TPOT floor from weights/HBM bandwidth, debunk the FLOP-reduction prediction, and prescribe the bytes-per-step levers (quantization, GQA/MLA, batching, faster GPU).
Real products, models, and research that use this idea.
- vLLM and SGLang both report that single-stream Llama-3 70B decode at batch 1 sustains roughly 30-50 tok/s on A100 and 70-100 tok/s on H100, scaling with HBM bandwidth rather than FLOPs.
- NVIDIA's H200 release notes pitch the 76% bandwidth bump over H100 as the headline inference win, not the unchanged FLOP rate.
- FP8 weight quantization in TensorRT-LLM and vLLM consistently delivers ~1.7-1.9x TPOT improvements on the same GPU, matching the predicted bandwidth scaling.
- DeepSeek-V3 and V4 use MLA precisely to shrink the KV-cache term of the decode-step read, making long-context decode tractable on commodity hardware.
- Groq's LPU markets a >1000 tok/s single-stream rate by pairing modest compute with extremely high SRAM bandwidth and no HBM, a direct confirmation that bandwidth, not FLOPs, sets decode latency.
What an interviewer would ask next. Try answering before peeking at the approach.
QAt what batch size does decode cross over from bandwidth-bound to compute-bound on a 70B model on H100?
QWhy does FP8 weight quantization deliver close to the predicted 2x TPOT improvement while a 30% FLOP reduction delivers almost zero?
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.
Treating decode as compute-bound and shopping for lower-FLOP models. At batch 1, decode is bandwidth-bound; the matmul finishes well before the HBM read, so cheaper math saves nothing on wall-clock.
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.