BestLLMfor Your hardware. Your LLM. Your call.
◆ The kits◆ Kits APIOpen data Find my LLM
Guide · 2026-05-16

Pick the Right Quantization for Your VRAM — Smart Recommender

A data-driven recommender that maps your exact GPU VRAM budget to the optimal GGUF, GPTQ or AWQ quantization — no guesswork, no wasted memory.

By Mohamed Meguedmi·Last updated 2026-05-16·9 min read·Tested on Windows, macOS, Linux

Key takeaways

  • Q4_K_M is the default winner for 90% of consumer GPUs. It loses roughly 1.5% on MMLU vs FP16 while cutting VRAM by ~70%.
  • The formula you actually need: VRAM_GB = (Params_B × Bits / 8) × 1.2. The 1.2 multiplier absorbs the KV cache and activation overhead at 8k context.
  • Q5_K_M is the upgrade path when you have 15-25% headroom — measurable quality bump, negligible speed cost on modern Ampere/Ada/Blackwell GPUs.
  • Q8_0 and FP16 are only worth it for production agents, code generation at >32B params, or when you need bit-exact reproducibility.
  • AWQ beats GPTQ on Ada/Hopper/Blackwell for batched inference; GGUF wins for single-user, CPU offload, and Apple Silicon.

The 30-second recommender

Skip the theory if you just want a number. Find your GPU's effective VRAM in the table below, then read across to the largest model and quantization that fits with an 8k context window. Numbers assume llama.cpp or Ollama defaults, Q4_K_M KV cache, and no other applications competing for memory.

VRAMTypical GPURecommended model + quantHeadroom for 16k ctx
6 GBRTX 3060 6GB, RTX 4050 laptopLlama 3.2 3B Q5_K_M, or Qwen3 7B Q3_K_MTight — drop to Q4_K_S
8 GBRTX 3050 8GB, RTX 4060, M2 8GBQwen3 7B Q5_K_M, Llama 3.1 8B Q4_K_MOK at Q4_K_M
12 GBRTX 3060 12GB, RTX 4070Qwen3-Coder 14B Q5_K_M, Mistral Small 3 Q4_K_MGood
16 GBRTX 4060 Ti 16GB, RTX 5060 TiQwen3 14B Q6_K, Phi-4 14B Q8_0Excellent
24 GBRTX 3090, RTX 4090, RTX 5080Qwen3-Coder 32B Q4_K_M, Llama 3.3 70B Q2_KFits 32k context
32 GBRTX 5090, M4 MaxQwen3 32B Q6_K, Llama 3.3 70B Q3_K_MFits 64k context
48 GBRTX 6000 Ada, 2×3090Llama 3.3 70B Q4_K_M, Qwen3 72B Q4_K_SFits 32k context
80 GBH100, H200, A100 80GBLlama 3.3 70B Q8_0, DeepSeek V3 Lite Q4_K_MProduction ready

The math behind the recommendation

Quantization compresses each weight from FP16 (16 bits) down to anywhere between 2 and 8 bits. The savings are deterministic; the quality loss is not. The base VRAM formula is:

VRAM_weights = Parameters × Bits_per_weight / 8

A 7B model at Q4_K_M uses roughly 4.5 bits/weight on average (the "K_M" variants keep some tensors at higher precision), giving 7,000,000,000 × 4.5 / 8 = ~3.94 GB. Add the KV cache — which scales with context length and hidden dimension — plus CUDA kernels and you land near 5.5 GB at 8k context.

The often-cited × 1.2 multiplier is a rule of thumb for 8k context. For longer contexts, the KV cache dominates and the multiplier climbs fast. Our cost calculator uses the exact per-architecture KV formulas published in the KV cache compression survey (Yuan et al., 2024).

Bits-per-weight reference

QuantEffective bpwVRAM for 8B modelVRAM for 32B modelVRAM for 70B model
FP1616.016.0 GB64.0 GB140.0 GB
Q8_08.58.5 GB34.0 GB74.4 GB
Q6_K6.66.6 GB26.4 GB57.8 GB
Q5_K_M5.75.7 GB22.8 GB49.9 GB
Q4_K_M4.834.83 GB19.3 GB42.3 GB
Q4_K_S4.584.58 GB18.3 GB40.1 GB
Q3_K_M3.93.9 GB15.6 GB34.1 GB
Q2_K3.353.35 GB13.4 GB29.3 GB

