How fast a local LLM actually generates
What sets the tokens-per-second I'll see?
For a single request, generation speed is set by memory bandwidth, not raw compute. To produce each token the GPU streams the model's weights (and the KV cache) out of VRAM once, so tokens per second is roughly your card's bandwidth divided by the bytes read per token. Halve the model size with a lower quant, or move to a card with more bandwidth, and the number goes up almost proportionally.
Why is the first token slower than the rest?
Generating tokens (decode) is memory-bound and one-at-a-time. Processing your prompt (prefill) runs all those tokens in parallel and is compute-bound — it's the part that sets time-to-first-token. A long prompt can make you wait for the first token even on a fast card, then the steady typing speed shown above takes over.
Why does long context slow it down?
Each new token must read the whole KV cache, and that cache grows linearly with context. At 128k it can rival the weights themselves, so the bytes-per-token climb and tokens-per-second fall. Storing the cache in 8-bit (the KV-precision option above) halves that part. This is the same KV-cache growth that drives the VRAM calculator.
Will batching beat these numbers?
Yes. These are single-stream figures — one conversation at a time, which is what you feel locally. A server batching many requests amortizes each weight read across all of them and reaches far higher aggregate tokens per second. If you're sizing a one-user desktop, single-stream is the honest number; if you're serving traffic, treat these as a per-request floor.
Is my data sent anywhere?
No. This calculator runs entirely in your browser. Nothing you select or type is uploaded, logged, or stored.