Only with CPU offload

Gemma 3 12B at Q4_K_M needs 8.3 GB but only 7.0 GB is addressable, so about 19% of the layers would stream from system RAM at roughly 60 GB/s. Expect around 15 tokens per second — usable for batch work, painful for chat.

81% on GPU 8K context Q4_K_M · 6.9 GB Gemma Terms of Use Released Mar 2025 Vision

Strong multilingual chat with images, sized for 12–16 GB cards. Gemma 4 12B is the same size and better.

What hardware do I need for Gemma 3 12B? →

Fits instead: Gemma 3 4B (3.3 GB) · Gemma 3 1B (1.2 GB)

The VRAM budget

weights 6.9 GB
Weights 6.9 GB KV cache @ 8K 0.81 GB Runtime overhead 0.6 GB Over budget 1.3 GB past 7.0 GB

Quantisation ladder

QuantWeightsTotal @ 8KMax contextTok/sQualityFit
F16 22.7 GB 24.1 GB ~2.0 Reference 17.1 GB over
Q8_0 12.1 GB 13.5 GB ~4.7 −0.1% ppl 6.5 GB over
Q6_K 9.3 GB 10.7 GB ~7.3 −0.4% ppl 3.7 GB over
Q5_K_M 8.1 GB 9.5 GB ~9.8 −0.8% ppl 2.5 GB over
Q4_K_M 6.9 GB 8.3 GB ~15 −1.9% ppl 1.3 GB over
Q3_K_M 5.6 GB 7.0 GB 8K 30 −5.4% ppl Fits
Q2_K 4.8 GB 6.2 GB 21K 35 −15% ppl Long context

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, 1 global in 6), which is why its cache barely grows with context.

How to run it

terminal
$ llama-server \
    -hf google/gemma-3-12b-it:Q4_K_M \
    -c 8192 -ngl 39

The engine underneath most of the others. Every knob is exposed. More on llama.cpp.

01Download is 6.9 GB. Keep it on an SSD — a first load off a spinning disk takes minutes.
02Close anything else holding VRAM. A browser with hardware acceleration can sit on 1–2 GB.
03If it falls back to CPU silently, drop the context first, then step down a quantisation.
See all models for this rig Compare with another model