These figures are weights only. Add 15-25% for an 8k context window, 40-60% for 32k, and double the cache for 128k unless you also quantize the KV cache itself (--cache-type-k q8_0 --cache-type-v q8_0 in llama.cpp halves it with no measurable quality loss).

Quality loss: what the numbers actually say

The community has repeatedly tested how much each quantization step costs in benchmark accuracy. The pattern is consistent across Llama 3.x, Qwen3, and Mistral families.

QuantMMLU delta vs FP16HumanEval deltaPerplexity ratioVerdict
Q8_0-0.1 pp-0.0 pp1.001×Indistinguishable
Q6_K-0.3 pp-0.4 pp1.003×Near-lossless
Q5_K_M-0.7 pp-0.9 pp1.008×Excellent
Q4_K_M-1.5 pp-1.8 pp1.019×Sweet spot
Q4_K_S-2.1 pp-2.6 pp1.028×Acceptable
Q3_K_M-4.4 pp-6.1 pp1.071×Noticeable
Q2_K-9.8 pp-14.3 pp1.183×Last resort

Two observations the editorial team keeps returning to: the cliff between Q4_K_M and Q3_K_M is real and dramatic, and the gain from Q5 to Q6 is almost always invisible in production. Spend the VRAM on a bigger model instead.

A 14B at Q4_K_M beats an 8B at Q8_0 on every reasoning and coding benchmark we tracked in Q1 2026. When in doubt, scale parameters, not bits.

GGUF vs GPTQ vs AWQ: pick the right format, not just the right bit depth

Bit depth is one axis. The packing format is another, and it changes which hardware path you take.

GGUF (llama.cpp / Ollama / LM Studio)

The default for single-user inference, CPU offload, and Apple Silicon. K-quants (Q4_K_M etc.) use a mixed-precision scheme that keeps attention layers at higher precision. GGUF is what ollama.com ships and what most community quants on HuggingFace distribute.

GPTQ

4-bit only (and rarely 3-bit or 8-bit). Designed for GPU-only inference with vLLM, TGI, or AutoGPTQ. Slightly faster than GGUF on Ampere but loses ground on Ada and Blackwell where AWQ kernels are better tuned.

AWQ (Activation-aware Weight Quantization)

4-bit, GPU-only. Currently the fastest option for batched inference on RTX 4090, RTX 5090, H100, H200, and Blackwell datacenter parts. The original AWQ paper showed a 1.7-2.4× throughput edge over GPTQ on A100; on H100 the gap widened further in 2025 benchmarks.

Use caseBest formatWhy
Single user, desktop, ChatGPT-style UXGGUF Q4_K_MCPU offload, partial GPU layers, runs anywhere
Apple Silicon (M1-M4)GGUF Q4_K_M or MLX 4-bitMetal kernels, unified memory
Batched API serving, >4 concurrent usersAWQ 4-bit on vLLMHighest tokens/sec at high batch sizes
Legacy Ampere (A100, RTX 3090)GPTQ 4-bit or AWQBoth work; benchmark on your workload
Production with strict accuracyAWQ 8-bit or FP8 (Ada/Hopper)Near-lossless, hardware-accelerated

Special cases that break the defaults

Mixture-of-Experts models

DeepSeek V3, Qwen3-MoE, and Mixtral activate only a fraction of parameters per token. The VRAM formula still uses the full parameter count for storage, but speed scales with active parameters. Quantize MoEs at Q4_K_M; lower quants damage routing decisions disproportionately. Q3 on Mixtral 8x7B costs roughly 7 percentage points on GSM8K versus Q4 — far worse than the dense-model trend.

Coding models

Code is brittle. Qwen3-Coder, DeepSeek-Coder V3, and Codestral show a sharper HumanEval drop at Q4 than chat models do. The editorial team's recommendation for paid production code agents: Q5_K_M minimum, Q6_K preferred. For local-only IDE assistants, Q4_K_M remains fine.

Long-context workloads

At 64k+ context, the KV cache is bigger than the weights. Quantize the cache before quantizing the model further. With --cache-type-k q4_0 --cache-type-v q4_0, a 32B model at Q5_K_M with 128k context fits in 32 GB — impossible with FP16 KV.

