Only with CPU offload
Gemma 4 31B at Q4_K_M needs 20.2 GB but only 14.4 GB is addressable, so about 33% of the layers would stream from system RAM at roughly 60 GB/s. Expect around 5.2 tokens per second — usable for batch work, painful for chat.
The dense flagship: strongest maths of the 24–32 GB class (89% AIME), clean prose, vision. Q4 is a tight 24 GB fit.
What hardware do I need for Gemma 4 31B? →
Fits instead: Gemma 4 12B (8.2 GB) · Gemma 4 E4B (5.2 GB)
The VRAM budget
Quantisation ladder
| Quant | Weights | Total @ 8K | Max context | Tok/s | Quality | Fit |
|---|---|---|---|---|---|---|
| Q8_0 | 31.0 GB | 33.6 GB | — | ~1.8 | −0.1% ppl | 19.2 GB over |
| Q6_K | 23.9 GB | 26.5 GB | — | ~2.7 | −0.4% ppl | 12.1 GB over |
| Q5_K_M | 20.7 GB | 23.3 GB | — | ~3.6 | −0.8% ppl | 8.9 GB over |
| Q4_K_M | 17.6 GB | 20.2 GB | — | ~5.2 | −1.9% ppl | 5.8 GB over |
| Q3_K_M | 14.2 GB | 16.9 GB | — | ~10 | −5.4% ppl | 2.5 GB over |
| Q2_K | 12.2 GB | 14.8 GB | 5K | ~23 | −15% ppl | 0.4 GB over |
Quality is the published perplexity delta against f16 weights. Max context assumes an f16 KV cache; q8_0 roughly doubles it. This model interleaves sliding-window layers (1024 tokens, 10 of 60 layers global), which is why its cache barely grows with context.
How to run it
$ llama-server \
-hf google/gemma-4-31B-it:Q4_K_M \
-c 8192 -ngl 40
The engine underneath most of the others. Every knob is exposed. More on llama.cpp.