7 min read ·
How much VRAM do open LLMs really need? Real GGUF sizes for 35 models
Weights from the actual GGUF files, the context cache from each model's architecture, and the smallest card that holds it: Qwen3.8, Gemma 4, GPT-OSS, DeepSeek, Llama.
“Parameters × bits ÷ 8” is the rule everyone quotes for how much GPU memory a model needs. It gets you close and then lets you down exactly where it matters: on the card that is 2 GB too small, or on the 32k-token chat that suddenly no longer fits.
So instead of estimating, the numbers below come from the source for 35 current open models:
- Weights: the real size of the published file — GGUF builds by unsloth, ggml-org, bartowski and the model authors (Q4_K_M unless the model ships quantised natively, like GPT-OSS in MXFP4), read from the Hugging Face API.
- Context (KV) cache: computed from each model's own config.json — layers, KV heads and head size — including the architectures where the naive formula is wrong.
- Runtime: CUDA context and buffers, about 0.75 GiB plus the logits buffer of a 512-token batch (it adds up for 256k-token vocabularies).
All figures are GiB (1024³ bytes), the unit GPU memory is sold in, so they compare directly with “24 GB”. Hugging Face lists decimal gigabytes, which is why its file sizes look about 7% larger.
The table
One GPU, one request, FP16 cache. “Smallest single card” is the smallest common card where the 8k total fits in 97.5% of the memory (the driver and CUDA take the rest). Each model links to its page with every quantisation.
| Model | Params | Weights (format, GiB) | VRAM @ 8k | VRAM @ 32k | Smallest single card |
|---|---|---|---|---|---|
| Qwen3.8 27B | 27.8B | Q4_K_M 15.3 | 17.2 | 18.7 | 24 GB |
| Qwen3.5 9B | 9.7B | Q4_K_M 5.3 | 6.8 | 7.6 | 8 GB |
| Qwen3.5 4B | 4.7B | Q4_K_M 2.6 | 4.1 | 4.8 | 8 GB |
| Qwen3 8B | 8.2B | Q4_K_M 4.7 | 6.8 | 10.2 | 8 GB |
| Qwen3 14B | 14.8B | Q4_K_M 8.4 | 10.7 | 14.4 | 12 GB |
| Qwen3 32B | 32.8B | Q4_K_M 18.4 | 21.4 | 27.4 | 24 GB |
| Qwen3 30B-A3B | 30.5B (3.3B active) | Q4_K_M 17.3 | 19.1 | 21.3 | 24 GB |
| Qwen3 Coder 30B-A3B | 30.5B (3.3B active) | Q4_K_M 17.3 | 19.1 | 21.3 | 24 GB |
| Qwen3 Next 80B-A3B | 81.3B (3B active) | Q4_K_M 45.2 | 46.5 | 47.0 | 48 GB |
| Qwen3 235B-A22B | 235B (22B active) | Q4_K_M 132.4 | 134.9 | 139.3 | 141 GB |
| Qwen3 Coder 480B-A35B | 480B (35B active) | Q4_K_M 270.1 | 273.1 | 278.9 | 288 GB |
| Gemma 4 12B | 12B | Q4_K_M 6.6 | 8.3 | 8.7 | 12 GB |
| Gemma 4 26B-A4B | 25.8B (4B active) | Q4_K_M 15.8 | 17.4 | 17.9 | 24 GB |
| Gemma 4 31B | 31.3B | Q4_K_M 17.1 | 19.7 | 21.6 | 24 GB |
| Gemma 3 27B | 27.4B | Q4_K_M 15.4 | 17.7 | 19.6 | 24 GB |
| GPT-OSS 20B | 20.9B (3.6B active) | MXFP4 11.3 | 12.6 | 13.2 | 16 GB |
| GPT-OSS 120B | 117B (5.1B active) | MXFP4 59.0 | 60.5 | 61.3 | 80 GB |
| DeepSeek R1 671B | 685B (37B active) | Q4_K_M 377.1 | 378.7 | 380.3 | multi-GPU |
| DeepSeek V3.2 | 685B (37B active) | Q4_K_M 377.6 | 379.1 | 380.7 | multi-GPU |
| DeepSeek V4 Flash | 291B | UD-Q4_K_XL 144.4 | 145.5 | 145.8 | 180 GB |
| DeepSeek R1 Distill Qwen 32B | 32.8B | Q4_K_M 18.5 | 21.5 | 27.5 | 24 GB |
| DeepSeek R1 0528 Qwen3 8B | 8.2B | Q4_K_M 4.7 | 6.8 | 10.2 | 8 GB |
| Llama 3.1 8B | 8B | Q4_K_M 4.6 | 6.6 | 9.6 | 8 GB |
| Llama 3.3 70B | 70.6B | Q4_K_M 39.6 | 43.1 | 50.6 | 48 GB |
| Mistral Small 3.2 24B | 24B | Q4_K_M 13.3 | 15.6 | 19.3 | 16 GB |
| Devstral Small 2 24B | 24B | Q4_K_M 13.3 | 15.6 | 19.3 | 16 GB |
| Ministral 3 14B | 14B | Q4_K_M 7.7 | 9.9 | 13.7 | 12 GB |
| Mistral Nemo 12B | 12.3B | Q4_K_M 7.0 | 9.2 | 13.0 | 12 GB |
| GLM-4.7 Flash | 31.2B (3B active) | Q4_K_M 17.1 | 18.5 | 19.8 | 24 GB |
| GLM-4.5 Air | 110B (12B active) | Q4_K_M 68.0 | 70.4 | 74.8 | 80 GB |
| GLM-5.3 Flash | 321B | UD-Q4_K_XL 186.0 | 187.3 | 187.6 | 288 GB |
| Kimi K2 1T | 1,026B (32B active) | Q4_K_M 578.6 | 580.2 | 581.8 | multi-GPU |
| Hermes 4.3 36B | 36.2B | Q4_K_M 20.3 | 23.3 | 29.3 | 24 GB |
| Phi-4 14B | 14.7B | Q4_K_M 8.3 | 10.8 | 12.3 | 12 GB |
| Hunyuan Hy3 | 299B | FP8 279.3 | 282.8 | 290.3 | multi-GPU |
What stands out
Hybrid and sliding-window attention change the picture. Qwen3 32B and Qwen3.8 27B are about the same size on disk, but going from an 8k to a 32k context costs Qwen3 32B 6.0 GiB more and Qwen3.8 27B only 1.5 GiB. Qwen3.8 keeps a KV cache on only 16 of its 64 layers; the other 48 are linear-attention layers with a fixed state per sequence. Gemma 4 does something similar with a 1024-token sliding window on 5 of every 6 layers. For long contexts the architecture matters as much as the parameter count.
MoE models need all of their weights in memory. Qwen3 30B-A3B uses 3.3B parameters per token, but all 30.5B have to be loaded: it needs the same 24 GB card as a dense 27B model, it just runs much faster on it. (llama.cpp can keep experts in system RAM with --n-cpu-moe, at a speed cost.)
GPT-OSS is the best fit for its size class. GPT-OSS 20B ships in MXFP4 and needs 12.6 GiB at 8k, so it fits a 16 GB card; GPT-OSS 120B needs 60.5 GiB and fits a single 80 GB card such as an H100.
70B still means 48 GB. Llama 3.3 70B in Q4_K_M is 43.1 GiB at 8k context: a 48 GB card, or two 24 GB cards with tensor parallelism. At 32k it grows to 50.6 GiB and no longer fits in 48 GB without a quantised KV cache.
DeepSeek's MLA cache is tiny. DeepSeek V3.2 and R1 cache one 576-wide latent per token and layer instead of full keys and values: about 70 KB per token for the whole model. The weights are the problem there, not the context.
The formula, if you want to check a model yourself
weights = file size of the quantisation you run (or params × bits ÷ 8)
kv_cache = tokens × full_attention_layers × 2 × kv_heads × head_dim × 2 bytes
+ min(tokens, window) × sliding_layers × 2 × kv_heads × head_dim × 2 bytes
runtime ≈ 0.75 GiB + 512 × vocab × 4 bytes
total = weights + kv_cache × parallel_requests + runtimeA q8_0 KV cache (-ctk q8_0 -ctv q8_0 in llama.cpp, --kv-cache-dtype fp8 in vLLM) roughly halves the second line. vLLM preallocates 90% of the card for its cache by default, so nvidia-smi always looks full there; the numbers above are what the model needs, not what vLLM grabs.
Try other settings
The VRAM calculator takes any of these models plus FLUX, Qwen-Image, Wan and other image and video models, a quantisation, the context length and the number of parallel requests, and shows the memory breakdown and the GPUs that hold it. Every model also has a page with the full quantisation table in model GPU requirements.
Questions and answers
- How much VRAM does a 70B model need?
- Llama 3.3 70B in Q4_K_M needs 43.1 GiB at an 8k context, so a 48 GB card or two 24 GB cards. At 32k it needs 50.6 GiB.
- Does GPT-OSS 120B fit on one GPU?
- Yes. It ships in MXFP4 and needs 60.5 GiB at 8k, which fits a single 80 GB card such as an H100.
- Why does a MoE model need as much memory as a dense one?
- Only a few experts run per token, but all of them have to be loaded. MoE saves compute, not memory, unless you offload experts to system RAM.