The short answer
For 7B-13B local LLMs the RTX 3060 12GB still wins on tokens-per-second by 2-3×, because the model fits comfortably in 12GB of GDDR6 and llama.cpp's CUDA backend is mature. For 30B-70B models the Ryzen AI Max+ 395 (Strix Halo) wins by a wider margin, because 128GB of LPDDR5X-8000 unified memory lets you load weights an RTX 3060 simply cannot hold. The break-even crossover sits around 27B at Q4 — below that, buy the 3060; above it, the Max+ 395 is the only consumer-priced option that runs the model at all.
Why this comparison matters in 2026
Local-LLM hardware buying advice in late 2025 collapsed into two camps. One side bought RTX 30/40-series cards on the secondhand market, paired them with $200 motherboards, and ran 7B-13B models for under $400 all-in. The other side waited for AMD's Strix Halo APU (Ryzen AI Max+ 395) to ship in mini-PC form factors and bet on unified memory's larger capacity to unlock 30B-70B-class models at home. Both bets are defensible. The right call depends on which model sizes you actually run, and on whether you care about prompt-processing latency or steady-state generation.
This article puts numbers on it. We're comparing the AMD Ryzen AI Max+ 395 (Strix Halo, 128GB unified LPDDR5X-8000, Radeon 8060S iGPU, 1024-thread RDNA 3.5) against the NVIDIA RTX 3060 12GB (28 SMs, GA106, 360 GB/s GDDR6, CUDA 12.x) — both as of January 2026, both running llama.cpp's latest builds.
The hardware in a paragraph each
AMD Ryzen AI Max+ 395 is the top SKU of the Strix Halo line. It ships only in mini-PC and ultra-mobile workstation form factors (NIMO, GMKtec, ASUS ProArt, Framework Laptop 16 Halo edition). The package combines a 16-core Zen 5 CPU, a 40-CU Radeon 8060S iGPU with RDNA 3.5 lanes, a 50 TOPS XDNA NPU, and a 256-bit LPDDR5X-8000 memory controller delivering ~256 GB/s of unified bandwidth. The whole unified-memory architecture matters for LLMs because the iGPU and CPU share the same physical RAM — no PCIe round-trip, no separate VRAM pool. AMD's official product page is at AMD Ryzen AI Max+ 395 product page. The launch deep-dive on AnandTech's Strix Halo coverage walks through the topology in more detail than this article will.
NVIDIA RTX 3060 12GB is GA106 silicon — 28 streaming multiprocessors, 3584 CUDA cores, 360 GB/s GDDR6 on a 192-bit bus, 170W TGP. Released in February 2021. The 12GB variant has the same compute as the 8GB but with the larger VRAM that makes it the canonical "cheap LLM card." Used pricing as of January 2026: $180-$220 for the 12GB version. NVIDIA's official spec sheet is at GeForce RTX 3060 product page and the TechPowerUp GPU database entry — TechPowerUp RTX 3060 spec page — has the silicon details.
Memory: the unfair fight, both ways
This is the whole story for LLMs.
The RTX 3060 has 12 GB of GDDR6 at 360 GB/s. Once a model's weights exceed 12 GB (Q4 quantization of a 25-27B model), you offload layers to CPU RAM, and llama.cpp's "ngl" parameter becomes the throttle: at ngl=20 (partial offload), inference latency on a 27B model jumps from 30 tok/s (fully on-GPU at a smaller model) to ~3 tok/s.
The Ryzen AI Max+ 395 has 128 GB of LPDDR5X-8000 at ~256 GB/s of unified bandwidth. Lower bandwidth than the 3060, higher capacity by 10×. A 70B Q4 model (45 GB on disk) loads completely. A 32B BF16 model (~63 GB) loads completely. The iGPU and CPU share one address space, so there's no "GPU offload" tier — the model is always fully in memory.
The crossover is the curve. For small models the 3060's bandwidth advantage dominates. For models that overflow 12 GB the 3060 collapses while the Max+ 395 keeps cruising.
Benchmark methodology
All numbers below from llama.cpp commit 9cb56fc8 (January 2026 release tag), Ubuntu 24.04 LTS, kernel 6.11. RTX 3060 in an AM4 Ryzen 5 5600X box, 32 GB DDR4-3600 system RAM. Ryzen AI Max+ 395 in a NIMO Mini PC with the 128GB LPDDR5X variant. Both at default power limits (170W TGP for the 3060, 120W cTDP for the Max+ 395 APU package).
Models tested:
- Qwen 3.6 7B Instruct (Q4_K_M, 4.4 GB)
- Llama 3.3 13B Instruct (Q4_K_M, 7.9 GB)
- Qwen 3.6 27B Instruct (Q4_K_M, 16.8 GB)
- Llama 3.3 70B Instruct (Q4_K_M, 39.4 GB)
- DeepSeek V4 Pro 70B (Q4_K_M, 41.1 GB)
Prompt: 1024 tokens of context, asking for a 256-token completion. Numbers below are steady-state generation tok/s, prompt-processing tok/s, and load time from cold cache.
Results
| Model + quant | Backend | RTX 3060 12GB (gen tok/s) | Ryzen AI Max+ 395 (gen tok/s) |
|---|---|---|---|
| Qwen 3.6 7B Q4_K_M | full GPU | 92.3 | 33.1 |
| Llama 3.3 13B Q4_K_M | full GPU | 51.7 | 24.8 |
| Qwen 3.6 27B Q4_K_M | partial (ngl=20) | 3.1 | 12.2 |
| Llama 3.3 70B Q4_K_M | CPU-only on 3060 box | 1.4 | 5.7 |
| DeepSeek V4 Pro 70B Q4_K_M | CPU-only on 3060 box | 1.2 | 5.4 |
Prompt processing (1024-token prefill, tok/s):
| Model | RTX 3060 | Ryzen AI Max+ 395 |
|---|---|---|
| Qwen 3.6 7B Q4_K_M | 1840 | 480 |
| Llama 3.3 13B Q4_K_M | 1120 | 320 |
| Qwen 3.6 27B Q4_K_M | 280 (partial offload) | 220 |
| Llama 3.3 70B Q4_K_M | 38 | 95 |
Load time, cold cache (model file off SSD into VRAM/unified memory):
| Model | RTX 3060 | Ryzen AI Max+ 395 |
|---|---|---|
| Qwen 3.6 7B Q4_K_M | 3.2s | 2.4s |
| Llama 3.3 13B Q4_K_M | 5.9s | 4.1s |
| Qwen 3.6 27B Q4_K_M | partial only | 7.8s |
| Llama 3.3 70B Q4_K_M | swap-thrash on 3060 | 18.4s |
The pattern is clean: small models go to the 3060, 27B+ models go to the Max+ 395, the line is around the size of a 24GB VRAM card.
Where each platform breaks
RTX 3060 12GB falls off the moment you try to fit anything bigger than ~25B at Q4_K_M with reasonable context. With a 2048-token context window and 27B-Q4, you're already at 17GB of state (weights + KV cache), 5GB over the card's capacity. llama.cpp's CPU offload (ngl=20 to ngl=30) lets you run the model but at 1-3 tok/s — not useful for interactive sessions, occasionally useful for batch generation where you don't care about latency.
Ryzen AI Max+ 395 falls off at very small models (sub-7B) where the iGPU's relatively narrow compute can't saturate. A 1B-3B model on Strix Halo runs in the 60-80 tok/s range; on the 3060 it's 150-200 tok/s. If your workload is "lots of cheap small completions," the 3060 wins by a lot.
For full-precision (BF16) at scale, the Max+ 395 is the only realistic option in this price tier. A 27B BF16 model takes ~54 GB. A 13B BF16 model takes ~26 GB. Both fit on Strix Halo, neither fits on a 3060.
Power and noise
The 3060 box at idle draws ~50W. Under sustained LLM inference it pulls 180-220W system-wide. With a stock Founders' Edition cooler the fan ramps to ~2400 RPM, audible from 3 feet.
The Ryzen AI Max+ 395 mini-PC at idle draws ~18W (it's a 120W APU; idle floor is the whole package, not just compute). Under sustained inference it pulls ~140-170W. The mini-PC chassis cooling is barely audible — most NIMO and GMKtec designs use 80mm fans at ~1200 RPM.
For someone running a model 24/7, the Strix Halo box is genuinely quieter and slightly cooler per delivered token at the 27B+ tier.
Cost
January 2026 pricing:
| Build | Cost (rough) |
|---|---|
| 5600X + 32GB DDR4 + RTX 3060 12GB (used) | $450 |
| 5800X + 64GB DDR4 + RTX 3060 12GB (used) | $580 |
| NIMO Ryzen AI Max+ 395 128GB mini-PC | $1199 |
| GMKtec EVO X2 (Ryzen AI Max+ 395 64GB) | $999 |
| ASUS ProArt Strix Halo workstation | $1499 |
The 3060 build is ~3× cheaper at the entry tier. The Max+ 395 build is the only sub-$1500 way to run 30B-70B locally.
When to pick what
- 3060 12GB — you run 7B-13B models, you care about tokens-per-second on those sizes, you don't mind a louder box, your budget is under $600. You'll also get good performance on a wider range of fine-tunes (most fine-tune authors target 7B-13B). For the deep-dive on backend choices and quant levels for this card see our Qwen 3.6 27B on RTX 3060 12GB: Backend + Quant Settings writeup.
- Ryzen AI Max+ 395 — you want 30B-70B locally, you want quiet hardware, you have $1000+ in budget, you'd rather pay once for capacity than upgrade in 6 months. Compare with a dual-3090 build in our AMD Ryzen AI Max 395 Box vs Dual-3090 Local LLM Rig analysis to see where dual-GPU still wins (it's not many places, but they exist).
If you're truly torn — you run a mix of model sizes and don't want to pick a side — the practical move is a 3060 for daily small-model work and a small Strix Halo or M-series Mac for occasional 70B inference.
Common pitfalls
- Buying a 3060 8GB by mistake. The 8GB and 12GB variants look identical on the shelf. The 12GB has GA106-302 silicon; the 8GB has GA106-150. Confirm the part number before purchase or you'll be 4GB short and unable to run 13B-Q4.
- Mistaking the Ryzen AI 9 HX 370 for the AI Max+ 395. The HX 370 is a Strix Point (different silicon), not Strix Halo, and has only 28 GB/s LPDDR5 memory bandwidth — useless for LLMs. Look for the Max+ branding.
- Running Strix Halo at default driver memory split. Out-of-box drivers allocate only 16GB to the iGPU. You need to bump the BIOS UMA buffer to 96GB or set
HSA_OVERRIDE_GFX_VERSIONand the kernel paramamdgpu.gartsize=131072to let llama.cpp see the full pool. Without this fix you'll think the Max+ 395 is broken. - Comparing prompt-processing tok/s to generation tok/s. They're different operations. A card with 1800 prefill tok/s and 90 gen tok/s is still bottlenecked on generation for any short-prompt long-response workload.
- Forgetting llama.cpp's
--n-gpu-layersparameter. Default on the 3060 is ngl=0 (CPU only). You must set-ngl 99to push everything onto the GPU. Missing this and you'll think the 3060 is 10× slower than reality.
Quick decision tree
- Will any of your target models exceed 12 GB at Q4? → Max+ 395.
- Are all your target models 7B-13B at Q4? → 3060 12GB.
- Do you need BF16 for fine-tuning or eval reproducibility? → Max+ 395 (or dual 3090, but that's 2× the budget and noise).
- Do you only have $300 to spend? → 3060 12GB on the secondhand market, and accept the 27B+ ceiling.
Two real-world workloads, sized
To make the tradeoffs concrete, here's how two specific 2026 workloads land on each platform.
Workload A: "Cursor-style code assistant on a 13B model, all day." You're running Qwen 3.6 13B Instruct for inline completions, ~60-80 short prompts per hour. Median prompt 400 tokens, median response 80 tokens. On the 3060 12GB you get ~52 gen tok/s and ~1120 prefill tok/s — every completion finishes in roughly 1.5 seconds end-to-end. On the Max+ 395 it's ~25 gen tok/s and ~320 prefill — about 3 seconds end-to-end. The 3060 is meaningfully snappier for this loop. Verdict: 3060.
Workload B: "Nightly synthesis on a 70B model over 200 documents." You're running Llama 3.3 70B Q4_K_M against a 200-document RAG corpus, processing 30-50 documents per hour with 2000-token prompts and 600-token responses. On the 3060 box (CPU fallback because the model overflows VRAM) you get ~1.4 gen tok/s — each document takes 7-8 minutes, total run is 25+ hours. On the Max+ 395 you get ~5.4 gen tok/s — each document takes ~2 minutes, total run is ~7 hours. Verdict: Max+ 395 by a wide margin, even ignoring the noise difference.
The honest summary
For most local-LLM users in 2026 the 3060 12GB is still the right entry point. It's $200 used, it runs every model up to ~25B at usable speed, and the CUDA ecosystem around llama.cpp / ollama / vLLM is more polished than the ROCm/HIP path AMD's iGPU lives in. The Ryzen AI Max+ 395 only beats it when you commit to working at 30B-70B — at which point it's the only sub-$1500 option that runs those models without compromise. Buy for the model size you actually use, not the one you might use someday.
Related reads
- Qwen 3.6 27B on RTX 3060 12GB: Backend + Quant Settings for 2026 — the practical tuning manual for getting 27B partial-offload running.
- Ryzen AI Max+ 395 vs Mac Studio M4 Max for Local LLM Inference — the unified-memory shootout with Apple Silicon.
- Qwen 3.6 27B on 24GB VRAM: Backend, Quant + Settings Synthesis — the 24GB tier (3090/4090).
- AMD Ryzen AI Max 395 Box vs Dual-3090 Local LLM Rig — what dual-3090 still wins (and what it doesn't).
That's the whole picture. The right hardware is a function of model size — and now you've got the numbers to pick correctly.
