induwara.lk
induwara.lkAI · Local LLMs

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.

By Induwara AshinsanaUpdated Jul 13, 2026
Compare quantization methods
Sizes self-verified

Total parameter count, e.g. 8 for Llama 3.1 8B.

Leave blank to see all sizes without the fit check.

Filters the table to formats your runtime can actually load.

Held back from VRAM for your prompt + context memory.

Model presets

Recommended: GGUF Q6_K

Best quality that fits your 10.00 GB budget (12.00 GB VRAM − 2.00 GB reserve): loads in 7.22 GB with 2.78 GB to spare. Great for llama.cpp / Ollama / LM Studio.

Methodbits/wtFile sizeLoad VRAMQualitySpeedHardwareFits?
FP16 (unquantized)
Transformers, vLLM, TGI
16.0016.00 GB17.60 GBLosslessFast (needs most VRAM)GPU (or CPU, slow)
GGUF Q8_0
llama.cpp, Ollama, LM Studio
8.508.50 GB9.35 GBNegligibleFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
bitsandbytes INT8
Transformers (load_in_8bit), TGI
8.508.50 GB9.35 GBNegligibleSlow (mixed-precision path)GPU only✓ Fits
GGUF Q6_K
llama.cpp, Ollama, LM Studio
6.566.56 GB7.22 GBNegligibleFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
GGUF Q5_K_M
llama.cpp, Ollama, LM Studio
5.695.69 GB6.26 GBMinimalFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
GGUF Q5_K_S
llama.cpp, Ollama, LM Studio
5.525.52 GB6.07 GBMinimalFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
EXL2 @ 5.0 bpw
ExLlamaV2, TabbyAPI, text-generation-webui
5.005.00 GB5.50 GBMinimalVery fastGPU only✓ Fits
GGUF Q4_K_M
llama.cpp, Ollama, LM Studio
4.854.85 GB5.33 GBSmallFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
GGUF Q4_K_S
llama.cpp, Ollama, LM Studio
4.584.58 GB5.04 GBSmallFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
bitsandbytes NF4
Transformers (load_in_4bit), TGI
4.504.50 GB4.95 GBSmallModerateGPU only✓ Fits
AWQ 4-bit
vLLM, TGI, AutoAWQ, Transformers
4.154.15 GB4.57 GBSmallVery fastGPU only✓ Fits
GPTQ 4-bit
vLLM, TGI, AutoGPTQ, Transformers
4.154.15 GB4.57 GBSmallVery fastGPU only✓ Fits
EXL2 @ 4.0 bpw
ExLlamaV2, TabbyAPI, text-generation-webui
4.004.00 GB4.40 GBSmallVery fastGPU only✓ Fits
GGUF Q3_K_M
llama.cpp, Ollama, LM Studio
3.913.91 GB4.30 GBModerateFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
GPTQ 3-bit
vLLM, AutoGPTQ, Transformers
3.253.25 GB3.58 GBModerateVery fastGPU only✓ Fits
GGUF Q3_K_S
llama.cpp, Ollama, LM Studio
3.443.44 GB3.78 GBNoticeableFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits
GGUF Q2_K
llama.cpp, Ollama, LM Studio
2.632.63 GB2.89 GBSignificantFast (GPU) / Moderate (CPU)CPU + GPU✓ Fits

Quality legend

LosslessUnquantized reference (FP16).
NegligiblePerplexity delta under ~0.5%; not measurable in normal use.
Minimal≈ 0.5–1% perplexity delta; safe for almost everything.
Small≈ 1–3% delta; the standard 4-bit sweet spot.
Moderate≈ 3–6% delta; visible on hard tasks, fine for chat.
Noticeable≈ 6–10% delta; use only when VRAM is tight.
Significant≥ ~10% delta; large models tolerate this far better than small ones.

How each method works

GGUF (llama.cpp k-quants)

The most portable format. Runs on CPU, GPU or a split of both across llama.cpp, Ollama and LM Studio, with Metal support on Apple Silicon. K-quants (Q2_K…Q8_0) mix precisions per tensor; Q4_K_M and Q5_K_M are the everyday picks.

