Skip to main content
How to run DeepSeek-R1 32B on NVIDIA GeForce RTX 5090

How to run DeepSeek-R1 32B on NVIDIA GeForce RTX 5090

Exact commands, expected tok/s, VRAM math for this specific combination.

NVIDIA GeForce RTX 5090 has 32 GB of GDDR7. DeepSeek-R1 32B at q4KM wants ~19 GB of it for weights, plus ~2-3 GB of KV cache at 4K context. Verdi

This tutorial walks you through running DeepSeek-R1 32B on an NVIDIA GeForce RTX 5090. Exact commands, expected tokens-per-second, and the tradeoffs you should know before starting.

Does it fit?

NVIDIA GeForce RTX 5090 has 32 GB of GDDR7. DeepSeek-R1 32B at q4_K_M wants ~19 GB of it for weights, plus ~2-3 GB of KV cache at 4K context.

Verdict: ✅ Fits natively. Expect ~30-45 tok/s sustained generation throughput after warm-up.

Install Ollama (the easy path)

bash
# macOS/Linux
curl -fsSL https://ollama.com/install.sh | sh
ollama pull deepseek-r1:32b
ollama run deepseek-r1:32b

Ollama handles GPU detection automatically on NVIDIA (via CUDA), AMD (via ROCm on Linux), and Apple Silicon (via Metal). No manual configuration needed.

Install llama.cpp (more control)

llama.cpp gives you flag-level control over quantization, context length, and layer offload. Build from source:

bash
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make GGML_CUDA=1 -j

# Download a quantized GGUF (community favorite: bartowski or TheBloke on HuggingFace)
./llama-cli -m ~/models/deepseek-r1-32b-q4_k_m.gguf \
  -n 512 -c 4096 \
  -ngl 999 \
  -p "Write a haiku about GPUs"

-ngl 999 offloads all layers to the GPU.

Expected performance

  • Community reports from LocalLLaMA suggest ~25-40 tok/s on this class of hardware.

For single-user chat these speeds feel instant. For RAG pipelines where the model re-reads long context, prefill throughput matters more than generation tok/s.

Common issues

"out of memory" on the first prompt: reduce context length (-c 2048) or quantization (q4_K_S instead of q4_K_M).

Slow first token but fast generation: that's prompt processing ("prefill"). Normal — blame the KV cache building. Subsequent messages in the same session will be snappy.

Frequent swapping / system hangs: VRAM is full AND system RAM is full. Close Chrome. Add more DDR5.

Related


NVIDIA GeForce RTX 5090 specs: 32GB memory, 575W TDP, 2025 launch. MSRP $1,999.

Does it fit? Full quantization matrix

Weight-only VRAM for DeepSeek-R1 32B at every common quant, plus the KV-cache overhead for a 4K-token context. KV cache scales linearly with context — see the context-length table further down.

QuantWeights+ KV @ 4K ctxTotalFits on this GPU?Quality loss
q2_K_S9.6 GB2.6 GB12.2 GBSevere (15-25%)
q3_K_M14.4 GB2.6 GB17.0 GBNoticeable (5-8%)
q4_K_M19.2 GB2.6 GB21.8 GBMinimal (1-3%) — community default
q5_K_M22.4 GB2.6 GB25.0 GB<1%
q6_K25.6 GB2.6 GB28.2 GBEffectively lossless
q8_035.2 GB2.6 GB37.8 GBInference-lossless
fp1664.0 GB2.6 GB66.6 GBBaseline (original precision)

Values are approximate — actual footprint depends on batch size, whether the KV cache is quantized (-ctk q8_0 -ctv q8_0 in llama.cpp halves it), and whether you reserve VRAM for a display. Rule of thumb: budget 5-10% headroom on top of the table.

How public benchmarks show and compared

Every tok/s, FPS, and synthetic score in this article is pulled live from the SpecPicks benchmark catalog (hardware_specs, ai_benchmarks, synthetic_benchmarks). We cite the source_name on each row — the vast majority are community-reported numbers from r/LocalLLaMA and llama.cpp GitHub Discussions, with synthetic scores from PassMark, Phoronix, and Tom's Hardware's GPU hierarchy.

