Standalone · Fundamentals

Where tokens per second actually come from

One division tells you the ceiling for any model on any GPU: bandwidth over bytes read per token. Every optimisation in the field is a way of changing one of those two numbers, and knowing which one a technique touches tells you in advance whether it will help you.

If I could keep one calculation from everything on this site it would be this one. Generating a token at batch size one means reading every weight the model needs out of HBM and doing almost no arithmetic with them. You are not short of compute. You are short of bandwidth.

tokens/sec ≤ HBM bandwidth ÷ bytes read per token. A 70B model in FP8 is about 70 GB of weights. On a GPU with roughly 4.8 TB/s that is about 68 tokens per second, and that is a ceiling rather than a measurement. If what you measure is far below it, you have an engine problem. If you want to beat it, you have to change one of the two terms or stop being at batch size one.

I find this useful less as a prediction than as a filter. Any proposed optimisation can be sorted by which term it touches, and anything that touches neither is not going to help a batch-of-one decode no matter how good it sounds.

Six layers, and what each one recovers

A production engine stacks all of these. They are worth learning in this order, because each one's benefit only becomes visible once the layer beneath it has stopped being the bottleneck.

The asymmetry in that list is the part I would underline. Layers one through five overwhelmingly buy throughput: more tokens across all users, at a given latency. Only speculative decoding buys latency for one user who is already alone on the GPU. That is why every lab that competes on speed converges on the same layer, and why it is the one I would learn last and think about most.

Why speculation works at all

It follows directly from the same division. Verifying eight candidate tokens costs the same weight read as decoding one, because the weights come out of memory once either way. Speculation converts a bandwidth problem into a compute problem on a machine that had compute to spare. That is the whole mechanism, and it is why the technique feels like cheating and is not.

The speedup is roughly τ ÷ (1 + cK), where τ is the mean number of tokens accepted per verification, c is the drafter's cost relative to one target forward pass, and K is the draft length. The entire research field is one sentence: raise τ without raising c.

Read the published methods through that formula and they stop being a list of names. A separate draft model has high c, so its gains are modest. Medusa removes the separate model by putting heads on the target. EAGLE drafts in feature space and is the production default. Multi-token prediction trains the capability into the base model. Block-diffusion drafters like DFlash 2 propose a whole block in one pass. The reported τ values across all of these sit somewhere between about 2.5 and 4.8, which is a real spread and not a chasm.

The part I keep coming back to is that τ is not a property of the method. It is a property of the method on your traffic. A drafter is only good at predicting text that looks like what it was trained on, which means the same published method will give two different numbers at two different companies, and neither is wrong.

Which gaps are closeable

It is worth being clear-eyed about what is actually withheld, because the answer is less exciting and more useful than it sounds.

The practical consequence is the thing I would tell anyone starting: if you have production traffic and GPUs, a drafter trained on your own request distribution is the one advantage in this field that a vendor structurally cannot sell you. Everything else you can buy, read or copy.

Knowing which gaps are closeable is most of the skill. The rest is measuring instead of assuming.

Sources