Multi-GPU · DIY build
4x RTX 3090 (used) on EPYC 7003, open frame
The classic 96 GB home rig: four used 3090s on risers around a single-socket EPYC board with a full x16 link for every card. It runs 70B dense models at 8-bit or ~120B MoE models in VRAM.
Memory for models
VRAM across all cards
Memory bandwidth
per card; 4 cards take turns on each token
Parts
GPU, motherboard, ram, risers, case and cooling prices not included
gpt-oss-20b, 4-bit
no measurement on this hardware yet
Parts
| Part | Qty | Each |
|---|---|---|
| GPUNVIDIA GeForce RTX 3090 (used) | 4 | not priced |
| CPUAMD EPYC 7313P (16-core, 155 W, SP3) | 1 | ~$913 |
| MotherboardASRock Rack ROMED8-2T (7x PCIe 4.0 x16, 8 DDR4 DIMM slots) | 1 | not priced |
| RAM8x 32GB DDR4-3200 ECC RDIMM | 8 | not priced |
| PSUCorsair HX1500i (1500 W at 115-240 V, 1200 W at 100-115 V) | 2 | ~$390 |
| RisersPCIe 4.0 x16 riser cables | 4 | not priced |
| CaseOpen-air mining/test frame for 4 GPUs | 1 | not priced |
| CoolingSP3 tower cooler | 1 | not priced |
| StorageCorsair MP600 CORE XT 2TB PCIe 4.0 NVMe | 1 | ~$485 |
| Priced parts only | $2,178GPU, motherboard, ram, risers, case and cooling prices not included | |
New parts are priced at the maker’s own store or list price. Used cards have no price here yet, and a total with a missing GPU would understate the build, so none is shown.
What it runs at 4-bit
Every model in the catalog at its 4-bit file with 8,192 tokens of context. 29 of 41 fit. Speeds are the median of measured runs on the same GPUs where any exist; otherwise an estimate from memory bandwidth. Try other quants and context lengths.
| Model | Needs | Fit | Generation speed |
|---|---|---|---|
| Kimi K32.8T, 104B active · UD-Q4_K_XL | 1406.8 GBcontext memory estimated | Does not fit | |
| DeepSeek V4 Pro1.6T, 49B active · Q4_K_M | 890.5 GBcontext memory not counted | Does not fit | |
| Kimi K2.61T, 32B active · UD-Q4_K_XL | 545.7 GBcontext memory estimated | Does not fit | |
| DeepSeek V4.1 Flash552B, 16B active · Q4 (DwarfStar) | 484.5 GB | Does not fit | |
| GLM-5.3753.3B · UD-Q4_K_XL | 437.4 GBcontext memory estimated | Does not fit | |
| DeepSeek V3.2671B, 37B active · Q4_K_M | 379.6 GBcontext memory estimated | Does not fit | |
| MiniMax M3428B, 23B active · Q4_K_M | 244.8 GBcontext memory not counted | Does not fit | |
| Qwen3.5 397B-A17B397B, 17B active · Q4_K_M | 229.1 GBcontext memory estimated | Does not fit | |
| GLM-5.3 Flash320B, 18B active · UD-Q4_K_XL | 187.6 GBcontext memory estimated | Does not fit | |
| Hy3295B, 21B active · Q4_K_M | 173.6 GB | Does not fit | |
| MiniMax M2.7228.7B · Q4_K_M | 132.7 GB | Does not fit | |
| Qwen3.8 Flash-Next125B, 6B active · Q4_K_M | 113.1 GBcontext memory estimated | Does not fit | |
| Nemotron 3 Super 120B-A12B120B, 12B active · Q4_K_M | 82.6 GBcontext memory estimated | Fits | ~27–39 tok/sestimate |
| Qwen3.5 122B-A10B122B, 10B active · Q4_K_M | 73.0 GBcontext memory estimated | Fits | ~37–54 tok/sestimate |
| Mistral Medium 3.5 128B128B · Q4_K_M | 74.0 GB | Fits | ~6.1–9.6 tok/sestimate |
| GLM-4.5-Air106B, 12B active · Q4_K_M | 70.9 GB | Fits | ~28–41 tok/sestimate |
| Mistral Small 4 119B (2603)119B, 6.5B active · Q4_K_M | 69.3 GBcontext memory estimated | Fits | ~59–86 tok/sestimate |
| Llama 4 Scout 17B-16E Instruct109B, 17B active · Q4_K_M | 62.4 GBcontext memory not counted | Fits | ~23–33 tok/sestimate |
| gpt-oss-120b117B, 5.1B active · MXFP4 (native) | 60.2 GBcontext memory estimated | Fits | ~85–124 tok/sestimate |
| Qwen3 Coder Next80B, 3B active · Q4_K_M | 46.9 GBcontext memory estimated | Fits | ~128–187 tok/sestimate |
| Llama 3.3 70B Instruct70B · Q4_K_M | 43.6 GB | Fits | ~11–17 tok/sestimate |
| Nemotron 3.5 Lightning 30B-A3B30B, 3B active · Q4_K_M | 25.3 GBcontext memory estimated | Fits | ~91–133 tok/sestimate |
| Qwen3.6 35B-A3B35B, 3B active · Q4_K_M | 22.4 GBcontext memory estimated | Fits | ~122–178 tok/sestimate |
| Ornith 1.5 35B-A3B35B, 3B active · Q4_K_M | 21.9 GBcontext memory estimated | Fits | ~125–183 tok/sestimate |
| Qwen3 Coder 30B-A3B Instruct30.5B, 3.3B active · Q4_K_M | 19.5 GB | Fits | ~116–169 tok/sestimate |
| Gemma 4 31B IT30.7B · Q4_K_M | 18.9 GBcontext memory estimated | Fits | ~25–39 tok/sestimate |
| Granite 4.2 30B29.3B · Q4_K_M | 20.3 GB | Fits | ~25–40 tok/sestimate |
| Qwen3.8 27B27B · Q4_K_M | 18.2 GBcontext memory estimated | Fits | ~26–41 tok/sestimate |
| Gemma 4 26B-A4B IT25.2B, 3.8B active · Q4_K_M | 17.4 GBcontext memory estimated | Fits | ~91–132 tok/sestimate |
| Qwen3.6 27B27B · Q4_K_M | 17.7 GBcontext memory estimated | Fits | ~27–43 tok/sestimate |
| Devstral Small 2 24B (2512)24B · Q4_K_M | 16.1 GB | Fits | ~32–50 tok/sestimate |
| gpt-oss-20b21B, 3.6B active · MXFP4 (native) | 12.5 GBcontext memory estimated | Fits | ~117–171 tok/sestimate |
| Phi-414.7B · Q4_K_M | 11.3 GB | Fits | ~52–81 tok/sestimate |
| Ministral 3 14B Reasoning (2512)13.9B · Q4_K_M | 10.4 GB | Fits | ~56–87 tok/sestimate |
| Gemma 4 12B IT11.95B · Q4_K_M | 8.2 GBcontext memory estimated | Fits | ~64–101 tok/sestimate |
| Qwen3.5 9B9B · Q4_K_M | 7.0 GBcontext memory estimated | Fits | ~81–127 tok/sestimate |
| Granite 4.2 8B8.8B · Q4_K_M | 7.9 GB | Fits | ~83–130 tok/sestimate |
| Gemma 4 E4B IT8B · Q4_K_M | 6.5 GBcontext memory not counted | Fits | ~151–237 tok/sestimate |
| Qwen3 8B8.2B · Q4_K_M | 7.3 GB | Fits | ~91–143 tok/sestimate |
| Llama 3.1 8B Instruct8B · Q4_K_M | 7.1 GB | Fits | ~93–146 tok/sestimate |
| Qwen3.5 4B4B · Q4_K_M | 4.3 GBcontext memory estimated | Fits | ~167–263 tok/sestimate |
Measured speeds
Nobody has published a run on this GPU combination with a stated model, quant and backend that we could find. The speeds above are estimates.
Cards working in parallel
Tensor parallel splits every layer across the cards so they read their share of the weights at the same time, instead of taking turns. It can beat one card’s bandwidth limit, needs fast links between cards, and is kept out of the medians above.
| Model | Quant | Backend | Generation | Prompt | Context | Measured on | Source |
|---|---|---|---|---|---|---|---|
| Qwen3.6 35B-A3B | Q5_K - Medium | llama.cpp b10809 CUDA | 156 tok/s | 4,059 tok/s512-token prompt | 0 | 4× RTX 3090 | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q5_K - Medium | llama.cpp b10809 CUDA | 77 tok/s | 1,716 tok/s512-token prompt | 0 | 4× RTX 3090 | llama.cpp benchmark discussion2026-09 |
Specifications
- GPUs
- 4 × NVIDIA GeForce RTX 3090
- VRAM
- 96 GB
- System RAM
- 256 GB
- RAM bandwidth
- 8 channels x 3200 MT/s x 8 bytes = 204.8 GB/s (AMD lists 204.8 GB/s per socket for the 7313P)
- Power supply
- 3000 W
- Estimated load
- 4x RTX 3090 350 W + EPYC 7313P 155 W + 100 W = 1,655 W
- Software
- CUDA, Vulkan
Before you build it
- At ~1,655 W the box exceeds one 15 A household circuit; feed the two PSUs from separate circuits or cap GPU power.
- A US 15 A / 120 V circuit is 1,800 W on paper, but the NEC 80% rule for continuous loads (3 h+) limits it to 12 A, about 1,440 W, shared with everything else on that circuit.
- Corsair rates the HX1500i at 1,500 W only on 115-240 V input; at 100-115 V it is a 1,200 W supply.
- PCIe 4.0 riser cables commonly throw receiver/lane errors; owners fix it by forcing the slot to Gen 3 or using a better riser.
- A bridge pairs only two cards, so with four 3090s NVLink's tensor-parallel gain falls to about 10%.
- The ROMED8-2T has seven full x16 PCIe 4.0 slots from one EPYC socket, so four GPUs each get x16; three-slot cards cannot sit side by side, hence risers and an open frame.
Sources
- amd.com: price of AMD EPYC 7313P (16-core, 155 W, SP3)
- corsair.com: price of Corsair HX1500i (1500 W at 115-240 V, 1200 W at 100-115 V)
- corsair.com: price of Corsair MP600 CORE XT 2TB PCIe 4.0 NVMe
- asrockrack.com: ROMED8-2T: 7x PCIe 4.0 x16, 8 DIMM slots
- ecmweb.com: gotcha source
- blog.se.com: gotcha source
- hwinfo.com: gotcha source
- runaihome.com: gotcha source
Compared with
- 4x RTX 3090 (used) on EPYC 7003, open frame vs NVIDIA DGX Spark
- 4x RTX 3090 (used) on EPYC 7003, open frame vs Apple Mac Studio (M5 Ultra, 80-core GPU)
- 4x RTX 3090 (used) on EPYC 7003, open frame vs 4x Instinct MI50 32GB (used) on EPYC 7003
- 4x RTX 3090 (used) on EPYC 7003, open frame vs 2x RTX 3090 (used)
Similar machines
- 2x RTX 3090 (used)~$3,639 + unpriced parts
- 2x RTX 5090~$4,109 + unpriced parts
- 2x Radeon RX 7900 XTX~$5,637