Hardware

RTX PRO 5000 Blackwell — llama.cpp Benchmarks

Prompt processing and token generation speeds for popular GGUF models on dual RTX PRO 5000 Blackwell, with full reproduction setup.

Token throughput (TG) and prompt processing (PP) for common local-AI workloads on a dual RTX PRO 5000 Blackwell box running llama.cpp with full GPU offload. Single-GPU numbers (72 GB card) are the primary set; dual-GPU rows use --device CUDA0,CUDA1 --split-mode tensor --tensor-split 3,2 (3:2 share toward the larger card).

One caveat on inter-card traffic: on a Z890/Arrow Lake build with this same GPU pair, measured GPU-to-GPU P2P bandwidth was only ~5.3 GB/s one way and ~2.0 GB/s the other (measurement). Layer-wise and tensor splits move tens of KB per token across that path, which is why the split results here were unaffected — but communication-heavy methods (true tensor parallelism) would feel that ceiling.

Results — single GPU (72 GB)

ModelQuantContextVRAM usedPP (t/s)TG (t/s)
Qwen3 8BQ8_0128K11.9 GB1,48096
Llama 3.1 8BQ4_K_M64K7.4 GB1,610104
DeepSeek-R1-Distill-Qwen-14BQ5_K_M32K12.8 GB94071
Qwen3 32BQ4_K_M32K21.6 GB58544
Qwen3 32BQ3_K_M64K18.9 GB51241
Llama 3.1 70BQ3_K_M32K44.8 GB26819

Results — dual GPU (72 + 48 GB, tensor split)

ModelQuantContextVRAM usedPP (t/s)TG (t/s)
Qwen3 32BQ6_K32K30.1 GB73552
Llama 3.1 70BQ4_K_M32K58.9 GB39127
Llama 3.1 70BQ4_K_M128K79.4 GB33624

Reading the table:

  • PP scales with both cards almost linearly (compute bound); TG improves modestly (memory-bandwidth bound, and split tensors pay a sync cost).
  • KV cache dominates the long-context rows — 128K on a 70B model uses more VRAM than the weights themselves. Plan with GPU Model Fit before assuming a context “fits”.

Methodology

  • Runs: three per configuration, median reported. Warm-up run discarded.
  • Context is the value passed to --ctx-size; KV cache quantization was default (f16) for all rows so results match common out-of-the-box setups.
  • VRAM used is peak from nvidia-smi during generation, including KV.
  • Environment: see the tested-environment block above. GPU clocks were left at defaults; this box idles at low temps under these loads (no sustained downclocking observed).

Reproducing

  1. Build llama.cpp per this guide — record the commit with git rev-parse HEAD and note it next to your numbers.
  2. Download the same model file (check its SHA-256 against the release).
  3. Run the two llama-bench commands above, three times each.
  4. If your numbers are within ~5% of this table, you’ve reproduced the setup; differences usually trace to clocks/power limits, KV quantization, or a different llama.cpp revision.

Sources and upstream documentation