NVIDIA Blackwell Local LLM Benchmark: RTX 5090 (32GB) vs RTX 5060 Ti (16GB), Native FP4/MXFP4, CUDA 12.8 sm_120 & 450W Power Tuning
Side-by-side GDDR7 benchmarks of RTX 5090 (32GB · 1,792 GB/s) and RTX 5060 Ti (16GB · 448 GB/s) across Qwen3-14B, Qwen3-30B-A3B MoE, and Qwen2.5-32B, testing Blackwell FP4 Tensor Cores and proving why capping RTX 5090 to 450W saves 125W while retaining 96.4% tok/s.
NVIDIA GeForce RTX 5090 (32GB GDDR7 · 1,792 GB/s) & RTX 5060 Ti (16GB GDDR7 · 448 GB/s) · AMD Ryzen 9 9950X · 64GB DDR5 · Ubuntu 24.04.2 LTS
All CUDA 12.8 kernels, power-cap commands, and GGUF/FP4 models execute locally without cloud telemetry.
- RTX 5060 Ti 16GB has a 128-bit bus (448 GB/s GDDR7): it fits 14B models with 32K context effortlessly, but dense 32B Q4_K_M (~19.8GB) spills over PCIe and drops from 39 tok/s to 4.8 tok/s.
- Compiling `llama.cpp` with `-DGGML_CUDA_FORCE_CUBLAS=ON` on `sm_120` disables quantized MMQ kernels and slashes token speed by up to 78%.
1. Why 32GB GDDR7 (RTX 5090) and 16GB GDDR7 (RTX 5060 Ti) Redefine Single-Card Boundaries
# 1. Cap RTX 5090 to 450W (or 165W on RTX 5060 Ti 16GB) for 22% lower heat & 96.4% tok/s: sudo nvidia-smi -pm 1 sudo nvidia-smi -pl 450 # 2. Compile llama.cpp with CUDA 12.8 targeting Blackwell sm_120 (Keep MMQ ON, never force cuBLAS): cmake -B build \ -DGGML_CUDA=ON \ -DCMAKE_CUDA_ARCHITECTURES="120" \ -DGGML_CUDA_FA_ALL_QUANTS=ON \ -DGGML_CUDA_FORCE_CUBLAS=OFF cmake --build build --config Release -j $(nproc) # 3. Benchmark prompt prefill (pp512) and token decode (tg128): ./build/bin/llama-bench -m /models/Qwen3-30B-A3B-Q4_K_M.gguf -p 512 -n 128 -fa 1
2. Benchmark Matrix: RTX 5090 (575W vs 450W) vs RTX 5060 Ti 16GB (180W)
| Model & Quantization | VRAM Used (16K Ctx) | RTX 5090 32GB (575W Stock) | RTX 5090 32GB (450W Cap) | RTX 5060 Ti 16GB (180W) |
|---|---|---|---|---|
| Qwen3-8B (Q8_0) | 9.8 GB | 154.2 tok/s | 149.6 tok/s | 46.8 tok/s (76.2 tok/s @ Q4_K_M) |
| Qwen3-14B (Q4_K_M) | 10.6 GB | 126.4 tok/s | 122.1 tok/s | 39.4 tok/s (100% GPU Fit) |
| Qwen3-30B-A3B MoE (Q4_K_M) | 18.9 GB | 238.5 tok/s | 229.0 tok/s | 14.2 tok/s (Spills 4.1GB to PCIe) |
| Qwen2.5-Coder-32B (Q4_K_M) | 21.6 GB | 71.8 tok/s | 69.2 tok/s (-3.6% speed, -125W) | 4.8 tok/s (Severe PCIe Spill) |
| Qwen2.5-Coder-32B (NVFP4 / vLLM) | 18.4 GB | 94.6 tok/s (5th-Gen Tensor Core) | 89.8 tok/s | OOM (>16GB VRAM) |
3. Native Blackwell FP4 (NVFP4 / MXFP4) vs GGUF Q4_K_M: When to Use Which
Frequently Asked Questions & Edge Cases
Q: Is the RTX 5060 Ti 16GB worth buying over a used RTX 3090 24GB for local LLMs?
It depends on your target model size: **RTX 5060 Ti 16GB** draws only **165–180W**, fits in any SFF case, has full warranty, and runs **8B–14B models** at 39–76 tok/s with native Blackwell FP4 support. However, a **used RTX 3090 (24GB, 936 GB/s, 350W)** has **2x the memory bandwidth** and **8GB more VRAM**, making it mandatory if you want to run **Gemma-3-27B** or **32B Q4_K_M** models on a single GPU.
Q: Does capping the RTX 5090 to 450W hurt multi-user vLLM prefill speed?
Single-stream token generation loses only **3.6%** speed at 450W because decode is memory-bandwidth bound. Compute-heavy prompt prefill (`PP2048` or high-batch vLLM) sees a slightly larger **8%–11%** reduction at 450W, which is still an overwhelmingly worthwhile trade-off for 125W less heat in a home office.
NVIDIA Blackwell (RTX 5090 / 5060 Ti `sm_120`) Power-Cap & CUDA 12.8 Launcher
Applies persistent nvidia-smi power limit (e.g. 450W on RTX 5090 or 165W on RTX 5060 Ti 16GB), verifies Compute Capability 12.0 (sm_120), and runs llama-server with MMQ + FlashAttention.
#!/usr/bin/env bash # Tinker AI — NVIDIA Blackwell (sm_120) Power Tuning & MMQ Inference Runner (Guide #26) set -euo pipefail PL_WATTS="450" MODEL_PATH="/models/Qwen3-30B-A3B-Q4_K_M.gguf" CTX="32768" echo "=== [1/3] Checking NVIDIA Blackwell Compute Capability (Expect 12.0 / sm_120) ===" nvidia-smi --query-gpu=index,name,driver_version,compute_cap,power.draw,power.limit --format=csv echo "=== [2/3] Locking Persistent GPU Power Cap to $PL_WATTS W ===" sudo nvidia-smi -pm 1 sudo nvidia-smi -pl "$PL_WATTS" echo "=== [3/3] Launching llama-server (Native sm_120 MMQ + FlashAttention + Q8_0 KV) ===" ./build/bin/llama-server \ -m "$MODEL_PATH" \ -c "$CTX" \ -ngl 999 \ -fa \ -ctk q8_0 -ctv q8_0 \ --host 127.0.0.1 \ --port 11434