Computed with the open FitLLM engine — accurate per-layer KV-cache modeling, not a naive estimate. Updated 2026-07-16.
| Model weights | 17.5 GB |
| KV cache | 3.3 GB |
| Runtime overhead + reserve | 5.6 GB |
| Total used | 26.3 / 16 GB |
| Short by | 10.3 GB |
Max context that fits at Q4_K_M: does not fit.
| Weight quant | Weights | Fits (KV F16) | Used @32K |
|---|---|---|---|
| Q4_K_M | 17.5 GB | ❌ won't fit | 26.3 / 16.0 GB |
| Q5_K_M | 20.4 GB | ❌ won't fit | 29.6 / 16.0 GB |
| Q6_K | 23.5 GB | ❌ won't fit | 33.0 / 16.0 GB |
| Q8_0 | 30.4 GB | ❌ won't fit | 40.8 / 16.0 GB |
| FP16 | 57.2 GB | ❌ won't fit | 70.8 / 16.0 GB |
Lower weight quants free memory at some output-quality cost — Q4 is the common sweet spot; below that quality drops faster.
KV cache is F16 here (llama.cpp default). Drop it to Q8/Q4 (-ctk/-ctv) for more context.
Live badge for your README or model card — recomputed by the engine, never stale:
[](https://fitllm.run/can-i-run/gemma-4-31b-on-rtx-4080-super)
← renders like this, live.
Or from your terminal (exit 0/1 — works as a pre-download guard):
npx fitllm "Gemma 4 31b" --gpu "RTX 4080 SUPER"
Gemma 4 31b interleaves sliding-window (local) and global attention 5:1. The local layers cap their KV cache at the 1024-token window, and the global layers use a different head shape (head_dim 512 vs 256). A naive "all layers × full context × one head_dim" formula over-counts KV cache by several times.
same GPU Models that fit on the RTX 4080 SUPER: Gemma 4 e2b, Gemma 4 e4b, Gemma 4 12b, Llama-3.2-3B-Instruct, Llama-3.1-8B-Instruct, MiniCPM5-1B, Qwen3-0.6B, Qwen3-1.7B, Llama-3.2-1B-Instruct, Gemma-3-1B-it.
same model GPUs that run Gemma 4 31b: RTX 5090 (32GB), RTX 6000 Ada (48GB), RTX PRO 6000 Blackwell (96GB), Radeon PRO W7900 (48GB), 2× RTX 3090 (48GB), 2× RTX 4090 (48GB), 4× RTX 3090 (96GB), A100 40GB (40GB), A100 80GB (80GB), H100 80GB (80GB), H200 141GB (141GB), B200 (180GB).
Gemma 4 31b = 30.7B, 60 layers. The RTX 4080 SUPER has 16GB / 736GB/s. Same math, open source: fitllm-engine. GGUF bpw from llama.cpp.
All numbers are computed by the open-source fitllm-engine (MIT) from official model config.json values — reproduce or audit them yourself. Estimates; real usage varies with runtime (llama.cpp / MLX / Ollama), driver and display. Found a mismatch? Report it. · FitLLM home