LLM Quantization Comparison: GGUF vs GPTQ vs AWQ vs bitsandbytes vs EXL2
Pick the right quantization for your GPU. Enter a model's parameter count and your VRAM to compare on-disk size, load VRAM, quality retention, speed and tooling across every major format — and see which ones actually fit. No signup, sources cited.
How it works
Choosing a quantization format means trading three things against each other: file size, output quality, and which hardware and runtime can load it. This tool computes the first two deterministically and sources the third from each method's documentation, so you can make the trade-off with numbers instead of forum threads.
- File size. On-disk size in decimal GB is
parameters × bits-per-weight ÷ 8. An 8B model at GGUF Q4_K_M (4.85 effective bpw) is 8 × 4.85 ÷ 8 = 4.85 GB. The bits-per-weight are the published or measured values for each format — GGUF k-quants from llama.cpp, GPTQ/AWQ at ~4.15 bpw with group-size overhead, NF4 at 4.5, INT8 at 8.5, and EXL2 at its chosen target. - Load VRAM. To load the model you need the weights plus roughly 10% for framework buffers, the CUDA context and activations, so load VRAM ≈ file size × 1.10. This deliberately excludes the KV cache, which scales with context length and is sized separately.
- Fit test.A row "fits" when its load VRAM is at most your budget, where budget = VRAM − reserve. The reserve holds back space for your prompt and context memory. CPU-capable formats (GGUF, and FP16 via Transformers) that don't fit are still marked runnable via CPU/RAM offload — slower, but possible.
- Quality band.Bands (Negligible → Significant) are mapped from published WikiText-2 perplexity deltas versus FP16 on a ~7B baseline: Q8_0/Q6_K and INT8 are Negligible; Q5_K_M/Q5_K_S and EXL2-5.0 are Minimal; the 4-bit group (Q4_K_M, AWQ, GPTQ, NF4, EXL2-4.0) is Small; Q3_K_M is Moderate; Q2_K is Significant. Two caveats the table can't show: larger models tolerate quantization much better than small ones, and at 4-bit AWQ generally edges out GPTQ and Q4_K_M on instruction-tuned models.
- Recommendation. Among rows that pass both the fit test and your backend filter, the tool picks the highest quality band, breaking ties toward the smallest footprint so you keep context headroom. If nothing fits, it suggests a CPU/RAM-offload option (or a smaller model) rather than pretending something works.
Every size figure is cross-checked in code against the published reference numbers for an 8B model, so the estimates are self-verified rather than asserted. For the exact, architecture-aware context memory, use the linked KV cache calculator; for single-format GGUF file listings, the GGUF quantization calculator.
Worked examples
The recommendation picks the highest-quality method whose load VRAM fits your budget (VRAM minus reserve); when several share a quality band it prefers the one that leaves the most context headroom.
Frequently asked questions
Sources & references
- llama.cpp — k-quants: measured file sizes and perplexity deltas (Discussion #2094)
- Frantar et al. — GPTQ: Accurate Post-Training Quantization for GPT models
- Lin et al. — AWQ: Activation-aware Weight Quantization (MLSys 2024)
- Dettmers et al. — QLoRA / NF4 4-bit NormalFloat
- Dettmers et al. — LLM.int8(): 8-bit matrix multiplication
- ExLlamaV2 — variable bits-per-weight EXL2 format
- Hugging Face Transformers — Quantization backend/hardware support
Bits-per-weight and quality bands were last cross-checked against these sources on 2026-07-13. The page is reviewed as new formats reach stable, widely-used tooling.
Related tools
Comments & feedback
Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a bug, edge case, or a bits-per-weight figure that looks off?
Email me at [email protected] — most fixes ship within 24 hours.