Multi-GPU · DIY build
2x Radeon RX 7900 XTX
AMD's cheapest new 48 GB: two 24 GB RDNA 3 cards running llama.cpp on ROCm/HIP or Vulkan. Same VRAM as 2x 3090 without CUDA.
Memory for models
VRAM across all cards
Memory bandwidth
per card; 2 cards take turns on each token
Parts
sum of parts
gpt-oss-20b, 4-bit
no measurement on this hardware yet
Parts
| Part | Qty | Each |
|---|---|---|
| GPUAMD Radeon RX 7900 XTX | 2 | ~$999 |
| CPUAMD Ryzen 9 9950X (16-core, 170 W) | 1 | ~$649 |
| MotherboardASUS ProArt X870E-CREATOR WIFI (2x PCIe 5.0 x16 slots, x16 or x8/x8) | 1 | ~$550 |
| RAMCorsair Vengeance 64GB (2x32GB) DDR5-6000 CL30 | 1 | ~$1,275 |
| PSUCorsair HX1500i (1500 W at 115-240 V, 1200 W at 100-115 V) | 1 | ~$390 |
| CaseCorsair 7000D AIRFLOW full tower (450 mm GPU clearance, 8 slots) | 1 | ~$290 |
| StorageCorsair MP600 CORE XT 2TB PCIe 4.0 NVMe | 1 | ~$485 |
| Total | $5,637 | |
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. 21 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 | Does not fit | |
| Qwen3.5 122B-A10B122B, 10B active · Q4_K_M | 73.0 GBcontext memory estimated | Does not fit | |
| Mistral Medium 3.5 128B128B · Q4_K_M | 74.0 GB | Does not fit | |
| GLM-4.5-Air106B, 12B active · Q4_K_M | 70.9 GB | Does not fit | |
| Mistral Small 4 119B (2603)119B, 6.5B active · Q4_K_M | 69.3 GBcontext memory estimated | Does not fit | |
| Llama 4 Scout 17B-16E Instruct109B, 17B active · Q4_K_M | 62.4 GBcontext memory not counted | Does not fit | |
| gpt-oss-120b117B, 5.1B active · MXFP4 (native) | 60.2 GBcontext memory estimated | Does not fit | |
| Qwen3 Coder Next80B, 3B active · Q4_K_M | 46.9 GBcontext memory estimated | Does not fit | |
| 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 | ~94–137 tok/sestimate |
| Qwen3.6 35B-A3B35B, 3B active · Q4_K_M | 22.4 GBcontext memory estimated | Fits | ~125–183 tok/sestimate |
| Ornith 1.5 35B-A3B35B, 3B active · Q4_K_M | 21.9 GBcontext memory estimated | Fits | ~128–187 tok/sestimate |
| Qwen3 Coder 30B-A3B Instruct30.5B, 3.3B active · Q4_K_M | 19.5 GB | Fits | ~119–174 tok/sestimate |
| Gemma 4 31B IT30.7B · Q4_K_M | 18.9 GBcontext memory estimated | Fits | ~26–40 tok/sestimate |
| Granite 4.2 30B29.3B · Q4_K_M | 20.3 GB | Fits | ~26–41 tok/sestimate |
| Qwen3.8 27B27B · Q4_K_M | 18.2 GBcontext memory estimated | Fits | ~27–42 tok/sestimate |
| Gemma 4 26B-A4B IT25.2B, 3.8B active · Q4_K_M | 17.4 GBcontext memory estimated | Fits | ~93–136 tok/sestimate |
| Qwen3.6 27B27B · Q4_K_M | 17.7 GBcontext memory estimated | Fits | ~28–44 tok/sestimate |
| Devstral Small 2 24B (2512)24B · Q4_K_M | 16.1 GB | Fits | ~33–52 tok/sestimate |
| gpt-oss-20b21B, 3.6B active · MXFP4 (native) | 12.5 GBcontext memory estimated | Fits | ~120–175 tok/sestimate |
| Phi-414.7B · Q4_K_M | 11.3 GB | Fits | ~53–83 tok/sestimate |
| Ministral 3 14B Reasoning (2512)13.9B · Q4_K_M | 10.4 GB | Fits | ~57–90 tok/sestimate |
| Gemma 4 12B IT11.95B · Q4_K_M | 8.2 GBcontext memory estimated | Fits | ~66–104 tok/sestimate |
| Qwen3.5 9B9B · Q4_K_M | 7.0 GBcontext memory estimated | Fits | ~83–130 tok/sestimate |
| Granite 4.2 8B8.8B · Q4_K_M | 7.9 GB | Fits | ~85–133 tok/sestimate |
| Gemma 4 E4B IT8B · Q4_K_M | 6.5 GBcontext memory not counted | Fits | ~155–243 tok/sestimate |
| Qwen3 8B8.2B · Q4_K_M | 7.3 GB | Fits | ~94–147 tok/sestimate |
| Llama 3.1 8B Instruct8B · Q4_K_M | 7.1 GB | Fits | ~96–150 tok/sestimate |
| Qwen3.5 4B4B · Q4_K_M | 4.3 GBcontext memory estimated | Fits | ~172–270 tok/sestimate |
Measured speeds
2 published runs with one user, plain decoding and at most 4,096 tokens already in context, on 2× Radeon RX 7900 XTX.
| Model | Quant | Backend | Generation | Prompt | Context | Measured on | Source |
|---|---|---|---|---|---|---|---|
| Gemma 4 31B IT | Q8_0 | llama.cpp (build not stated) Vulkan | 24 tok/s | 852 tok/s512-token prompt | 0 | 2× Radeon RX 7900 XTX | llama.cpp benchmark discussion2026-08 |
| Gemma 4 31B IT | Q8_0 | llama.cpp (build not stated) ROCm | 23 tok/s | 921 tok/s512-token prompt | 0 | 2× Radeon RX 7900 XTX | llama.cpp benchmark discussion2026-08 |
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.8 27B | Q8_0 | llama.cpp b10998 (HIP, internal AllReduce, RCCL OFF; PR #27825) | 37 tok/s | 1,357 tok/s8,192-token prompt | 0 | this machine | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q8_0 | llama.cpp b10998 (HIP, internal AllReduce, RCCL OFF; PR #27825) | 37 tok/s | 1,446 tok/s512-token prompt | 0 | this machine | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q8_0 | llama.cpp b10998 (HIP, RCCL ON) | 36 tok/s | 1,580 tok/s512-token prompt | 0 | this machine | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q8_0 | llama.cpp b10998 (HIP, RCCL ON) | 36 tok/s | 1,479 tok/s8,192-token prompt | 0 | this machine | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q8_0 | llama.cpp b10998 (HIP, internal AllReduce, RCCL OFF; PR #27825) | 32 tok/s | 792 tok/s512-token prompt | 100,000 | this machine | llama.cpp benchmark discussion2026-09 |
| Qwen3.8 27B | Q8_0 | llama.cpp b10998 (HIP, RCCL ON) | 31 tok/s | 823 tok/s512-token prompt | 100,000 | this machine | llama.cpp benchmark discussion2026-09 |
Specifications
- GPUs
- 2 × AMD Radeon RX 7900 XTX
- VRAM
- 48 GB
- System RAM
- 64 GB
- RAM bandwidth
- 2 channels x 6000 MT/s x 8 bytes = 96.0 GB/s (dual-channel AM5)
- Power supply
- 1500 W
- Estimated load
- 2x RX 7900 XTX 355 W + Ryzen 9 9950X 170 W + 100 W = 980 W
- Software
- ROCm, Vulkan
Before you build it
- ROCm supports the Radeon RX cards (7900 XTX gfx1100, 9070 XT gfx1201) only on Ubuntu; Radeon PRO and Instinct cards cover more distros.
- On the ProArt X870E-CREATOR both CPU-attached slots share 16 lanes: x16 with one card, x8/x8 with two.
- Reference 7900 XTX is 2.5 slots and 287 mm, so two need slots three positions apart plus airflow between them.
- 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.
- DDR5 prices are at shortage highs: Corsair lists a 64 GB (2x32) DDR5-6000 kit at $1,274.99, so RAM can cost more than a used GPU.
Sources
- amd.com: price of AMD Radeon RX 7900 XTX
- shop-us-en.amd.com: price of AMD Ryzen 9 9950X (16-core, 170 W)
- eshop.asus.com: price of ASUS ProArt X870E-CREATOR WIFI (2x PCIe 5.0 x16 slots, x16 or x8/x8)
- corsair.com: price of Corsair Vengeance 64GB (2x32GB) DDR5-6000 CL30
- corsair.com: price of Corsair HX1500i (1500 W at 115-240 V, 1200 W at 100-115 V)
- corsair.com: price of Corsair 7000D AIRFLOW full tower (450 mm GPU clearance, 8 slots)
- corsair.com: price of Corsair MP600 CORE XT 2TB PCIe 4.0 NVMe
- amd.com: 355 W, 287 mm, 2.5 slots, 24 GB
- rocm.docs.amd.com: gotcha source
- asus.com: gotcha source
Compared with
Similar machines
- 2x Intel Arc Pro B60~$4,367
- 2x RTX 3090 (used)~$3,639 + unpriced parts
- 4x RTX 3090 (used) on EPYC 7003, open frame~$2,178 + unpriced parts