Where DB rows exist for a specific model+quant+GPU combination, we quote the number exactly. Where they don't, we fall back to published spec-sheet values (VRAM capacity, TDP, memory bandwidth) plus the closest community-verified ballpark — clearly flagged as a ballpark, not a measurement. We prefer "we don't know" over a fabricated number.

SpecPicks does not run paid hardware review cycles; we aggregate. If you see a number you can improve on, pull-request the row.

Measured tok/s on this GPU

Live data from ai_benchmarks for NVIDIA GeForce RTX 5090, filtered to the DeepSeek-R1 32B family where available:

ModelQuantRuntimeGen tok/sVRAM usedSource
_No direct matches in the DB yet — see community thread below_

For the full tok/s matrix on this card across every model we've logged, see the NVIDIA GeForce RTX 5090 benchmark page.

Context length and VRAM — the hidden cost

KV cache grows linearly with context. Here's the approximate overhead on top of 19.2 GB of q4_K_M weights for DeepSeek-R1 32B:

ContextKV cacheTotal VRAM
2K tokens~1.3 GB~20.5 GB
4K tokens~2.6 GB~21.8 GB
8K tokens~5.1 GB~24.3 GB
32K tokens~20.5 GB~39.7 GB
128K tokens~81.9 GB~101.1 GB

For long-context workloads (128K ≥ 32K) on consumer hardware, use llama.cpp's KV-cache quantization — -ctk q8_0 -ctv q8_0 roughly halves cache footprint with sub-1% quality loss. This is the single biggest VRAM-saving flag for long context.

Which runtime wins on this hardware?