Step-by-step: download the right file

  1. Measure your VRAM honestly. Use nvidia-smi or Apple's Activity Monitor. Subtract 1-2 GB for the OS and browser. That number is your budget.
  2. Pick a model size from the recommender table above that leaves at least 15% headroom.
  3. Choose the quantization — start at Q4_K_M, climb to Q5_K_M only if you have spare VRAM.
  4. Download from a trusted quantizer. bartowski, unsloth, and the official model authors on HuggingFace are reliable. Avoid random reuploads.
  5. Verify with ollama run <model> or llama-cli -m model.gguf -p "Hello". Watch nvidia-smi during a 500-token generation to confirm you're not spilling to system RAM.
  6. Tune the KV cache with --cache-type-k q8_0 --cache-type-v q8_0 if you need longer contexts.

The BestLLMfor recommender API

Every number in this article is queryable through the BestLLMfor public API, released under CC BY 4.0. The endpoint /v1/quantization/recommend?vram=24&context=8192&use_case=coding returns the same JSON we use to power our cost calculator. The companion MCP server open-source MCP server lets Claude Desktop, Cursor, and other MCP clients call the recommender directly during a conversation.

Final verdict

If your priority is…Pick…Reasoning
Maximum quality on a 24 GB GPU32B at Q4_K_MBeats 14B at Q8_0 on every benchmark we ran
Fastest tokens/sec, single userSmallest model that fits fully in VRAM at Q4_K_MMemory bandwidth dominates speed
Production API with >4 concurrent usersAWQ 4-bit on vLLMBest throughput per dollar in 2026
Apple SiliconGGUF Q4_K_M or MLX 4-bitUnified memory makes the format less critical
Long context (64k+)Q5_K_M weights + Q4_0 KV cacheCache quantization beats weight quantization at scale
Bit-exact reproducibilityQ8_0 or FP16Q4 introduces tiny non-determinism in long generations

The short answer remains unchanged from 2024: Q4_K_M is the right default. The long answer is that the right default for your workload depends on whether you serve one user or twenty, whether your context is 4k or 128k, and whether your tasks are chat, code, or agentic. Use the editorial team's recommender table as the starting point, then climb to Q5_K_M or Q6_K only when the headroom is free.

Frequently asked questions

Is Q4_K_M really the sweet spot, or just popular?

Both. Across Llama 3.x, Qwen3, Mistral and Phi-4 it loses roughly 1.5 percentage points on MMLU versus FP16 while using about 30% of the VRAM. Q5_K_M improves quality by less than 1 pp for 18% more memory — usually not worth it unless the headroom is free.

What VRAM do I need for a 70B model?

At Q4_K_M, roughly 42 GB for weights plus 6-10 GB for an 8k KV cache. That fits a 48 GB card (RTX 6000 Ada) or two 24 GB cards (2×RTX 3090 / 2×RTX 4090). At Q2_K it drops to ~30 GB, but quality degrades sharply.

Should I use GGUF, GPTQ, or AWQ?

GGUF for single-user desktop and Apple Silicon. AWQ for batched API serving on Ada, Hopper, or Blackwell GPUs. GPTQ is a legacy choice that still works on Ampere but is rarely the fastest option in 2026.

Does quantizing the KV cache hurt quality?

Q8_0 KV cache is essentially free — no measurable quality drop. Q4_0 KV cache shows a small perplexity rise (~2%) but is the difference between fitting 128k context or not on a 24 GB card. Quantize the cache before going below Q4_K_M on weights.

Are MoE models like DeepSeek V3 different?

Yes. Storage uses the full parameter count, so a 671B MoE still needs hundreds of GB even at Q4. Speed, however, scales with active parameters (37B for DeepSeek V3), so a single H200 can run it surprisingly fast once loaded. Never go below Q4_K_M on MoEs — routing collapses at Q3 and lower.

How do I check whether a quantization is actually fitting in VRAM?

Run nvidia-smi -l 1 while generating 500 tokens. If VRAM usage climbs and then plateaus, you're fine. If it hits the cap and tokens/sec collapses, you're spilling to system RAM — drop a quant level or shrink the context window.

Did this guide help?

Found an error or have feedback? Let us know — it helps everyone who reads this guide.