Homelab & Platform

Threadripper vs EPYC for a Multi-GPU AI Workstation: Lanes, Memory, and Money

Most “best CPU for AI” content compares single-GPU gaming rigs, where the CPU barely matters for inference. That question disappears once you’re running 2-4 GPUs: the GPU is no longer the binding constraint. PCIe lane count, memory channel count, and — the one nobody puts in the spec sheet — your electrical panel become the things that decide whether the build actually works. This is the platform-layer companion to the dual RTX 3090 build guide; that page assumes the platform can feed two GPUs properly. This page is about what happens when you push past that, and about the two honest platform paths — new Threadripper (PRO or otherwise) and used-or-new EPYC — that get you there.

Why does the CPU platform matter once you add GPUs?

Because a motherboard only has so many PCIe lanes to hand out, and every GPU, NVMe drive, and 10GbE NIC in the box is drawing from the same pool. Add a second GPU to a mainstream desktop board (Intel or AMD, non-workstation) and the two cards typically split down to x8/x8 because the CPU only exposes ~24-28 usable lanes total. Add a third or fourth GPU and there often isn’t a physical slot left running at more than x4, if there’s a slot at all. Inference itself doesn’t need x16 per card — more on that below — but slot starvation, missing NVMe lanes, and boards that physically can’t fit four double-width cards are the real failure mode. That’s the lane math this article works through.

Threadripper PRO vs non-PRO Threadripper vs EPYC: what do the spec sheets actually say?

Here are the platform numbers as published by AMD, not community guesses. Verify current SKU-by-SKU details before buying — AMD revises lane and memory specs across generations.

PlatformPCIe lanes (usable)Memory channelsSocket / chipsetNew or used market
Threadripper 7000 (non-PRO, HEDT)48 × PCIe 5.0 + 24 × PCIe 4.0 (4 more reserved for chipset link)4-channel DDR5 (4 DIMM slots)sTR5 / TRX50New
Threadripper PRO 7000 WX-series128 × PCIe 5.0 (148 total on the platform)8-channel DDR5sTR5 / WRX90New
EPYC 9004 (Genoa), single-socketUp to 128 × PCIe 5.012-channel DDR5SP5New (and increasingly used as fleets refresh)
EPYC 7002/7003 (Rome/Milan), single-socketUp to 128 × PCIe 4.0 (Rome: PCIe 4.0; older Naples-era boards may be PCIe 3.0)8-channel DDR4SP3Used (decommissioned enterprise stock)

The gap that catches people is the non-PRO Threadripper row. It carries the Threadripper name and a workstation price tag, but its lane budget (48 usable) and memory channels (4) are a fraction of the PRO variant’s (128 lanes, 8 channels). If your plan is “Threadripper for a multi-GPU box,” confirm you mean the PRO WX-series, not the cheaper HEDT part — the non-PRO board simply cannot do what people assume “Threadripper” can do at 3-4 GPUs.

What’s the lane math for 2, 3, and 4 GPUs?

Each full-bandwidth consumer GPU (RTX 3090, RTX 4090, or a used RTX A6000) wants an x16 electrical slot to run at full PCIe bandwidth, though inference workloads tolerate less — see the caveat in the next section. Add up what a real build needs before you add NVMe and networking:

  • 2 GPUs at x16/x16 = 32 lanes. This fits inside every platform in the table above, including non-PRO Threadripper’s 48-lane budget, with lanes left over for one NVMe drive.
  • 3 GPUs at x16/x16/x16 = 48 lanes. This is exactly non-PRO Threadripper’s entire PCIe 5.0 lane budget — meaning zero lanes left for NVMe or a NIC unless you drop to the PCIe 4.0 pool or step down GPU slots to x8. It’s the point where a workstation-tier board (WRX90) or an EPYC board starts to matter, not just be nice to have.
  • 4 GPUs at x16 × 4 = 64 lanes, plus NVMe (typically 4 lanes per drive) and a 10GbE NIC (4-8 lanes) pushes the real requirement past 70-80 lanes. Only Threadripper PRO WX-series or EPYC clears that with headroom. Below that lane budget, four-GPU boards commonly run each slot at x8, which is the standard, sane compromise for four-GPU inference builds — not a defect, a design choice.

For sizing the rest of the box around whichever lane budget you land on, the build planner walks through PSU and case fit alongside the CPU/board choice.

Do multi-GPU LLM builds actually need full x16 per card?