GPTQ

One-shot post-training quantization (Frantar et al., 2022) that solves a per-layer reconstruction to keep 3–4-bit accuracy. GPU-only, widely supported by vLLM and TGI for high-throughput serving.

AWQ

Activation-aware Weight Quantization (Lin et al., 2024) protects the ~1% of weights that matter most to activations. At 4-bit it usually edges out GPTQ on instruction-tuned models. GPU-only; excellent with vLLM.

bitsandbytes (INT8 / NF4)

Loads any Hugging Face model with no separate quantized file: LLM.int8() for near-lossless 8-bit, or NF4 (QLoRA) for 4-bit. Zero calibration and the go-to for fine-tuning, though slower than GPTQ/AWQ at inference.

EXL2 (ExLlamaV2)

A variable bits-per-weight GPU format (2.0–8.0 bpw) with very fast kernels and batching. GPU-only via ExLlamaV2 / TabbyAPI; pick a bpw target to trade size against quality precisely.

Bits-per-weight are the published/measured values from llama.cpp, the GPTQ, AWQ and QLoRA papers, and the ExLlamaV2 project; quality bands map to their WikiText perplexity deltas on a ~7B baseline. On-disk files vary ≈ ±0.1 bpw across models because embedding and output tensors are kept at higher precision. Load VRAM excludes the KV cache — size context memory separately. Verified 2026-07-13. Full sources are listed below the tool.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Llama 3.1 8B on an RTX 3060 (12 GB), reserve 2 GB, Any backend

  1. Budget: 12 GB VRAM − 2 GB reserve = 10 GB.
  2. Q4_K_M: 8 × 4.85 ÷ 8 = 4.85 GB → load 5.34 GB → fits (Small).
  3. Q5_K_M: 8 × 5.69 ÷ 8 = 5.69 GB → load 6.26 GB → fits (Minimal).
  4. Q6_K: 8 × 6.56 ÷ 8 = 6.56 GB → load 7.22 GB → fits (Negligible).
  5. Q8_0: 8 × 8.5 ÷ 8 = 8.50 GB → load 9.35 GB → fits, little headroom.
  6. FP16: 8 × 16 ÷ 8 = 16.0 GB → load 17.6 GB → ✗ (over 10 GB).
  7. Pick: Q6_K — best quality that fits, 2.78 GB to spare. Prefer AWQ 4-bit (load 4.57 GB) if you serve with vLLM.

Mistral 7B on an 8 GB laptop GPU, reserve 2 GB, backend llama.cpp / Ollama

  1. Budget: 8 GB − 2 GB = 6 GB. Backend filter keeps only GGUF rows.
  2. Q6_K: 7 × 6.56 ÷ 8 = 5.74 GB → load 6.31 GB → ✗ (just over 6 GB).
  3. Q5_K_M: 7 × 5.69 ÷ 8 = 4.98 GB → load 5.48 GB → fits (Minimal).
  4. Q5_K_S: 7 × 5.52 ÷ 8 = 4.83 GB → load 5.31 GB → fits (Minimal), a touch smaller.
  5. Q4_K_M: 7 × 4.85 ÷ 8 = 4.24 GB → load 4.67 GB → fits (Small).
  6. Pick: Q5_K_S — highest band that fits with the most headroom (0.69 GB). Q5_K_M is the same quality band if you prefer it.

Llama 3.1 70B on an RTX 4090 (24 GB), reserve 2 GB, Any backend — honest negative

  1. Budget: 24 GB − 2 GB = 22 GB.
  2. Q4_K_M: 70 × 4.85 ÷ 8 = 42.44 GB → load 46.68 GB → ✗.
  3. Q2_K: 70 × 2.63 ÷ 8 = 23.01 GB → load 25.31 GB → ✗ (and Significant quality loss even if it fit).
  4. FP16: 70 × 16 ÷ 8 = 140 GB → far beyond a single card.
  5. Pick: none fit. Run GGUF Q4_K_M with CPU/RAM offload (slower), split across 2× 24 GB GPUs, or step down to a 34B or 8B model.

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

Related tools

Rate this tool
Be the first to rate

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.