The 48 GB build

Two used RTX 3090s on an AM5 board at x8/x8, sized to run a 70B model at Q4 entirely in VRAM.

Verdict

For a builder who wants a 70B model at Q4 fully in VRAM on one desktop box. Two used RTX 3090s give 48 GB, enough for Llama 3.3 70B at Q4_K_M with an 8k context, and it is the cheapest path to 48 GB because both cards are bought used. The cost is power: each card is rated at 350 W, and the one Basis build with a measured wall draw peaked at 1.04 kW, so plan on power-limiting both cards and on a circuit with nothing else heavy on it.

Model fit

Model Quantisation Context Note
Llama 3.3 70B Instruct Q4_K_M GGUF (42.52 GB file) 8k File plus about 2.7 GB of 16-bit KV cache comes to about 45.2 GB against 2 × 24 GB; arithmetic in the FAQ. 16k is borderline, with about 3.6 GB of margin left. Estimated, not measured on this build.
Qwen2.5 32B Instruct Q8_0 GGUF (34.82 GB file) 32k (the model's native maximum) File plus about 8.6 GB of 16-bit KV cache at 32k comes to about 43.4 GB. Estimated, not measured on this build.
Qwen3.6-27B (dense) AWQ Int4, vLLM tensor parallel across both cards not stated per request vLLM's KV cache pool held 61,152 tokens in total (16-bit, at 0.85 GPU memory utilisation), shared by all concurrent requests. Measured on the jonready Basis build (NVLink-bridged, x16/x8, Threadripper): 63 tok/s single-stream, 363 tok/s output at 32 concurrent requests.
Qwen3.5-35B-A3B (MoE, 3B active) GPTQ Int4, vLLM tensor parallel across both cards not stated 16-bit KV cache; pool size not stated. Measured on the jonready Basis build (NVLink-bridged, x16/x8, Threadripper): 150 tok/s single-stream, 1,083 tok/s output at 32 concurrent requests.

Parts list

Store links may earn us a commission at no cost to you. As an Amazon Associate we earn from qualifying purchases.

Qty Part Buy USBuy DEBuy UK
2 NVIDIA GeForce RTX 3090 (Founders Edition)
VRAM
24 GB
Memory bandwidth
936 GB/s
TDP
350 W
Slot width
3 slots
Length
313 mm
Power connectors
1x 12-pin
Cooler
flow-through
VRAM/W
0.069 GB/W
VRAM/slot
8.0 GB
1 ASRock X870E Taichi
Socket
AM5
Platform
AM5
Max GPUs
2
Lanes/GPU
8
x16 slots
2
Max RAM
256 GB
Form factor
E-ATX
Needs risers
No
1 AMD Ryzen 9 9950X
Socket
AM5
Cores
16
PCIe lanes
24
PCIe gen
5
Memory channels
2
TDP
170 W
1 Kingston FURY Beast 128GB (2x64GB) DDR5-5600 (KF556C36BBEK2-128)
Capacity per kit
128 GB
Modules
2
Type
DDR5 UDIMM
Speed
5,600 MT/s
ECC
No
not available
1 Samsung 990 PRO 2TB
Capacity
2,000 GB
PCIe gen
4
Seq. read
7,450 MB/s
Endurance
1,200 TBW
1 Alternate WD_BLACK SN850X 4TB
Capacity
4,000 GB
PCIe gen
4
Seq. read
7,300 MB/s
Endurance
2,400 TBW
1 Corsair HX1200i (2025, ATX 3.1)
Wattage
1,200 W
Efficiency
80+ Platinum
8-pin PCIe
5
12V-2x6
2
ATX 3.x
Yes
Length
200 mm
GPUs supported
2
1 Alternate Corsair HX1500i (2025, ATX 3.1)
Wattage
1,500 W
Efficiency
80+ Platinum
8-pin PCIe
5
12V-2x6
2
ATX 3.x
Yes
Length
200 mm
GPUs supported
3
1 Fractal Design Define 7 XL (Black Solid)
Type
case
GPUs supported
4
Max GPU length
549 mm
Riser mounts
Yes
Max board
SSI-EEB
1 Alternate Phanteks Enthoo Pro 2 Server Edition (tempered glass)
Type
case
GPUs supported
4
Max GPU length
503 mm
Riser mounts
Yes
Max board
SSI-EEB
1 Noctua NH-D15 G2
Socket
AM5
Type
tower-air
Height
168 mm
Fan size
140 mm
Max noise
24.8 dB(A)

Basis

GPUs GPU model Board Source
2 RTX 3090 MSI TRX40 PRO 10G jonready.com
2 RTX 3090 X570 (model not stated) den.dev
2 RTX 3090 MSI X570 Unify hav4ik.github.io

Compatibility warnings

Power & noise

Estimated 24/7 energy use, with every assumption stated:

Arithmetic: 4 h × 0.944 kW ≈ 3.8 kWh, plus 20 h × 0.111 kW ≈ 2.2 kWh, gives about 6.0 kWh a day at the wall. That is about 182 kWh a month (× 30.4 days) and about 2,190 kWh a year (× 365). For comparison, jonready’s measured 1.04 kW peak at the wall, held around the clock, would be 24 h × 1.04 kW ≈ 25 kWh a day, about four times as much. Multiply by your own tariff; the duty cycle moves the result far more than any part choice here. The power and noise guide explains the method and how to redo it for your own hours.

Noise: the two 3090s are the loud part. Each Founders Edition cooler moves air through the card, and with only about one slot position of air between them, the lower card blows hot air into the upper one. hav4ik names that as the reason closely stacked 30-series cards overheat and throttle. Power-limiting to 300 W lowers both heat and fan speed. The Define 7 XL is sound-damped, but the damping also holds heat, so fill the front and top fan mounts. The Phanteks alternate has 15 fan positions, so it can move more air through the two cards; we have no noise measurement for either case.

FAQ

Has anyone built exactly this list? Not that we know of. The three Basis builds share its core: two RTX 3090s in one desktop, run for local models. Their boards differ (an X570 pair and a TRX40 Threadripper), and jonready’s cards are NVLink-bridged. Treat the measured Model fit rows as evidence for the 2× 3090 configuration, not for these exact parts.

Why two used 3090s and not one newer card? The RTX 3090 is the cheapest way to 24 GB per card when bought used, and two of them reach 48 GB. Read the used RTX 3090 checklist before buying, and test each card under load while you can still return it.

How was the 70B fit worked out? The VRAM sizing guide explains the method. Llama 3.3 70B has 80 layers, 8 key/value heads and a head size of 128. A 16-bit KV cache therefore takes 80 × 8 × 128 × 2 (keys and values) × 2 bytes = 327,680 bytes per token. At 8,192 tokens that is about 2.68 GB. The Q4_K_M file is 42.52 GB, so weights plus cache come to about 45.2 GB. Two cards hold 2 × 24,576 MiB, about 51.5 GB, which leaves roughly 6 GB for the CUDA context, compute buffers and uneven splitting across the two cards. At 16k the cache doubles to about 5.37 GB and the margin drops to about 3.6 GB. That may work, but it is borderline and untested here. The same arithmetic for Qwen2.5 32B (64 layers, 8 key/value heads, head size 128) gives 262,144 bytes per token, about 8.6 GB at 32k.

Do I need NVLink? Not for llama.cpp. Its default split mode, layer, splits layers and KV cache across the GPUs, so each card holds whole layers and only the hidden state crosses between cards: for Llama 3.3 70B that is 8,192 values, about 16 KB per token at 16-bit, which x8 PCIe 4.0 moves without strain. A bridge matters more for vLLM tensor parallelism, where the cards exchange data inside every layer. jonready’s vLLM numbers were measured with the cards NVLink-bridged on a Threadripper board wired x16/x8, so expect this x8/x8 build without a bridge to land below his multi-request figures; the single-stream figures are the safer guide. If you do add one: NVIDIA sold the GeForce RTX 3090 bridge only in 4-slot spacing, which matches the Taichi’s four-position slot pitch. The 3-slot RTX A6000 bridge, which Puget Systems found works on 3090s, is too short for this board.

Why the Taichi and not a Threadripper board? Two GPUs is all AM5 does, and the Taichi does it at x8/x8 with the cards seated directly. More GPUs or more than 256 GB of RAM means Threadripper or EPYC, which is the 96 GB Tier’s ground.

Why 128 GB of system RAM? It leaves room to load models from disk and to offload layers that don’t fit in VRAM. The kit fills both channels with two DIMMs and leaves two slots for a second kit up to the board’s 256 GB limit, though four DIMMs on AM5 run much slower. The system RAM guide covers offloading and DIMM count, and the model storage guide covers loading from disk.

Sources
  1. https://jonready.com/blog/posts/local-llm-rig.html
  2. https://den.dev/blog/deep-learning-rig/
  3. https://hav4ik.github.io/meet-iva-my-dl-rig
  4. https://huggingface.co/bartowski/Llama-3.3-70B-Instruct-GGUF
  5. https://huggingface.co/unsloth/Llama-3.3-70B-Instruct/blob/main/config.json
  6. https://huggingface.co/bartowski/Qwen2.5-32B-Instruct-GGUF
  7. https://huggingface.co/Qwen/Qwen2.5-32B-Instruct/blob/main/config.json
  8. https://huggingface.co/Qwen/Qwen3.6-27B
  9. https://huggingface.co/Qwen/Qwen3.5-35B-A3B
  10. https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3090-3090ti/
  11. https://www.igorslab.de/en/nvidia-geforce-rtx-3090-founders-edition-review-between-even-between-evaluate-and-common-decadence-if-price-is-not-all/16/
  12. https://download.asrock.com/Manual/X870E%20Taichi.pdf#page=7
  13. https://download.asrock.com/Manual/X870E%20Taichi.pdf#page=11
  14. https://download.asrock.com/Manual/X870E%20Taichi.pdf#page=38
  15. https://assets.fractal-design.com/files/uxzbxy2o/production/5132765576dd5fff6c58e2e7fe06d7ff98f78ef7.pdf#page=6
  16. https://phanteks.com/product/enthoo-pro-2-server-edition-tg/
  17. https://www.corsair.com/us/en/p/psu/cp-9020307-na/hx1200i-fully-modular-ultra-low-noise-atx-power-supply-cp-9020307-na
  18. https://www.corsair.com/us/en/p/psu/cp-9020309-na/hx1500i-fully-modular-ultra-low-noise-atx-power-supply-cp-9020309-na
  19. https://dlcdnets.asus.com/pub/ASUS/mb/SocketAM5/ProArt_X870E-CREATOR_WIFI/C23930_ProArt_X870E-CREATOR_WIFI_EM_WEB.pdf#page=18
  20. https://www.amd.com/en/products/processors/desktops/ryzen/9000-series/amd-ryzen-9-9950x.html
  21. https://www.noctua.at/en/compatibility/by-components/motherboards/asrock-x870e-taichi
  22. https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md
  23. https://en.wikipedia.org/wiki/80_Plus
  24. https://michaelbluejay.com/electricity/maxload.html
  25. https://plugsocketmuseum.nl/RadialRingCircuit.html
  26. https://plugsocketmuseum.nl/Schuko1.html
  27. https://docs.nvidia.com/deploy/nvidia-smi/index.html
  28. https://www.pugetsystems.com/labs/hpc/Quad-RTX3090-GPU-Power-Limiting-with-Systemd-and-Nvidia-smi-1983/
  29. https://www.pugetsystems.com/labs/articles/nvidia-nvlink-2021-update-and-compatibility-chart-2074/

Last reviewed

  • — First published.
  • — Linked the sizing and operating guides.