For single-stream inference — the workload most of this site is written for — no, not urgently. llama.cpp and Ollama-style inference is dominated by reading model weights out of VRAM, not by GPU-to-GPU PCIe traffic mid-generation; running each card at x8 Gen4/Gen5 costs you little to nothing in steady-state tok/s compared to x16, per community build threads (r/LocalLLaMA, r/homelab, 2024-2025 — not independently verified by LocalRig). Where lane bandwidth actually shows up is model load time (pulling weights from disk/RAM into VRAM), any tensor-parallel or pipeline-parallel serving setup that shuttles activations between cards every layer, and fine-tuning or training runs that use gradient/optimizer-state communication across GPUs. If you’re strictly doing single-user chat inference across 2-4 GPUs for capacity (see the dual 3090 build guide on why multi-GPU buys VRAM capacity, not linear speed), x8 per slot on a well-built board is a defensible, money-saving choice. If you expect to train, fine-tune, or serve multiple concurrent users with parallelism, budget for the wider lane platform.

Will a 2kW+ multi-GPU box trip your breaker?

Yes, on a standard US 15A circuit, this is a real and common failure — and it’s the risk that gets skipped in every “just buy a bigger PSU” build guide. Four RTX 3090/4090-class GPUs at ~350-450W each is 1,400-1,800W on GPUs alone, before the CPU, motherboard, drives, and fans. A 15A/120V circuit is rated for 1,800W total, and NEC guidance treats sustained loads above 80% (1,440W) as the line you shouldn’t cross for anything running for hours — exactly what a long inference or fine-tuning session does. Two things commonly go wrong: the breaker trips mid-run and corrupts whatever was loading, or the circuit is shared with other outlets in the room (say, a monitor and a space heater) that push it over the edge without warning.

The fixes, in order of practicality:

  • Get a dedicated 20A circuit run to the outlet the workstation uses, ideally on its own breaker with nothing else sharing it.
  • Split the load across two PSUs on two separate circuits if a 20A run isn’t available — some multi-GPU builders wire half the GPUs to one PSU/circuit and half to another. This adds complexity (synchronized power-on, cabling) but works within existing wiring.
  • Go 240V if you’re in a position to (a garage sub-panel, a dryer-outlet-adjacent run) — doubles the wattage headroom on the same amperage.
  • Undervolt/power-limit the GPUs. Capping each card 15-20% below its stock power limit often costs a few percent of tok/s and buys real headroom against tripping a circuit — a good trade for inference, where you’re memory-bandwidth-bound anyway.

Whatever you choose, size the PSU and confirm the math with the PSU sizing guide for multi-GPU rigs and the PSU calculator before you order anything — this is not a corner to cut by “estimating.”

Does NUMA matter for multi-GPU inference?

It can, mainly on dual-socket EPYC, and it’s worth understanding before you buy a 2P board expecting free scaling. Multi-socket EPYC systems present two NUMA (non-uniform memory access) domains — one CPU die’s memory is “local” and fast, the other socket’s memory is “remote” and slower to reach. If a GPU is attached to PCIe lanes on socket 0 but the software thread feeding it is scheduled on socket 1, or the model’s weights land in the wrong node’s RAM, you pay a real latency and bandwidth tax. Single-socket EPYC and any Threadripper/Threadripper PRO system avoid this specific problem because they’re a single NUMA node by default (Threadripper’s chiplets are unified under one memory controller for OS-visible purposes). The practical guidance: on single-socket builds, don’t worry about NUMA. On dual-socket EPYC, pin processes to the CPU/GPU pairing on the same socket (numactl, or your serving framework’s NUMA-aware settings) or you’ll leave real throughput on the table for no reason.

New Threadripper PRO or used EPYC: which is the better value?

This is really a warranty-versus-lanes-per-dollar decision, and neither answer is wrong — they’re right for different risk tolerances.

New Threadripper PRO costs more per lane and per memory channel, but you get a manufacturer warranty, a desktop-friendly chassis and noise profile, current PCIe 5.0 generation, and a platform AMD is still actively selling and supporting. If this box is a daily-driver workstation that also does other things (CAD, video, dev work) and downtime is expensive, the warranty and desktop ergonomics are worth the premium.

Used EPYC — decommissioned Rome (7002) or Milan (7003) server CPUs and SP3 motherboards flowing onto eBay as data centers refresh to Genoa — is the value path, and it’s a real crossover point for readers coming from both the budget-build side and the used-GPU side of this site. You can land 8-channel DDR4 memory bandwidth and up to 128 PCIe 4.0 lanes for a fraction of new-platform pricing (community-cited range, r/homelab/r/LocalLLaMA build threads, not independently verified by LocalRig). The honest costs: zero manufacturer warranty (you’re buying “tested, pulled from service”), loud rackmount-style cooling that most home offices won’t tolerate, PCIe 4.0 rather than 5.0 (rarely the bottleneck for inference, per the section above), and — the risk named up front — buying into a platform that may be near the end of its BIOS/firmware and vendor support runway. Rome-era boards especially are aging out of active updates; confirm the board still gets BIOS support for the CPU stepping and RAM kit you’re pairing it with before bidding.

