Local LLM Speed Calculator
Enter your machine and a model — estimated output speed (tok/s) and whether it fits
Your machine
Model
Your memory can handle up to F16 / BF16(full precision)
Manual model params (active with "Custom")
Where to look: huggingface.co model page → Files → config.json (num_hidden_layers / num_key_value_heads / hidden_size ÷ num_attention_heads)
Est. output speed (for this config)
69.0 tok/s
Totally fine (≤60% used)
Show the math
Output speed (full VRAM) = 410 GB/s bandwidth × 0.80 efficiency ÷ 4.750 GB per token = 69.0 tok/s Per-token read = 8.19B active params × 0.58 B/param (Q4_K_M) KV cache = 2 × 36 layers × 8 KV heads × 128 dim × 2 bytes × 8K tokens = 1.18 GB Memory total = weights 4.75 + KV 1.18 + overhead 0.50 = 6.43 GB — 17.9% of 36 GB Prefill speed = 17.0 TFLOPS × 0.5 ÷ (2 × 8.19B) = 519 tok/s
Pure-math theoretical values: software-stack differences excluded; real runs usually land at 60–85% of theory (efficiency already derated by experience). For your true speed, measure tok/s on your machine with the LM Studio Panel.
Why local-model speed is computable
Generating text token by token (decode) re-reads the entire model weights from memory per token. So the output ceiling is almost entirely memory bandwidth, not compute: theoretical tok/s ≈ bandwidth ÷ bytes read per second. Example: Apple M4 Max memory bandwidth ≈ 410 GB/s, an 8B-param Q4 model ≈ 4.7 GB — ceiling ≈ 410 ÷ 4.7 × efficiency ≈ 70 tokens/s. On a 4060 Ti (288 GB/s) the same model lands around 40 tok/s.
Params × quants
Model size = params × quant level. Q4_K_M-style 4-bit quants run ≈ 0.58 bytes/param, so 7B ≈ 4.4 GB; Q8 nearly doubles that, F16 full precision quadruples it. Lower quants run smaller and faster but lose quality — hence this page's "suggested tier" hint: pick the best quality that still fits.
The three numbers that decide "does it run"
First, weight size: must fit VRAM or unified memory. Second, KV cache: the intermediate attention state kept to "remember" context — grows linearly with context length and with layer/KV-head counts. Long contexts are usually KV-bound, not weight-bound, and GQA shrinks it a lot. Third, runtime overhead: the framework's own buffers start around 0.5 GB — so this page judges at 98%, not 100%: a config that fills memory essentially always fails to load in practice.
The MoE "value illusion"
Mixture-of-experts models like Qwen3-30B-A3B and DeepSeek-V3 keep ALL parameters in memory but activate a small expert subset per token. So memory follows total params (30B Q4 ≈ 18 GB) while speed follows active params (3B speed, several times faster than same-size dense). That's how they run "big and fast" on consumer hardware — provided your memory holds every expert.