gpt-oss 120B at Home: RTX 3060 12GB Offload vs Ryzen 7 5800X CPU-Only
A mixture-of-experts model reads only 5.1B of its 117B parameters per token — which is why a 12GB card and a big RAM kit can run it at all.
By Mike Perry, Founder & Editor-in-Chief · Published 2026-09-10 · Updated 2026-10-14 · 15 min read
gpt-oss 120B needs ~64GB of memory. Inferred from published proxies, an RTX 3060 12GB offload build should beat a CPU-only Ryzen 7 5800X, mostly on prefill.
Part of the RTX 3060 12GB local-LLM guide → Which models fit in 12 GB, each with its cited tok/s, and where two cards or RAM offload take over.
Check another model on the RTX 3060 12GB:Will Qwen3 14B run on the RTX 3060 12GB? →Runs, 31.2 tok/s median of 3 cited runs. Each page swaps the card or the model and lists every source.
Quick answer
To run gpt-oss 120B locally you need roughly 64 GB of memory for the weights alone — the native MXFP4 GGUF is 63.4 GB (ggml-org — gpt-oss-120b-GGUF) — so the realistic home build is a 12 GB GPU plus 64–128 GB of system RAM. Likely verdict, inferred from the nearest published proxies: the RTX 3060 12GB offload build should be the faster of the two, mainly on long prompts. No public source reports gpt-oss 120B tok/s on an RTX 3060 or CPU-only on a Ryzen 7 5800X, so the nearest published proxy is an RTX 3080 Ti 12 GB build with 128 GB of DDR4-3600 that reports 18–22 tok/s (David Crook — gpt-oss-120b on a 12 GB card) — treat that as the ceiling for a 3060 on DDR4-3200. Both builds generate from the same dual-channel DDR4, so the GPU buys prefill: GPU-assisted builds publish 229–428 tok/s of prompt processing, while a 24-core server running CPU-only measured 108.56 tok/s (llama.cpp issue #17936). An eight-core 5800X running CPU-only has no published figure either: the bandwidth arithmetic below puts its theoretical generation ceiling near 19 tok/s, llama.cpp's CPU path runs well below such ceilings in practice, and with a third of that server's cores its prefill should trail the 108.56 tok/s proxy, so expect long waits before the first word on long prompts.
Who is running a 120B model at home, and why it is possible at all
Two years ago "120B at home" meant a rack of used datacenter cards. In 2026 it means a mid-range gaming PC with a lot of RAM, and the reason is architectural. gpt-oss-120b is a mixture-of-experts model: 116.8B total parameters, but only 5.1B are active for any given token, because a router picks the top 4 of 128 experts in each of its 36 layers (OpenAI — gpt-oss model card). OpenAI also shipped the expert weights — more than 90% of the parameter count — already quantized to MXFP4 at 4.25 bits per parameter, which is how the whole model fits on a single 80 GB GPU.
That changes the hardware math versus a dense 70B. A dense model reads every weight for every token, so it needs every weight in fast memory. A MoE model only reads the chosen experts, so the bulk of the weights can sit in slower, cheaper system RAM while the small, always-used parts — attention, the router, the embeddings — live on the GPU. llama.cpp exposes this directly with --n-cpu-moe, which keeps a chosen number of layers' expert weights on the CPU (llama.cpp — running gpt-oss guide).
The people doing this are running private document synthesis, offline evaluation against hosted models, or simply want the strongest open-weight reasoning model that fits a desktop. For them there are two realistic paths on an existing AM4 platform: add a 12 GB ZOTAC Gaming GeForce RTX 3060 Twin Edge OC 12GB and split the model, or skip the GPU and run everything on an AMD Ryzen 7 5800X with a large RAM kit. This synthesis compares the two.
Key takeaways
Quantization will not save you. Every GGUF of this model lands between 62.6 GB (Q2_K) and 65.4 GB (F16) (Unsloth — gpt-oss-120b-GGUF), because the experts are natively MXFP4.
64 GB of system RAM is the floor for the GPU build. With all experts on the CPU, a 12 GB card holds about 6 GB of weights and system RAM holds about 60 GB, per Crook's build.
RAM bandwidth sets generation speed. One RTX 4070 12 GB build went from 9.72 to 28 tok/s generation when its DDR5 was fixed from 2,000 MT/s to rated speed (carteakey — optimizing gpt-oss-120b).
The GPU wins prompt processing. GPU-assisted builds with RAM at rated speed publish 229–428 tok/s of prompt processing; a 24-core EPYC server running CPU-only measured 108.56 tok/s (llama.cpp issue #17936).
The KV cache is small. Arithmetic from the model's config puts it near 36 KB per token, about 1.2 GB at 32K context.
Step 0: which bottleneck are you actually buying around?
Before spending anything, work out which of three limits you hit first. Each one has a different fix, and buying the wrong part is how people end up with a 24 GB card that is no faster than a 12 GB one.
Symptom
Limit
What fixes it
What does not
Model will not load, or the system swaps to disk
System-RAM capacity
64 GB minimum with a GPU; 128 GB for CPU-only
A faster CPU
Loads, but generation crawls
Memory bandwidth
Faster RAM at rated speed; more memory channels
More CPU cores
Long prompts take minutes before the first word
Prompt-processing compute
A GPU holding attention layers
More RAM capacity
Out-of-memory on the GPU at load
VRAM
Raise --n-cpu-moe to move more experts to RAM
A bigger quant (they are all ~63 GB)
If you have neither 64 GB of RAM nor a way to get it, stop here and read the verdict matrix's third option.
VRAM and quantization requirements
The table below is the counterintuitive part. File sizes are from the Unsloth and ggml-org GGUF repositories; the fit judgments assume a 12 GB GPU and leave room for the operating system.
Quant
File size
vs MXFP4
Fits 12 GB VRAM + 64 GB RAM?
Fits 128 GB RAM, CPU-only?
MXFP4 (native)
63.4 GB
—
Yes, with experts offloaded
Yes
Q4_K_M
62.8 GB
−0.6 GB
Yes, with experts offloaded
Yes
Q5_K_M
62.9 GB
−0.5 GB
Yes, with experts offloaded
Yes
Q6_K
63.3 GB
−0.1 GB
Yes, with experts offloaded
Yes
Q8_0
63.4 GB
0
Yes, with experts offloaded
Yes
F16
65.4 GB
+2.0 GB
Tight
Yes
Unsloth's own guidance matches: at least 66 GB of combined VRAM and RAM, or 66 GB of system RAM, for 6+ tokens per second (Unsloth — how to run gpt-oss). Pick MXFP4 — the checkpoint is listed at 60.8 GiB in the model card, the format the model was trained in — and spend your effort on memory instead.
Spec delta: the two builds side by side
Both builds share the same AM4 host so the comparison isolates the GPU. AMD lists the Ryzen 7 5800X at 8 cores and 16 threads, 32 MB of L3, 105 W TDP, PCIe 4.0 and DDR4 up to 3,200 MT/s — and notes that a discrete graphics card is required (AMD — Ryzen 7 5800X).
Component
GPU-offload build
CPU-only build
Delta
Why it matters
GPU
RTX 3060 12 GB
None (a basic display card, or headless)
+12 GB VRAM
Holds attention, router and some experts
GPU memory bandwidth
360 GB/s
—
—
Prompt processing runs here
System RAM
64 GB DDR4-3200
128 GB DDR4-3200
−64 GB
CPU-only must hold the entire 63.4 GB file plus OS
No public source measures gpt-oss-120b tok/s on an RTX 3060 specifically, or CPU-only on a dual-channel DDR4 desktop. The table collects the closest published measurements, labelled by exactly what was measured, so you can place the two builds between them.
Configuration
System memory
Prompt processing
Generation
Source
RTX 3080 Ti 12 GB, all experts on CPU (--n-cpu-moe 36)
RTX 3060 12 GB + 64 GB DDR4. The feasibility is confirmed — a 3060 runs the Q4_K_M file with every expert on the CPU at a 131K context in the llama.cpp issue above. The closest speed analog is Crook's 12 GB Ampere card on DDR4, and because generation there is bound by system RAM rather than the GPU, treat 18–22 tok/s as the upper bound for a 3060 on slower DDR4-3200.
Ryzen 7 5800X CPU-only. No published number. The arithmetic ceiling is in the next section; the practical expectation is single-digit tok/s.
The DDR4 EPYC outlier. The Hardware Corner run at 1.61 tok/s shows what a poorly matched offload split costs — the same article's plain layer split was slower still. Configuration matters as much as parts.
Prefill vs generation: why the GPU wins one phase and not the other
Every request runs in two phases. Prefill processes the whole prompt at once; it is a big matrix-multiply job, so it is compute-bound and loves a GPU. Generation produces one token at a time and has to read the active weights from memory for each token; it is bandwidth-bound.
In the GPU build, the attention layers and the KV cache sit on the RTX 3060, so prefill runs at GPU speed — the GPU-assisted rows above with RAM at rated speed publish 229–428 tok/s. In the CPU-only build, prefill runs on eight cores. The only CPU-only measurement available, a 24-core server, managed 108.56 tok/s; an eight-core desktop has a third of those cores. Feed a 4,000-token document into the CPU-only build and the wait for the first word becomes the dominant cost.
Generation is where the GPU helps less than people expect. The experts live in system RAM in both builds, so both are gated by the same 51.2 GB/s of dual-channel DDR4. The carteakey build proves the point from the other side: tripling memory bandwidth tripled token generation, with the GPU unchanged.
Here is the ceiling arithmetic, derived from cited inputs rather than measured. The model card lists 5.13B active parameters with MXFP4 experts at 4.25 bits, so each token reads on the order of 2.7 GB of weights. Divide 51.2 GB/s by 2.7 GB and the theoretical ceiling for a dual-channel DDR4-3200 desktop is about 19 tok/s. Real systems sustain around 84% of theoretical memory bandwidth in Microway's comparison (Microway — memory bus characteristics), and llama.cpp's CPU path lands well below even that: the 12-channel EPYC above has about 460 GB/s theoretical and produced 35.75 tok/s. Scale that efficiency down to two channels and a CPU-only 5800X lands in the single digits.
How does context length change the answer?
gpt-oss-120b's KV cache is unusually small for its size. The config lists 36 layers, of which 18 use a 128-token sliding window and 18 use full attention, with 8 KV heads of dimension 64 (Hugging Face — gpt-oss-120b config.json). Only the full-attention layers grow with context, which works out to about 36 KB per token at 16-bit precision — the sliding layers add a fixed few megabytes.
Context
KV cache (approx., f16)
Fits beside ~6 GB of weights on a 12 GB card?
4K
0.15 GB
Yes, with room to move experts onto the GPU
16K
0.60 GB
Yes
32K
1.21 GB
Yes
131K (maximum)
4.83 GB
Yes, with all experts on the CPU
So on this model, long context rarely forces you back to system RAM. The practical limit is compute buffers: the RTX 3060 in the llama.cpp issue crashed at a micro-batch of 4,096 until a fix landed, while -ub 1024 -b 1024 ran normally. Keep the micro-batch modest on a 12 GB card, and spend leftover VRAM by lowering --n-cpu-moe so a few layers' experts move onto the GPU — the carteakey build packed 9.7 GB of weights onto its 12 GB card that way.
Does more system RAM beat more VRAM here?
Up to 64 GB, capacity is everything: below it the model does not load with a 12 GB card, and Crook's build notes flatly that 64 GB of system RAM is the minimum. Past that point, bandwidth matters more than size. AM4 is a two-channel platform — AMD's spec for the AMD Ryzen 9 3900X lists 2 memory channels at up to 3,200 MT/s (AMD — Ryzen 9 3900X specifications) — so no AM4 chip escapes the 51.2 GB/s ceiling at rated speed. That is why the 12-core 3900X should not generate meaningfully faster than the 8-core 5800X on this model: both drink from the same two channels.
Memory speed is the lever you do control. Tom's Hardware's review recommends DDR4-3200 as the base spec for the 5800X (Tom's Hardware — Ryzen 7 5800X review), and Phoronix's Zen 2 memory-scaling work notes AMD's own DDR4-3733 "sweet spot" recommendation (Phoronix — Ryzen 9 3900X memory scaling). Confirm in the BIOS that the kit is actually running at its rated speed — the carteakey build lost two-thirds of its generation speed to a kit stuck at 2,000 MT/s.
Choose 128 GB over 64 GB when you want the CPU-only fallback, want to keep other services running, or plan to keep more than one large model resident. Choose faster 64 GB over slower 128 GB if the GPU build is your only mode.
Storage matters because the checkpoint is not small. The Crucial BX500 1TB is rated at 540 MB/s read with 360 TB of endurance (Crucial — BX500 product flyer); at that rate the 63.4 GB file loads in about two minutes, and 1 TB holds it alongside several smaller models.
What about the CPU cooler and 24/7 thermals?
CPU-only inference pins all eight cores for as long as tokens are flowing, and the 5800X ships without a cooler. Tom's Hardware's review recommends a 280 mm AIO or an equivalent air cooler for it. The Noctua NH-U12S is the quiet-build answer rather than the maximum-headroom one: Noctua's infosheet lists a 158 mm tall single tower with a 120 mm NF-F12 fan, 22.4 dB(A) maximum noise, AM4 support and a 6-year warranty (Noctua — NH-U12S infosheet).
The trade-off favors quiet here. Token generation is memory-bound, so a few hundred megahertz of sustained boost clock lost to a smaller cooler costs very little in tok/s — while a box that runs overnight next to where people sleep benefits from a 22 dB(A) fan ceiling. In the GPU build the CPU works less hard per token, which makes the single tower an even easier call.
Performance per dollar and per watt
Start with what the GPU buys. The RTX 3060 launched at $329 and adds 170 W of board power. It buys prompt processing in the hundreds of tok/s instead of CPU-bound prefill, and it lets 64 GB of RAM do the job that CPU-only needs 128 GB for — so part of its cost comes back out of the RAM budget. Check the current street prices on the product pages linked throughout; they move weekly.
On running cost, US residential electricity averaged 18.34 ¢/kWh in June 2026 (EIA — Electric Power Monthly, Table 5.6.A). Worst case, with the GPU at its full 170 W for eight hours a day, that is about 496 kWh a year, or roughly $91. Under MoE offload the GPU rarely runs at full power, so real figures are lower — measure at the wall. Idle draw varies too much by motherboard and PSU to quote a single number; an always-on build should be checked with a plug-in power meter before you commit to 24/7.
The per-token view favors the GPU build on long prompts and roughly ties on short chat turns, because short turns are generation-dominated and both builds share the same DDR4 ceiling.
Common pitfalls
Quoting the 20B number. A widely repeated "60 tok/s on an RTX 3060 with a Ryzen 7 5700X and 32 GB of DDR4" figure is a gpt-oss-20b result (llama.cpp discussion comment); the same poster says they would need 64 GB for the 120B.
Expecting a smaller quant to fit 32 GB. Q2_K is still 62.6 GB.
RAM below rated speed. XMP/EXPO off, or an unstable kit that has fallen back, silently cuts generation speed in proportion to bandwidth.
Oversized micro-batches on 12 GB. Start at -ub 1024 and raise it only once the model loads and runs.
No display output on a CPU-only 5800X. It has no integrated graphics, so plan for a spare display card or a headless install.
Verdict matrix
Get the RTX 3060 12GB offload build if… you already have or can buy 64 GB of DDR4, your prompts are long (documents, code, retrieved context), and you want the first token in seconds rather than minutes. This is the configuration published builds have proven.
Get the Ryzen 7 5800X CPU-only build if… you already own 128 GB of DDR4 and no suitable GPU, your jobs run as overnight batches, and prompt latency does not matter. Expect single-digit tok/s generation.
Skip gpt-oss 120B entirely and run gpt-oss-20b or a 14B dense model if… you want interactive chat or coding assistance, or you have only 32 GB of RAM. A model that fits entirely in 12 GB of VRAM will feel dramatically faster on the same card.
Bottom line
Buy the ZOTAC RTX 3060 Twin Edge OC 12GB, pair it with 64 GB of DDR4-3200 running at rated speed on a Ryzen 7 5800X, and run the MXFP4 GGUF in llama.cpp with --n-cpu-moe set just high enough that the model loads — then lower it step by step until VRAM is full. That build puts prefill on the GPU, keeps generation as fast as dual-channel DDR4 allows, and leaves an upgrade path to 128 GB if you later want the CPU-only fallback or longer sessions.
Prices change frequently — the price shown on the retailer page at the time of your visit is authoritative. As an Amazon Associate, SpecPicks earns from qualifying purchases.
As an Amazon Associate, SpecPicks earns from qualifying purchases; we also earn on qualifying eBay purchases via the eBay Partner Network. Prices shown were last tracked at crawl time and may vary — check the listing for the current price.
📹 Watch a review
I had given up on AMD… until today - Ryzen 9 3900X & Ryzen 7 3700X Review — Linus Tech Tips on YouTube
Frequently asked questions
Can gpt-oss 120B really run on a single 12GB GPU?
Only in a hybrid configuration. The model's mixture-of-experts design activates roughly 5B parameters per token, so a 12GB card such as the RTX 3060 holds the attention layers and the KV cache while the bulk of the expert weights sit in system RAM. Published hybrid runs on 12GB-class cards range from roughly 10 to 28 tokens per second, set mostly by system-RAM speed, and 64GB of RAM is the practical floor.
How much system RAM do I actually need?
At the native MXFP4 checkpoint the weights land in the 60-65GB range, so 64GB of RAM works only when a GPU holds part of the model. A 128GB kit is the comfortable configuration and the only realistic one for CPU-only inference. Lower-bit quantization is not an escape hatch on this model: the Q2_K file is still about 62.6GB because the experts were trained in MXFP4.
Is the Ryzen 7 5800X fast enough for CPU-only inference?
It is fast enough to be usable for batch or overnight work, not for interactive chat. On AM4, generation speed is gated by dual-channel DDR4 bandwidth rather than core count, which is why the twelve-core Ryzen 9 3900X on the same two memory channels should not generate meaningfully faster than the eight-core 5800X. Prompt processing is where extra cores and a GPU genuinely help.
Would a second RTX 3060 fix this?
Two 12GB cards give you a 24GB pool, which still does not hold a 120B checkpoint of about 63GB, so you remain in offload territory and simply offload less. The gain is real but incremental, and it costs a second PCIe slot, roughly 170W more draw and a larger power supply. For most builders, spending that money on faster or larger system RAM moves the needle further.
When should I not run gpt-oss 120B at all?
If your workload is interactive coding assistance or chat, gpt-oss-20b or a 14B dense model that fits entirely in 12GB of VRAM will feel dramatically faster and is the better use of the same hardware. Reserve the 120B for tasks where answer quality outweighs latency: document synthesis, offline batch evaluation, or comparisons against a hosted frontier model.