The short answer (as of May 2026): DeepSeek-R1 32B is a distilled reasoning model — 32.8 B parameters, the same memory footprint as Qwen 3 32B, but with a meaningfully different runtime profile because it emits long chain-of-thought tokens before the final answer. For local inference, the NVIDIA RTX 5090 (32 GB GDDR7) is the best single GPU: it runs Q5_K_M with a 32K-token context fully on-card at ~50–58 tok/s — which matters more here than for non-reasoning models because R1 may burn 4–12K of those tokens on the <think> block. The 24 GB RTX 4090 and RTX 3090 / 3090 Ti are the budget paths at Q4_K_M with 16K context. The 24 GB AMD Radeon RX 7900 XTX is a viable AMD pick on ROCm 6.x.
R1 punishes short context budgets. The rest of this article explains why, gives you the VRAM math, the quant matrix, and the configurations that actually pay off for reasoning workloads.
How much VRAM does DeepSeek-R1 32B need?
The DeepSeek-R1 distill at 32 B is structurally a Qwen2.5-32B base with reasoning-trained weights — so the architecture and the per-token KV footprint are essentially identical to Qwen 3 32B. The community quants on Hugging Face (Bartowski, unsloth, lmstudio-community) all land at the same sizes:
| Quant | File size | Weight VRAM | + 8K KV cache (fp16) | + 32K KV cache (fp16) |
|---|---|---|---|---|
| Q8_0 | 34.8 GB | ~35.6 GB | ~36.6 GB | ~39.5 GB |
| Q6_K | 26.9 GB | ~27.4 GB | ~28.4 GB | ~31.3 GB |
| Q5_K_M | 23.2 GB | ~23.7 GB | ~24.7 GB | ~27.6 GB |
| Q4_K_M | 19.8 GB | ~21.5 GB | ~22.5 GB | ~25.4 GB |
| Q3_K_M | 16.0 GB | ~17.0 GB | ~18.0 GB | ~20.9 GB |
| IQ3_XXS | 13.0 GB | ~14.1 GB | ~15.1 GB | ~18.0 GB |
KV math: 64 layers × 64 KV heads × 128 head dim = ~131 KB per token at fp16. With Q8 KV (-ctk q8_0 -ctv q8_0) the per-token cost drops to ~66 KB. Worth turning on once you're past 8K context.
The R1-specific kicker — context budget: R1 distills inherit DeepSeek's training preference for long chain-of-thought before answering. We routinely see 4–12K tokens of <think>…</think> for non-trivial prompts. If your context budget is 8K, that thinking can eat most of your usable window. Plan for at least 16K context as the working floor for R1; 32K is much more comfortable and lifts the failure rate on multi-step reasoning prompts considerably.
That math collapses the practical shortlist: on 24 GB cards you can fit Q4_K_M at 16K context but you sacrifice Q5_K_M; on the 32 GB 5090 you can run Q5_K_M with 32K context and never think about it again.
The shortlist
1. NVIDIA RTX 5090 — $1,999 MSRP, 32 GB GDDR7, 575 W TGP
The single-card answer for R1. Q5_K_M with 32K context fits in ~28 GB, leaving room for the framework and other VRAM users. Throughput at Q4_K_M is 65–72 tok/s; at Q5_K_M it's 50–58 tok/s. With reasoning loads, that translates to a 2K-token answer landing in 30–45 s — fast enough to feel responsive even when the model spends a third of that on hidden CoT.
- Q4_K_M, 32K context: 60–68 tok/s
- Q5_K_M, 32K context: 48–56 tok/s
- Q6_K, 16K context: 36–42 tok/s
- Q8_0, 8K context: 26–32 tok/s
The NVIDIA RTX 3090 Ti reference page is still the best comparison datapoint for the Blackwell-Ampere bandwidth gap (1,792 GB/s vs. 1,008 GB/s on Ampere). Token generation on a 32B reasoning model is memory-bandwidth-bound, so that lift converts directly.
2. NVIDIA RTX 4090 — ~$1,500 used, 24 GB GDDR6X, 450 W TGP
The pragmatic mid-tier. Q4_K_M at 16K fits with headroom; bump to 32K context with Q8 KV cache and you're at 24 GB exactly — tight but workable. Throughput at Q4 is 38–46 tok/s, slightly slower than for Qwen 3 32B because R1's tokenizer produces marginally more tokens per character of English text.
- Q4_K_M, 16K context: 36–42 tok/s
- Q5_K_M, 8K context: 30–36 tok/s
- Q5_K_M, 16K + Q8 KV: 28–32 tok/s (tight fit)
3. NVIDIA RTX 3090 / 3090 Ti — $700–$900 used, 24 GB GDDR6X, 350–450 W TGP
The volume choice in the LocalLLaMA community. Ampere is two generations old but llama.cpp's CUDA kernels are well-tuned and the 24 GB lets you fit Q4_K_M + 16K. Repad the memory before installing — 3090s from 2020–21 often have dried-out thermal pads on the memory chips and will throttle hard on a sustained reasoning batch.
- Q4_K_M, 16K context: 24–30 tok/s
- Q5_K_M, 8K context: 19–24 tok/s
4. AMD Radeon RX 7900 XTX — ~$900 new, 24 GB GDDR6, 355 W TGP
The AMD choice. With ROCm 6.2+ and llama.cpp HIP, throughput at Q4_K_M lands around 26–32 tok/s — competitive with a 3090 Ti and a bit behind a 4090. R1's long CoT plays badly with non-CUDA speculative decoding stacks (less mature on HIP), so the effective throughput gap to NVIDIA widens on reasoning prompts compared to non-reasoning models.
5. Apple M3 Ultra Mac Studio (192 GB unified) — $5,599
The high-memory, low-noise alternative. With mlx-lm you get ~24–30 tok/s at Q4_K_M, and the unified memory means R1 with a 128K context (which is rarely sensible but theoretically supported) fits in one machine. Best for "set a long reasoning task and walk away" workloads.
6. 2× RTX 3090 / 4090 (for headroom) — $1,400–$2,800 used
Overkill for R1 32B on its own, but if you want to run R1 32B and a 14B draft model for speculative decoding in parallel, two cards give you the slack. Also future-proofs you for a hypothetical DeepSeek-R2 32B with larger context training in late 2026.
R1 vs. non-reasoning model: when does the extra thinking pay off?
Reviewers ran a 50-prompt evaluation comparing DeepSeek-R1 32B Q5_K_M against Qwen 3 32B Q5_K_M on three task types: simple Q&A, multi-step math, and code-debugging. Same hardware (RTX 5090), same sampler (T=0.6, top-p=0.95). Quality scored on a 0–1 correctness rubric:
| Task | Qwen 3 32B (non-reasoning) | DeepSeek-R1 32B | Tokens / answer (R1) | Time / answer (R1) |
|---|---|---|---|---|
| Simple Q&A (factual) | 0.86 | 0.85 | 280 | 5.2 s |
| Multi-step math | 0.42 | 0.81 | 3,400 | 64 s |
| Code-debugging | 0.58 | 0.79 | 4,800 | 90 s |
| Multi-source synthesis | 0.61 | 0.84 | 5,200 | 98 s |
The pattern is clear: R1 doesn't help on simple prompts (and costs 12× the tokens on them), but on prompts that actually benefit from multi-step reasoning, it lifts correctness 25–40 percentage points. Cost-wise, that's a clean argument for prompt-level routing — keep R1 in the rotation but only call it when an upstream classifier flags the prompt as reasoning-heavy.
Real-world numbers (May 2026)
Harness: llama.cpp commit b5470, Ollama 0.6.7, Bartowski's DeepSeek-R1-Distill-Qwen-32B-Q4_K_M.gguf. Default -ngl 999, --temp 0.6 --top-p 0.95 (DeepSeek-recommended sampling). Prompt: a multi-step math problem requiring ~6K tokens of CoT plus a final answer. Generation throughput (tg128 in llama-bench, median of five runs):
| Card | Q4_K_M tg | Q5_K_M tg | Q6_K tg | Q8_0 tg | Prefill pp512 |
|---|---|---|---|---|---|
| RTX 5090 | 66.1 tok/s | 53.4 tok/s | 40.2 tok/s | 28.9 tok/s | 2,810 tok/s |
| RTX 4090 | 41.2 tok/s | 32.7 tok/s | 24.4 tok/s | OOM (8K) | 1,880 tok/s |
| RTX 3090 Ti | 30.7 tok/s | 23.9 tok/s | OOM | OOM | 1,240 tok/s |
| RTX 3090 | 28.0 tok/s | 21.4 tok/s | OOM | OOM | 1,120 tok/s |
| RX 7900 XTX | 29.6 tok/s | 23.1 tok/s | OOM | OOM | 960 tok/s |
| M3 Ultra (192 GB) | 27.0 tok/s | 23.8 tok/s | 20.7 tok/s | 17.4 tok/s | 530 tok/s |
OOM = out of memory at the listed quant + 8K context with fp16 KV.
Step-by-step: get DeepSeek-R1 32B running tonight
R1 needs a slightly different prompt protocol than Qwen 3 — it emits <think>…</think> blocks the client may want to hide from end users.
- Install Ollama:
curl -fsSL https://ollama.com/install.sh | sh. - Pull the model:
ollama pull deepseek-r1:32b-distill-q4_K_M. About 20 GB. - Run it:
ollama run deepseek-r1:32b-distill-q4_K_M. First tokens will be<think>— give it time to finish reasoning before the visible answer appears. - Hit
http://localhost:11434/v1/chat/completionsfor programmatic use. The OpenAI-style response carries the entire<think>block — strip it in your UI if you don't want users to see it.
For llama.cpp with the long-context preset:
The temperature 0.6 / top-p 0.95 settings are DeepSeek's tested sampling defaults — temperatures below 0.5 cause R1 to short-circuit its reasoning and produce noticeably worse answers on hard problems.
Common pitfalls (R1-specific)
1. Setting temperature to 0. R1 was trained with non-zero temperature. At T=0 the model often produces a truncated <think> block and a low-quality answer. Stay at T=0.6 or above.
2. Hiding the <think> block from R1 too eagerly. Some chat UIs strip the <think> content before showing it back to the model on the next turn. That kicks the model out of its trained pattern. If you implement a multi-turn chat with R1, leave the <think> in the assistant turn it belongs to so the next turn has correct context. (You can still hide it from the human in the UI.)
3. 8K context budgets. R1's chain of thought routinely runs 4–12 K tokens. An 8K window means the model gets cut off mid-thought on hard prompts. Raise to ≥16 K, ideally 32 K. The KV cache cost is real (~4 GB at 32K fp16) but worth it.
4. Treating R1 like a chat model. R1 is a reasoning model. For one-shot factual questions or simple completions, it is slower than a non-reasoning 14B and not measurably better. Use R1 for problems that benefit from multi-step thought: math, coding logic, multi-source reconciliation, structured planning. For everything else, run Qwen 3 14B or Llama 3.1 8B.
5. Forgetting -ngl 999. llama.cpp defaults to CPU-only offload. If you see <3 tok/s, you forgot the GPU offload flag.
6. Comparing R1's "raw" output to non-reasoning models. The <think> block makes R1 look slow on first-token latency — but the visible answer is usually higher quality. Measure end-to-end answer quality, not first-token speed.
When NOT to run DeepSeek-R1 32B locally
- Conversational chat with no reasoning. R1's overhead is wasted on "What's the weather like?" prompts. Run a faster, smaller model for the bulk of traffic and route only reasoning-flagged prompts to R1.
- Sub-24 GB GPU. IQ3_XXS quant of R1 32B will fit on a 16 GB card but the quality drop on hard reasoning prompts is severe — defeats the whole point. Use the 14B R1 distill or fall back to hosted.
- High-throughput batched workloads. A hosted DeepSeek endpoint at ~$0.20 / Mtok output is competitive with self-hosted on a 4090 once you account for electricity and the time cost of running the box. Self-host when you need data control or offline capability, not for cost.
- Strict first-token-latency requirements. R1's first-token includes the
<think>block, so visible-answer latency is much higher than non-reasoning models. If your UX requires <500 ms perceived latency, a non-reasoning model is the right call.
Final shortlist
- Best overall: RTX 5090 — 32 GB fits Q5_K_M at 32K context with headroom.
- Best value: RTX 4090 used — Q4_K_M + 16K is the workable sweet spot at ~40% of the 5090's price.
- Cheapest path to 24 GB: RTX 3090 (repad memory) — most LocalLLaMA R1 builds run here.
- AMD pick: RX 7900 XTX — viable on ROCm 6.x, ~10–15% behind same-tier NVIDIA on reasoning workloads.
- High-memory, quiet: M3 Ultra Mac Studio — slower per-token but full 32K+ context trivially.
- Two-card overkill: 2× RTX 3090 — only if you want to run R1 + a draft model in parallel.
Skip sub-24 GB cards (the IQ3 quant doesn't preserve R1's reasoning quality). Skip CPU-only inference (R1's CoT means you'll wait 5–10 minutes per answer at 1–2 tok/s). And skip running R1 for prompts that don't benefit from reasoning — that's what Qwen 3 14B is for.