Three mainstream runtimes target NVIDIA GeForce RTX 5090; the right one depends on your workload:

  • Ollama — easiest. Auto-detects CUDA, handles model downloads, exposes an OpenAI-compatible API out of the box. Wraps llama.cpp; you give up fine-grained control for zero setup.
  • llama.cpp — direct flag-level control over quant, context, KV-cache precision, batch size, split layers across GPUs. Where the LocalLLaMA community benchmarks its numbers (see the Apple-Silicon megathread #4167 for reference tok/s across M-series chips).
  • vLLM — built for production serving. Tensor parallelism, PagedAttention, continuous batching. Linux + NVIDIA CUDA primary target. If you're not serving multiple concurrent users, the overhead isn't worth it.

For head-to-head numbers and install commands across all three, see our Ollama vs llama.cpp vs vLLM guide.

Troubleshooting — three failure modes and fixes

1. First token takes 5-30 seconds, then generation is fast. That's normal prefill: the model is processing your prompt before it can start generating. On a long prompt (4K+ tokens) prefill dominates the first-token latency. If it's unexpectedly slow, check that you actually offloaded layers to the GPU — nvidia-smi or powermetrics (macOS) should show near-100% utilisation during prefill. If utilisation is flat, your inference is running on CPU.

2. "Out of memory" halfway through a long chat. The KV cache grew past what the card can hold. Drop to a smaller quant (q4_K_M → q3_K_M), cut -c context length, or enable KV-cache quantization (-ctk q8_0 -ctv q8_0 in llama.cpp). On Ollama set num_ctx smaller in your Modelfile.

3. Tok/s is ~30% of what LocalLLaMA threads report. Three usual suspects: (a) power/thermal throttling — check sustained clocks during a long prompt; (b) PCIe x8 or x4 link when you expected x16 — nvidia-smi --query-gpu=pcie.link.width.current --format=csv; (c) running the wrong binary, e.g. a non-CUDA llama.cpp build on an NVIDIA card. Rebuild with GGML_CUDA=1 and confirm.

Frequently asked questions

Can I run DeepSeek-R1 32B on NVIDIA GeForce RTX 5090 without offloading to CPU?

Yes at q4_K_M if the model weights plus KV cache fit in the card's 32 GB GDDR7. For DeepSeek-R1 32B that's approximately 19.2 GB of weights plus ~1-5 GB of KV cache depending on context length (2K to 8K).

What quantization should I use on NVIDIA GeForce RTX 5090?

q4_K_M is the community default — 1-3% quality loss vs fp16 with less than half the memory. Drop to q3_K_M only when VRAM is tight. Go to q6_K or q8_0 when you have headroom and want to eliminate quant damage as a variable.

Is NVIDIA GeForce RTX 5090 bottlenecked by memory or compute for this model?

Dense-weight inference is memory-bandwidth-bound on almost every consumer card. At the RTX 5090's ~1.79 TB/s of memory bandwidth, the sustained tok/s ceiling ≈ memory bandwidth ÷ weight bytes read per token. For 19 GB of q4_K_M weights, that ceiling is roughly 90-100 tok/s before runtime overhead. The compute units are rarely the limit for single-user inference; they matter more for batched serving.

Does multi-GPU help for this model?

For a 32B model, usually no. If the model already fits in one card, a second card mainly helps batch throughput (vLLM) not single-user latency. Tensor parallelism adds inter-GPU traffic that often nets negative for interactive chat. Multi-GPU pays off on 70B+ models where you need to stack VRAM across cards.

Where can I report or compare my own tok/s numbers?

The r/LocalLLaMA community benchmark threads are the canonical place. llama.cpp also maintains a GitHub Discussions thread for Apple Silicon and per-platform performance. SpecPicks imports numbers from both into ai_benchmarks; if you want a figure added, pull-request the row.

Sources

  1. r/LocalLLaMA (community tok/s threads)
  2. llama.cpp GitHub Discussions #4167 — Apple Silicon benchmark thread
  3. Tom's Hardware — RTX 5090 Founders Edition review
  4. Phoronix — RTX 5080/5090 Linux performance review
  5. PassMark — GeForce RTX 5090 video card benchmark

Related guides

Products mentioned in this article

Live prices from Amazon and eBay — both shown for every product so you can pick the channel that fits.

SpecPicks earns a commission on qualifying purchases through both Amazon and eBay affiliate links. Prices and stock update independently.

Frequently asked questions

What is the expected tokens-per-second (tok/s) performance for DeepSeek-R1 32B on the NVIDIA GeForce RTX 5090?
Community benchmarks suggest that DeepSeek-R1 32B achieves approximately 25-45 tokens per second on the NVIDIA GeForce RTX 5090, depending on the runtime and quantization settings. This performance is sufficient for single-user chat applications, though prefill latency may dominate in long-context scenarios.
What are the main differences between Ollama and llama.cpp for running DeepSeek-R1 32B?
Ollama offers ease of use with automatic GPU detection and minimal setup, while llama.cpp provides granular control over quantization, context length, and GPU layer offloading. Ollama is ideal for users prioritizing simplicity, whereas llama.cpp suits those needing fine-tuned performance adjustments.
How does context length affect VRAM usage for DeepSeek-R1 32B on the RTX 5090?
VRAM usage increases linearly with context length due to the KV cache. For example, a 4K-token context adds ~2.6 GB of VRAM on top of the model weights, while an 8K context adds ~5.1 GB. Long contexts (32K or more) may exceed the RTX 5090's 32 GB VRAM unless KV-cache quantization is enabled.
What are the common troubleshooting steps for 'out of memory' errors with DeepSeek-R1 32B?
To resolve 'out of memory' errors, reduce the context length (e.g., from 4096 to 2048 tokens), switch to a smaller quantization (e.g., q4_K_M to q3_K_M), or enable KV-cache quantization (`-ctk q8_0 -ctv q8_0`). These adjustments lower the VRAM requirements during inference.
Is the NVIDIA GeForce RTX 5090 suitable for long-context workloads with DeepSeek-R1 32B?
The RTX 5090 can handle long-context workloads up to 8K tokens with q4_K_M quantization. For contexts beyond 8K, VRAM usage may exceed 32 GB, requiring KV-cache quantization to reduce memory overhead. Without these optimizations, long contexts may cause swapping or system instability.

Sources

— SpecPicks Editorial · Last verified 2026-05-20

NVIDIA GeForce RTX 5090
NVIDIA GeForce RTX 5090
$4134.35
View on Amazon →

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More reviews from the SpecPicks archive

Browse all reviews →