Two parts lists: new-platform and used-value paths

Names below are category picks, not exact SKUs — verify pricing and availability before ordering.

Path 1 — new Threadripper PRO, 4-GPU capacity, full warranty

Path 2 — used EPYC, value-per-lane, accept the tradeoffs

Bottom line

If you’ve read this far because “Threadripper vs EPYC” came up in a build plan, the real decision tree is: count your GPUs, add NVMe and networking lanes, and see which platform’s lane budget actually covers it — then decide whether you’re paying for a warranty (Threadripper PRO) or buying lanes and memory bandwidth at a discount with used hardware and its risks (EPYC). Non-PRO Threadripper is worth ruling out early for anything past two GPUs; its 48-lane, 4-channel budget looks like a workstation part but behaves like a desktop part once you’re past two cards. And whatever platform you land on, size the electrical circuit before you size the PSU — a 2kW+ box that trips a 15A breaker mid-run is a more common failure than a bad GPU.

Frequently Asked Questions

Threadripper vs EPYC for an AI workstation: which should I buy?

Buy new Threadripper PRO if you want a single-owner warranty, desktop-friendly power and noise, and enough PCIe lanes for 2-4 GPUs without a lane-starved board. Buy used EPYC if the budget is the constraint and you can accept server-grade noise, airflow, and zero manufacturer warranty in exchange for far more lanes and memory bandwidth per dollar. Non-PRO Threadripper is the trap in the middle: desktop pricing, server-adjacent expectations, and only 48 PCIe lanes to split across everything.

What is the best motherboard for 4x GPU inference?

For four full-bandwidth GPUs you want a platform with well over 64 PCIe lanes so NVMe, networking, and slot spacing don't force you to starve a GPU down to x4. That means a WRX90 (Threadripper PRO) or SP5/SP3 (EPYC) board, not a consumer or non-PRO HEDT board. Four RTX 3090/4090-class cards run x16 electrically only on these wider platforms; on a 48-lane board you're choosing between three full-width GPUs or four running at x8.

Do I need 128 PCIe lanes for a 2-4 GPU LLM inference rig?

Not strictly — llama.cpp-style single-stream inference is memory-bandwidth-bound, not PCIe-bound, so x8 Gen4/Gen5 per GPU is usually fine for inference once weights are loaded. Where lanes matter is fitting 3-4 full GPUs plus NVMe and a NIC without any of them dropping to x4, and in load-time and any tensor-parallel or training work that does lean on interconnect bandwidth.

Can a 2kW+ multi-GPU workstation run on a normal home outlet?

Often not on a single US 15A circuit. A 15A/120V circuit is rated for 1,800W and NEC guidance treats 1,440W (80%) as the safe continuous draw — a 4x 350W-GPU box plus CPU and overhead can hit 1,800-2,400W under load, which trips the breaker or shares the circuit with nothing else in the room. Plan for a dedicated 20A circuit, two circuits split across PSUs, or a 240V run before you finalize the build.

Is a used EPYC server a good base for a local LLM inference workstation?

It can be the best dollar-per-lane and dollar-per-memory-channel option on the market, per r/homelab and r/LocalLLaMA build threads (not independently verified by LocalRig), but go in eyes open: no warranty, loud server-class cooling, older PCIe generations on first-gen Rome/Milan boards, and a real risk of buying near the end of that platform's BIOS and driver support runway.

Sources

  • AMD Ryzen Threadripper PRO 7000 WX-Series product specifications: amd.com (2023, 128 usable PCIe 5.0 lanes, 8-channel DDR5)
  • AMD Ryzen Threadripper 7000 series (non-PRO/HEDT) product specifications: amd.com (2023, 48 PCIe 5.0 + 24 PCIe 4.0 lanes, 4-channel DDR5)
  • AMD EPYC 9004 Series (Genoa) data sheet and architecture overview: amd.com (up to 128 PCIe 5.0 lanes single-socket, 12-channel DDR5)
  • r/LocalLLaMA and r/homelab community build threads on multi-GPU inference rigs and used EPYC/SP3 server boards (2024-2025), not independently verified by LocalRig
  • LocalRig first-party benchmark: base Apple M4, 16 GB — 18.4 tok/s (llama.cpp b9820) and 19.5 tok/s (Ollama 0.30.11), Llama 3.1 8B Q4_K_M, 2026-06-27