Which quant should I run?

Pick your GPU or Mac (or type its memory), your context length and what you'll use the model for. We'll show the tested that fit, ranked by measured quality, with real speeds and a link to every run's raw logs. New to this? Start here.

Hardware

Loading measured results…

How this works

1. Does it fit?

Memory need ≈ file size (the real size of the GGUF / MLX weights on Hugging Face) + KV cache + 0.6 GB of compute buffers and runtime overhead.

  • KV cache = context length × the model's bytes per token at f16 (from its attention config: layers × KV heads × head size × 2 for K and V × 2 bytes). Gemma 4 12B: 64 KB/token (0.50 GB at 8k); Granite 4.2 8B: 160 KB/token (1.25 GB at 8k); Ornith 1.5 9B: 32 KB/token (0.25 GB at 8k); Qwen3.5 4B: 32 KB/token (0.25 GB at 8k); Qwen3.5 9B: 32 KB/token (0.25 GB at 8k); Qwen3.8 27B: 64 KB/token (0.50 GB at 8k). Hybrid models (Qwen3.5) only count their full-attention layers; the fixed-size state of their linear-attention layers doesn't grow with context and is not counted separately.
  • GPU: usable = VRAM − 0.5 GB kept free for your desktop.
  • Mac: macOS lets the GPU wire only part of unified memory by default: about ⅔ on Macs with up to 32 GB and ¾ above 32 GB (so 16 GB → ~10.7 GB, 36 GB → 27 GB, 64 GB → 48 GB, 512 GB → 384 GB). Apple doesn't document this; the rule comes from the decompiled GPU driver (reserve 33.3%, or 25% above 32 GB) quoted in llama.cpp discussion #2182, and matches reported values such as a 36 GB MacBook showing ~29 GB (ollama #2370). llama.cpp prints the real figure as recommendedMaxWorkingSetSize; MLX reports it in mx.metal.device_info(). You can raise it until the next reboot with sudo sysctl iogpu.wired_limit_mb=<MB> (MLX docs); leave several GB for macOS or the system can stall.
  • This is an estimate. Real use varies with the runtime, batch size and flash attention. Quantizing the KV cache (-ctk q8_0 -ctv q8_0) roughly halves the KV part. If you're right at the limit, step down one quant.

2. Which is best?

  • Each use case has one measured score that's comparable across models: general chat = MMLU + ARC-Challenge (350 questions pooled), math = GSM8K (150), coding / tool calls = our 200 BFCL tool-call cases. We compute a 95% interval (Wilson) for each.
  • Quants whose interval overlaps the best one's are tied. The rest are marked ▼ below and never picked.
  • Within each tied model, we take the quant with the smallest diff from the original (lowest mean KLD vs BF16). If a smaller file's KLD is within its 95% margin, we take the smaller one.
  • The top pick is the tied option with the highest score. Because the margins are wide at these sample sizes, we also show the smaller & faster tied option: we can't measure it as worse on this test.
  • Speeds are real measurements on our machines: RTX 5070 12GB (llama-bench) for GGUF, Apple M2 Pro (mlx-lm) for MLX. On any other hardware you'll see a clearly labelled estimate (see 3). Untested quality numbers say "not tested yet", never a guess.

3. Speed on your hardware (estimate)

Generating a token means reading the model's weights from memory once, so decode speed is mostly set by memory bandwidth. For hardware we haven't run, we estimate:

tokens/s ≈ 1 ÷ ( GB read per token ÷ (eff × bandwidth GB/s) + t0 )

Calibration data: measured vs formula on the RTX 5070 12GB
QuantGB / tokenMeasured t/sFormula t/sError
gemma-4-12b Q6_K unsloth9.7956.962.49.6%
gemma-4-12b Q5_K_M unsloth8.4162.970.912.7%
gemma-4-12b Q4_K_M unsloth7.1271.981.313.1%
gemma-4-12b Q3_K_M unsloth5.6977.797.124.9%
gemma-4-12b UD-Q2_K_XL unsloth4.6698.4112.914.8%
granite-4.2-8b Q8_0 bartowski9.3564.864.90.0%
granite-4.2-8b Q6_K bartowski7.5278.577.8-0.9%
granite-4.2-8b Q5_K_M mradermacher6.2592.390.2-2.2%
granite-4.2-8b Q4_K_M bartowski5.54101.699.2-2.4%
granite-4.2-8b i1-Q4_K_M mradermacher5.35104.8101.9-2.8%
granite-4.2-8b IQ4_XS bartowski4.94112.5108.2-3.9%
granite-4.2-8b IQ3_M bartowski4.24119.6121.01.1%
granite-4.2-8b Q2_K bartowski3.58145.7136.3-6.4%
ornith-1.5-9b Q8_0 ornith-ai9.7965.262.4-4.3%
ornith-1.5-9b Q6_K ornith-ai7.5683.077.4-6.7%
ornith-1.5-9b Q5_K_M ornith-ai6.6489.786.0-4.1%
ornith-1.5-9b Q4_K_M ornith-ai5.7899.496.0-3.5%
qwen3.5-4b Q8_0 unsloth4.48114.0116.22.0%
qwen3.5-4b Q6_K bartowski3.81129.9130.60.6%
qwen3.5-4b Q4_K_M bartowski3.01151.8152.80.7%
qwen3.5-4b UD-Q4_K_XL unsloth2.91150.6156.23.7%
qwen3.5-4b Q4_K_M unsloth2.74156.3162.23.8%
qwen3.5-4b i1-Q4_K_M mradermacher2.71157.9163.43.5%
qwen3.5-4b IQ3_M bartowski2.48161.4172.36.8%
qwen3.5-4b UD-Q2_K_XL unsloth1.94186.5198.36.3%
qwen3.5-9b Q8_0 unsloth9.5366.463.8-3.9%
qwen3.5-9b Q6_K unsloth7.4682.078.3-4.5%
qwen3.5-9b Q5_K_M bartowski7.1187.581.4-7.0%
qwen3.5-9b Q4_K_M bartowski6.1797.891.2-6.8%
qwen3.5-9b UD-Q4_K_XL unsloth5.9797.393.6-3.7%
qwen3.5-9b Q4_K_M unsloth5.68101.097.3-3.7%
qwen3.5-9b i1-Q4_K_M mradermacher5.63101.498.0-3.4%
qwen3.5-9b IQ4_XS bartowski5.50110.699.7-9.9%
qwen3.5-9b i1-IQ4_XS mradermacher5.07113.6106.1-6.6%
qwen3.5-9b IQ3_M bartowski4.98112.0107.5-4.0%
qwen3.5-9b UD-Q2_K_XL unsloth4.12133.0123.5-7.1%

Only quants we have measured appear here. Missing your model or quant? Request it. Full details: VRAM fit and ranking in the methodology.