Introduction: who runs a 3B model on a CPU in 2026
Most people running CPU-only inference in 2026 didn't plan it. They have an AM4 box left over from a 2018 or 2021 build. It might be a home server, a Plex machine, or a desk PC that got replaced by a laptop. They want a small local model on it for jobs that don't justify a graphics card: tagging email, summarizing logs overnight, answering Home Assistant intents, or acting as the "cheap model" step in an agent pipeline that runs a few hundred times a day and sits idle the rest of the time.
For that reader, the Ryzen 5 2600 and the Ryzen 5 5600G are the two most common chips in the socket. Both have six cores and twelve threads, a 65 W TDP and a dual-channel DDR4 controller. On paper they look close enough that swapping one for the other seems pointless. They differ in three places that matter for inference:
- Microarchitecture. The 2600 is Zen+ on 12 nm. The 5600G is Zen 3 on 7 nm, with higher clocks and much better per-core throughput.
- Rated memory speed. AMD rates the 2600 for DDR4-2933 and the 5600G for DDR4-3200, per its spec pages for the Ryzen 5 2600 and the Ryzen 5 5600G.
- Graphics. The 2600 page says "Discrete Graphics Card Required". The 5600G has seven Radeon graphics cores built in.
Llama 3.2 3B is the realistic ceiling for both. It has 3.21 billion parameters per the Hugging Face model card, and its Q4_K_M file is 2.02 GB in bartowski's GGUF set. That's small enough that either CPU produces text faster than most people read. An 8B model roughly halves generation speed on either chip and pushes prompt processing into multi-minute waits. Nobody has published a Llama 3.2 3B run on either chip, so the throughput figures below are scaled from measured runs on sibling silicon, and each one is labeled as an estimate.
Key Takeaways
- Generation is close: ~15–19 tok/s on the 5600G against ~13–17 on the 2600 for Q4_K_M. These are estimates from measured memory-bandwidth efficiency in llamafile #450 divided by the 2.02 GB file.
- Prefill is about 2.5–3× faster on the 5600G, estimated at ~130 tok/s against ~45–50 tok/s. A 1,000-token prompt waits about 8 seconds instead of about 21.
- Memory speed matters more than the CPU for generation. One Ryzen 9 3900X moved from 6.32 to 8.45 tok/s on the same model just by going from DDR4-2666 to DDR4-3600 (llamafile #450).
- The iGPU is a display output, not an accelerator. On a tuned Ryzen 7 5700G, Vulkan decode beat the CPU by 25% only with RAM overclocked to DDR4-4200 (toolkit README).
- A 12 GB GPU is a different class. An RTX 3060 generates 122.85 tok/s on the same 3B Q4_K_M model (Geerling, issue #40).
Why does Zen 3 beat Zen+ on the same core count?
Every generated token streams the entire weight file out of RAM once. For Llama 3.2 3B at Q4_K_M, that's 2.02 GB per token. Decode speed is therefore capped at memory bandwidth divided by file size. Dual-channel DDR4 moves 8 bytes per channel per transfer (Wikipedia, DDR4 SDRAM), so the theoretical peaks are:
- Ryzen 5 2600 at DDR4-2933: 46.9 GB/s, a ceiling of ~23 tok/s on the 3B model.
- Ryzen 5 5600G at DDR4-3200: 51.2 GB/s, a ceiling of ~25 tok/s.
Neither chip reaches its ceiling. How close each gets comes down to the cache and core differences:
Cache topology. The 2600 splits its 16 MB of L3 into two 8 MB slices, one per three-core CCX. A thread reaches the other slice only across Infinity Fabric, with the extra latency that brings. The 5600G has the same 16 MB total (AMD), but Zen 3 puts all six cores on one CCX sharing one slice. No weight file fits in either cache, so cache size doesn't lift decode. What the unified slice changes is how well the six threads coordinate on the shared activations and KV cache between layers. (The "32 MB unified L3" often quoted in these comparisons belongs to the Ryzen 7 5800X. The 5600G has 16 MB.)
Execution width and clocks. Zen+ runs 256-bit AVX2 as two 128-bit halves. Zen 2 and Zen 3 execute it natively in one pass, as Wikipedia's Zen 2 article describes. The 5600G also boosts to 4.4 GHz against the 2600's 3.9 GHz (AMD). llama.cpp's CPU kernels are AVX2, so per-clock matrix throughput roughly doubles before the clock advantage even counts.
Measured bandwidth efficiency. The llamafile thread shows what each generation extracts from its memory bus. Effective bandwidth here is file size times generation rate:
- Zen+ (Ryzen 5 3550H): 6.44 tok/s on a 4.07 GiB Mistral 7B Q4_K_M at DDR4-2400. That's about 28.1 GB/s, 73% of peak.
- Zen 3 (Ryzen 5 5600X): 8.95 tok/s on a 3.83 GiB Q4_0 at DDR4-3000. That's about 36.8 GB/s, 77% of peak.
Apply those efficiencies to each chip's rated bandwidth and the estimates are ~34 GB/s for the 2600 and ~39 GB/s for the 5600G. Dividing by 2.02 GB gives about 17 and 19 tok/s. Small models also carry more fixed per-token overhead than 7B ones, so the realistic bands start a couple of tok/s lower: 13–17 and 15–19.
Spec delta
| Spec | AMD Ryzen 5 2600 | AMD Ryzen 5 5600G | Why it matters for a 3B model |
|---|---|---|---|
| Architecture / process | Zen+, 12 nm | Zen 3, 7 nm | Per-core prefill throughput |
| Cores / threads | 6 / 12 | 6 / 12 | Same thread budget |
| Clocks (base / boost) | 3.4 / 3.9 GHz | 3.9 / 4.4 GHz | +13% boost |
| L3 cache | 16 MB (2 × 8 MB CCX) | 16 MB (one CCX) | Latency, not capacity |
| Rated memory | DDR4-2933, 2 channels | DDR4-3200, 2 channels | 46.9 vs 51.2 GB/s peak |
| TDP | 65 W | 65 W (cTDP 45–65 W) | Same cooling class |
| Graphics | None; discrete card required | 7 Radeon graphics cores | A 2600 box needs a GPU drawing idle power |
| Launch | April 2018 | April 2021 | — |
Specs come from AMD's pages for the Ryzen 5 2600 and the Ryzen 5 5600G. Current listings: the AMD Ryzen 5 2600 with Wraith Stealth and the AMD Ryzen 5 5600G with Radeon Graphics. The 2600's new-stock listing sits well above its used-market price, so check the price at checkout.
Benchmark table: Llama 3.2 3B throughput
No public llama.cpp run exists for Llama 3.2 3B on either chip as of September 2026. The measured rows below are the closest public data on the same microarchitectures, followed by the derived 3B estimates.
| System | Model / quant | Prefill (tok/s) | Generation (tok/s) | Status |
|---|---|---|---|---|
| Ryzen 5 5600X (Zen 3, 6c), 96 GB DDR4-3600 | Mistral 7B Q6_K, 5.53 GiB | 62.33 (pp512) | 7.51 | Measured, llamafile #450 |
| Ryzen 5 5600X (Zen 3, 6c), DDR4-3000 | Mistral 7B Q4_0, 3.83 GiB | 23.70 (pp512) | 8.95 | Measured, same thread |
| Ryzen 5 3550H (Zen+, 4c), DDR4-2400 | Mistral 7B Q4_K_M, 4.07 GiB | 11.75 (pp512) | 6.44 | Measured, same thread |
| Ryzen 5 3550H (Zen+, 4c), DDR4-2400 | Mistral 7B Q6_K, 5.53 GiB | 11.52 (pp512) | 4.69 | Measured, same thread |
| Ryzen 9 3900X (Zen 2, 12c), DDR4-3200 | Mistral 7B Q6_K | 69.43 (pp512) | 7.55 | Measured, same thread |
| Ryzen 5 2600, DDR4-2933 | Llama 3.2 3B Q4_K_M, 2.02 GB | ~45–50 | ~13–17 | Estimate |
| Ryzen 5 5600G, DDR4-3200 | Llama 3.2 3B Q4_K_M | ~120–140 | ~15–19 | Estimate |
Here's how the estimates are built:
- 2600 prefill: the 3550H's 11.75 tok/s × 1.5 for cores × ~1.2 for desktop clocks gives ~21 tok/s on a 7.24B model. Scaling by parameter count (7.24B ÷ 3.21B = 2.26×) gives ~48 tok/s.
- 5600G prefill: the 5600X's 62.33 tok/s × 2.26 gives ~141 tok/s. That's trimmed to 120–140 because the 5600G boosts 200 MHz lower.
- Generation: measured efficiency × rated bandwidth ÷ file size, as in the previous section.
Treat every derived figure as ±20%. The two 5600X rows are the warning: the same chip measured 62.33 tok/s prefill on Q6_K and 23.70 on Q4_0, because llamafile's kernels at the time weren't equally tuned for every quant type. Prefill depends on the kernel build as much as on the silicon.
Quantization matrix for a 3B model on DDR4
File sizes come from bartowski and, for Q2_K and Q3_K_M, Unsloth. "RAM at 8k context" adds the fp16 KV cache (0.94 GB, derived below) and about 0.5 GB of runtime buffers. The speed bands divide each chip's effective bandwidth by file size, so they're estimates.
| Quant | File size | RAM at 8k context | Est. gen, 2600 | Est. gen, 5600G | Quality note for a 3B model |
|---|---|---|---|---|---|
| Q2_K | 1.36 GB | ~2.8 GB | 20–25 | 23–29 | Visible degradation; small models suffer most |
| Q3_K_M | 1.69 GB | ~3.1 GB | 16–20 | 18–23 | Usable for classification, weaker prose |
| Q4_K_M | 2.02 GB | ~3.5 GB | 13–17 | 15–19 | The default |
| Q5_K_M | 2.32 GB | ~3.8 GB | 12–15 | 13–17 | Small quality gain |
| Q6_K | 2.64 GB | ~4.1 GB | 10–13 | 12–15 | Near-lossless |
| Q8_0 | 3.42 GB | ~4.9 GB | 8–10 | 9–11 | Effectively lossless |
| F16 | 6.43 GB | ~7.9 GB | 4–5 | 5–6 | Reference only |
The low-bit rows come with a caveat: K-quants spend more CPU time unpacking each byte. The 2600's narrower AVX2 path may fall short of the Q2_K and Q3_K_M bands. That's one more reason to stay at Q4_K_M, where a 3B model keeps most of its quality and both chips stay bandwidth-bound. Any machine with 8 GB of RAM fits every row except F16. Buy 16 GB anyway, in two matched sticks.
Prefill vs generation: which half each CPU loses
Every request has two phases:
- Prefill reads your whole prompt in one batched pass. Each weight fetched from RAM gets reused across hundreds of tokens, so this phase is limited by arithmetic, not memory. Cores, clocks and AVX2 width all count, and Zen 3 wins on every one.
- Generation produces one token at a time and re-reads every weight for each one. The cores mostly wait on RAM. The llama.cpp developer Johannes Gäßler measured this on a Ryzen 7 3700X: "just 5 threads are enough to fully utilize the memory bandwidth provided by dual channel memory".
So the 2600 loses prefill by roughly 3× and generation by only 10–20%. Which one you notice depends on the job:
| Workload | Prompt tokens | Output tokens | Ryzen 5 2600 (est.) | Ryzen 5 5600G (est.) |
|---|---|---|---|---|
| Home Assistant intent parse | 300 | 30 | ~8 s | ~4 s |
| Chat turn with short history | 800 | 250 | ~33 s | ~21 s |
| Summarize a 3,000-token log | 3,000 | 300 | ~83 s | ~41 s |
| RAG answer with 5 chunks | 4,000 | 400 | ~110 s | ~55 s |
These use the midpoints (48 and 130 tok/s prefill, 15 and 17 tok/s generation) and ignore the slowdown as context grows, so real long-prompt times run somewhat higher. The pattern holds, though: the longer your prompts, the more the 5600G is worth.
How far does context length push a CPU-only box?
Llama 3.2 3B has 28 layers and 8 key/value heads of dimension 128 (config.json). At fp16 its KV cache costs 2 × 28 × 8 × 128 × 2 bytes, about 112 KiB per token. Each generated token has to read that cache as well as the weights, so decode slows as the conversation grows:
| Context filled | KV cache (fp16) | Bytes read per token | Est. gen slowdown vs empty context |
|---|---|---|---|
| 4k | 0.47 GB | 2.49 GB | ~19% |
| 8k | 0.94 GB | 2.96 GB | ~32% |
| 16k | 1.88 GB | 3.90 GB | ~48% |
| 32k | 3.76 GB | 5.78 GB | ~65% |
Both CPUs slow by the same fraction here, because it's bytes per token on the same kind of bus. Prefill decides whether a long context is practical at all. A full 16k-token prompt takes roughly six minutes on a 2600 at ~45 tok/s, and roughly two minutes on a 5600G at ~130 tok/s. Prefill also slows with depth: a Zen 3 5700G fell from 84.9 tok/s at 4k to 69.1 at 32k on CPU (toolkit README). Quantizing the KV cache to q8_0 (-ctk q8_0 -ctv q8_0) roughly halves the cache and claws back part of the decode penalty.
In practice the 2600 is usable to about 8k of context, and the 5600G to about 16k. Beyond that, a CPU-only box works for overnight batch jobs but not for anything interactive.
Does the 5600G's Vega iGPU help at all?
Barely, and not for decode. The iGPU sits on the same DDR4 bus as the CPU cores, so it inherits the same generation ceiling. The most thorough public data is a September 2026 llama-bench set for a Ryzen 7 5700G, the same Cezanne die with one more graphics core (toolkit README). On a 7.5B dense model at 4k context:
- Vulkan: 179.4 tok/s prefill, 17.3 tok/s generation.
- CPU: 84.9 tok/s prefill, 13.8 tok/s generation.
That machine ran DDR4-4200 overclocked and the iGPU at 2,400 MHz. The author notes that stock 3,200–3,600 MT/s memory "will decode proportionally slower". On a stock 5600G, the realistic gain is roughly 2× on prefill and little to nothing on decode. You also pay in setup time: a Vulkan build, BIOS UMA settings, and on ROCm the GTT kernel parameters that the same README warns can hard-freeze the machine when misconfigured.
The honest recommendation: try the iGPU if your workload is prefill-heavy (RAG, long documents) and you like tinkering. Otherwise run on the CPU threads and use the iGPU for what it's good at, driving the monitor so you don't need a graphics card at all. Our 5600G iGPU inference guide covers the setup.
Perf-per-dollar and perf-per-watt
Prices are the Amazon listings in our catalog on September 18, 2026. Prices change often, so treat them as a snapshot. Used prices on eBay run much lower, about $50 for a 2600 and $136 for a 5600G per the eBay sample in our 2600-vs-3900X piece.
| CPU | Listed price (new) | Est. gen tok/s | Est. prefill tok/s | Gen tok/s per $100 (used) | Gen tok/s per TDP watt |
|---|---|---|---|---|---|
| Ryzen 5 2600 | $265 (3rd-party) | ~15 | ~48 | ~30 (at ~$50) | 0.23 (65 W) |
| Ryzen 5 5600G | $199.99 | ~17 | ~130 | ~12.5 (at ~$136) | 0.26 (65 W) |
The TDP-based per-watt column flatters the 2600. A 2600 box can't run headless without a graphics card, and that card draws power around the clock. On an always-on host, idle draw costs money whether or not the model is working. At the US average residential rate of 18.34¢/kWh for June 2026 (EIA, Table 5.6.A), every 10 W of continuous draw costs about $16 a year (87.6 kWh). An old graphics card idling at 10–15 W in a 2600 box can cost more over two years than the 5600G does used. Measure your own box at the wall with a plug-in meter before deciding. Rated TDP says nothing about idle.
When does a $250 GPU make both CPUs irrelevant?
As soon as a person is waiting on the answer. Jeff Geerling's RTX 3060 benchmark ran Llama 3.2 3B Q4_K_M at:
- Prefill: 4,006.44 tok/s (pp512).
- Generation: 122.85 tok/s (tg128).
- Peak system power at the wall: 214 W.
Against the 5600G estimates, that's about 30× the prefill and 7× the generation. A 4,000-token RAG prompt starts answering in about a second instead of 31 seconds, and the card's 12 GB fits 8B–14B models that no AM4 CPU runs pleasantly. The MSI Gaming GeForce RTX 3060 12GB is the usual pick. Buy the 12 GB version specifically, not the later 8 GB card with the same name.
The CPU-only path still wins in three cases:
- The box already exists and is idle most of the day.
- The jobs are batch jobs that nobody watches.
- The GPU is busy with something else, and the CPU model is the fallback lane.
What to buy if you're building the box today
If you're building from parts in 2026, start with the AMD Ryzen 5 5600G 6-Core 12-Thread Desktop Processor with Radeon Graphics. It's the only chip in this group that boots without a graphics card, it leaves the x16 slot free for a GPU later, and it has the faster prefill of the two. Pair it with 2 × 8 GB or 2 × 16 GB of DDR4-3200. Dual channel is the whole game for decode.
If you already own the AMD Ryzen 5 2600 Processor with Wraith Stealth Cooler, keep it and spend on RAM first. A matched DDR4-3200 kit (outside the 2600's rated spec, but most B450/X470 boards run it) closes most of the generation gap.
If prompts are long and the box also does other threaded work, the AMD Ryzen 7 5800X 8-Core 16-Thread Processor adds two more Zen 3 cores and a 32 MB L3 in one CCX (AMD). That's an estimated 30% more prefill than the 5600G, with the same decode, at 105 W TDP. It has no iGPU.
The AMD Ryzen 9 3900X 12-Core 24-Thread Processor is the used-market wildcard. It measured 69.43 tok/s prefill on Mistral 7B Q6_K (llamafile #450), a bit ahead of the six-core 5600X, and has twelve cores for everything else on the box. It also has no iGPU, and Wikipedia's Ryzen list notes it "may consume over 145 W under load".
Before any AM4 upgrade, check that your board's BIOS supports Zen 3. Many B450 boards need an update, and you can flash it with the 2600 still installed.
Verdict matrix
- Get (keep) the Ryzen 5 2600 if you already own it with a GPU installed, your prompts are short (intents, classification, one-line questions), and the box runs mostly overnight batch jobs. Expect ~13–17 tok/s generation and put the money into a DDR4-3200 kit.
- Get the Ryzen 5 5600G if you're building or rebuilding a headless always-on host, you want no graphics card drawing idle power, or your prompts carry 1,000+ tokens of context. Expect ~15–19 tok/s and about 3× faster time to first token.
- Get the Ryzen 7 5800X if prompt processing dominates (RAG, code context, long documents), the box already has a GPU for display, and you'll accept 105 W.
- Get the Ryzen 9 3900X if you can find one used for less than a 5800X and the box also runs compile jobs, transcodes or VMs that use twelve cores.
Live price comparison
For side-by-side current pricing and buy buttons, see the Ryzen 5 2600 vs Ryzen 5 5600G head-to-head. The step-up pair is on the Ryzen 7 5800X vs Ryzen 9 3900X page. Collected public benchmarks per chip are on the Ryzen 5 2600, Ryzen 5 5600G, Ryzen 7 5800X and Ryzen 9 3900X benchmark pages. Retailer prices were current at the last refresh and may vary, so confirm at checkout.
Bottom line
For Llama 3.2 3B on a CPU, buy the Ryzen 5 5600G. It doesn't make the model talk much faster: both chips sit on the same dual-channel DDR4 wall at roughly 13–19 tok/s. What it does is answer long prompts about three times sooner, and it lets the box run without a graphics card, which is where an always-on host's electricity goes. If a 2600 is already in the socket and your prompts are short, keep it and buy a DDR4-3200 kit instead. If a person is waiting on every answer, skip the CPU question entirely and put a 12 GB RTX 3060 in the slot.
Related guides
- Ryzen 5 2600 vs Ryzen 9 3900X for CPU-only Qwen3 8B
- Ryzen 9 3900X vs Ryzen 5 5600G for CPU-only local LLM inference
- Dual-channel RAM for local LLM inference
- How many CPU cores does a local-LLM rig need?
- Llama 3.2 3B on a Raspberry Pi 4 8GB vs an RTX 3060 12GB
Citations and sources
- llamafile discussion #450, "Lots of CPU benchmarks": Ryzen 5 5600X, Ryzen 5 3550H and Ryzen 9 3900X rows (accessed 2026-09-18)
- Johannes Gäßler, llama.cpp performance testing: thread saturation on dual-channel DDR4 (accessed 2026-09-18)
- AMD Ryzen 5 2600 specifications (accessed 2026-09-18)
- AMD Ryzen 5 5600G specifications (accessed 2026-09-18)
- AMD Ryzen 7 5800X specifications (accessed 2026-09-18)
- Meta Llama 3.2 3B Instruct model card (accessed 2026-09-18)
- Llama 3.2 3B Instruct config.json: layer and KV-head counts (accessed 2026-09-18)
- bartowski/Llama-3.2-3B-Instruct-GGUF and unsloth/Llama-3.2-3B-Instruct-GGUF: quant file sizes (accessed 2026-09-18)
- Jeff Geerling, ai-benchmarks issue #40: RTX 3060 12GB (accessed 2026-09-18)
- amd-vega-rocm-vulkan-llm-toolkit README: Ryzen 7 5700G CPU vs Vulkan vs ROCm (accessed 2026-09-18)
- Wikipedia: DDR4 SDRAM (accessed 2026-09-18)
- Wikipedia: Zen 2 (accessed 2026-09-18)
- Wikipedia: List of AMD Ryzen processors (accessed 2026-09-18)
- U.S. EIA, Electric Power Monthly Table 5.6.A (accessed 2026-09-18)
This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.
