DGX Spark vs a 2x or 4x RTX 3090 rig: 70B to 120B speed, cost, power and tensor parallelism
Two RTX 3090s run Llama 3.3 70B about five times faster than one DGX Spark: 31.3 tok/s for a single user with vLLM tensor parallelism (ComputingForGeeks, October 2026) against 6.0 tok/s GPUwerk measured on a Spark. The rig pays for it in watts and parts: 700 W of board power for two cards and 1,400 W for four, against a 240 W supply for the whole Spark, and four renewed 3090s cost about $7,600 before the board, against $6,950 for a 128 GB Spark. Four cards give 96 GB, but tensor parallelism over PCIe scales poorly for throughput, and I found no published run of gpt-oss-120b on a multi-3090 rig. Figures checked 7 November 2026.
| Key number | 2x RTX 3090 | 4x RTX 3090 | DGX Spark |
|---|---|---|---|
| Memory for models | 48 GB | 96 GB | 128 GB, one pool |
| Bandwidth | 936 GB/s per card | 936 GB/s per card | 273 GB/s |
| Llama 3.3 70B, one user | 31.3 tok/s (vLLM AWQ, TP=2) | no published run | 6.0 tok/s (vLLM AWQ, GPUwerk-measured) |
| gpt-oss-120b, one user | does not fit | no published run | 58.72 tok/s (llama.cpp) |
| Board or system power rating | 700 W of cards | 1,400 W of cards | 240 W supply |
| Price, cards or system | $3,799.98 renewed pair | about $7,600 renewed | $6,950 |
Rig speeds are third-party reports; GPUwerk has run no RTX 3090. Sources and dates are in the sections below. The four-card price is my multiplication of ComputingForGeeks' per-card Amazon price.
What does a multi-RTX 3090 rig cost in November 2026?
A complete two-card build costs about the same as a 128 GB Spark; four cards alone cost more than one. ComputingForGeeks priced a dual-3090 LLM build on Amazon US on 20 October 2026 at $6,311.33 with two renewed RTX 3090 Founders Editions ($3,799.98 for the pair), a Ryzen 7 9700X, an X870E board, 64 GB of DDR5, a 1,200 W supply and a 2 TB SSD, and at about $5,420 to $5,630 with used cards at tracker prices. Its recommended build with 128 GB of RAM and a 1,500 W supply came to $7,905.88.
| Item | Price | Source | Date |
|---|---|---|---|
| RTX 3090, used, Germany (median asking) | EUR 1,790 per card | used RTX 3090 article (Kleinanzeigen) | 2026-11-07 |
| RTX 3090, renewed, US | $1,899.99 per card | ComputingForGeeks (Amazon) | 2026-10-20 |
| RTX 3090, new, cheapest US retail | $3,874; 12-month median of tracked offers $1,350 | gpuprix | 2026-11-04 |
| Dual-3090 PC, complete (renewed cards) | $6,311.33 | ComputingForGeeks | 2026-10-20 |
| Four 3090s, cards only | about $7,600 renewed; about EUR 7,160 used | my multiplication of the rows above | 2026-11-07 |
| DGX Spark 128 GB | $6,950 US list; from EUR 7,331.59 in Germany | DGX Spark price page | 2026-10-11 / 2026-10-24 |
US prices exclude sales tax; the German asking prices are private sales. I did not price a four-card platform: it needs a board and CPU with lanes for four cards, risers or an open frame, and more than one large power supply, and I found no dated parts list for one.
The four-card platform is where the cost hides. NVIDIA lists the 3090 Founders Edition as a 3-slot card, 313 mm long, so four of them will not sit side by side on an ordinary ATX board. The four-card llama.cpp report below and ComputingForGeeks' rented two-card host both used X99-platform boards with PCIe Gen3 x16 slots, which are cheap used but run every card on Gen3.
What fits in 48 GB and 96 GB that one 24 GB card cannot hold?
48 GB takes a 70B dense model at 4-bit; 96 GB takes gpt-oss-120b and the 70 to 90 GB MoE quants, but with less room for cache than a Spark's 128 GB. File sizes are from Hugging Face, read 7 November 2026; I add 1.5 GB per card for the CUDA context (my assumption) and compare with 24 GiB (25.8 GB) per card.
| Model and file | Weights | 2x 3090 (51.5 GB) | 4x 3090 (103 GB) | DGX Spark (about 110 GB usable) |
|---|---|---|---|---|
| Llama 3.3 70B Q4_K_M | 42.52 GB | Yes, about 8k to 16k of context | Yes | Yes |
| Llama 3.3 70B Q8_0 | 74.98 GB | No | Yes, about 22 GB (65k tokens) for cache | Yes |
| gpt-oss-120b MXFP4 | 63.39 GB | No | Yes (three cards minimum) | Yes |
| GLM-4.5-Air Q4_K_M | 72.98 GB | No | Yes | Yes |
| Qwen3.5-122B-A10B UD-Q4_K_XL | 77.03 GB | No | Yes | Yes |
| Qwen3-235B-A22B-2507 UD-Q2_K_XL | 88.77 GB | No | Tight, about 8 GB left for cache | Yes, with more cache room |
My arithmetic. Llama 3.3 70B's FP16 cache is 320 KiB per token (80 layers, 8 KV heads, head dimension 128), so the roughly 6 GB left on two cards after the weights and my 3 GB allowance holds about 18,000 tokens in theory; ComputingForGeeks ran it at 8k with 22,074 MiB peak per card, which suggests 16k is a safer plan. Splits are rarely perfectly even across cards. The KV cache table has other models.
Whether a model fits one 3090 at all, and the FP8 and FP4 limits of Ampere for a single card, are covered in the used RTX 3090 article; this page is about what happens when you add cards.
How fast is a 3090 rig on models that need 48 to 96 GB?
Five times faster than a Spark on dense 70B with two cards in tensor parallel; on the big MoE models I found no multi-3090 measurement at all. Every row below is a published report except GPUwerk's own Spark runs.
| Model | Hardware and split | Engine | Decode tok/s | Prefill tok/s | Source | Date |
|---|---|---|---|---|---|---|
| Llama 3.3 70B Q4_K_M | 2x 3090, layer split | llama.cpp b11741 | 19.5 | 577 | ComputingForGeeks | 2026-10-19 |
| Llama 3.3 70B Q4_K_M | 2x 3090, tensor split | llama.cpp b11741 | 31.9 (29.9 at 8k filled) | 763 | ComputingForGeeks | 2026-10-19 |
| Llama 3.3 70B AWQ | 2x 3090, TP=2 | vLLM 0.31.0 | 31.3 at 1 user; 148.8 total at 8 | TTFT 721 ms | ComputingForGeeks | 2026-10-19 |
| Llama 3.3 70B AWQ | DGX Spark | vLLM 0.27.1 | 6.0 at 1 user; 125 total at 8 | 391 at 8k | GPUwerk-measured | 2026-09-02 |
| Qwen3.8-27B Q5_K_M (dense) | 4x 3090, tensor split | llama.cpp 5266f24 | 77.24 | 1,779 (pp2048) | #15013 comment | 2026-09-07 |
| Qwen3.8-27B Q5_K_M (dense) | 4x 3090, layer split | llama.cpp 5266f24 | 38.99 | 2,161 (pp1024) | same | 2026-09-07 |
| Qwen3.6-35B-A3B UD-Q5_K_M (MoE) | 4x 3090, tensor / layer | llama.cpp 5266f24 | 156.16 / 148.41 | 3,565 / 6,333 (pp2048) | same | 2026-09-07 |
| gpt-oss-120b MXFP4 | 1x 3090 + 64 GB DDR5, --n-cpu-moe 25 | llama.cpp build 7760 | 26.90 | 364.80 (pp2048) | #15396 | 2026-01-20 |
| gpt-oss-120b MXFP4 | DGX Spark | llama.cpp build 7941 | 58.72 | 2,443.91 (pp2048) | llama.cpp DGX Spark results | 2026-02-05 |
ComputingForGeeks ran on a rented host with two 3090s capped at 290 W, PCIe Gen3 x16, no NVLink. The four-card rows are one owner's X99 rig on PCIe Gen3 x16, driver 550.163.01. GPUwerk's "total at 8" counts prompt and generated tokens; ComputingForGeeks does not say which tokens its 148.8 counts, so compare those two loosely. The Qwen models fit one card and appear here because they are the only published four-card runs I found.
The bandwidth arithmetic explains the split modes. Layer split runs the cards one after another, so a token still reads all 42.52 GB through one card's 936 GB/s: a ceiling of 22 tok/s, and the measured 19.5 is 89% of it. Tensor split has every card read its quarter or half at once, so two cards have a 44 tok/s ceiling and reached 31.9, or 72%. On four cards the dense 27B reached 41% of its four-card ceiling (77.24 against 189 tok/s, my arithmetic), the cost of synchronizing over Gen3. Applying that 41% to Llama 3.3 70B on four cards suggests something near 36 tok/s. That is an estimate, not a measurement.
The Spark's 6.0 tok/s on the same 70B is 81% of its own 7.4 tok/s ceiling (273 GB/s over about 37 GB of AWQ weights, as worked through on the DGX Spark vs H100 page), so no software change closes this gap: the rig simply has more memory bandwidth working on each token.
Does tensor parallelism scale over PCIe without NVLink?
It helps one user and hurts many. The NVLink bridge does not rescue a four-card rig either: NVIDIA's 3090 page describes the bridge as linking two cards.
A public benchmark on four RTX 3090s without NVLink (vllm-topology-bench, vLLM 0.21.0, Qwen3.6-35B-A3B AWQ, 512 tokens in and 256 out) compared one TP=4 instance with two TP=2 replicas:
| Concurrent requests | 1x TP=4, output tok/s | 2x TP=2, output tok/s | Difference |
|---|---|---|---|
| 1 | 111 | 116 | +4% |
| 8 | 375 | 583 | +56% |
| 32 | 527 | 1,026 | +95% |
| 128 | 610 | 1,437 | +136% |
Single runs without variance bars, per the repository. Time to first token at 16 concurrent was 3.9 s for TP=4 and 1.4 s for two TP=2 replicas.
The author's rule: use the fewest cards that fit the model, then replicate. That rule is the catch for this comparison, because the reason to build four cards is a model that only fits on four. A 63 to 89 GB model has to run as TP=4 or as a four-way layer split, which is exactly the configuration that scaled worst here. For a single user, llama.cpp's tensor split still doubled dense decode on four Gen3 cards (38.99 to 77.24 tok/s), so interactive use does improve. For comparison, two Sparks cabled over ConnectX-7 form a 256 GB pool; the two-node cluster guide covers what that does and does not speed up.
How much power, heat and noise does a 3090 rig add?
Several times a Spark's draw: 580 to 1,400 W of cards, depending on count and power limits, against a Spark measured at 60 to 90 W during inference. NVIDIA rates the 3090 at 350 W and asks for a 750 W supply for a single-card system; four cards are 1,400 W of board power. ComputingForGeeks' host capped its two cards at 290 W and suggests 280 W on owned hardware, without measuring the effect. The Spark's whole system has a 240 W supply per NVIDIA's hardware page, and the 60 to 90 W inference figures come from reviewer measurements collected in the power guide.
| Setup and assumed draw | EUR per hour | kWh per month, 24/7 | EUR per month, 24/7 |
|---|---|---|---|
| 4x 3090 at 350 W rating (1.4 kW) | 0.40 | 1,022 | 289 |
| 2x 3090 at 350 W (0.7 kW) | 0.20 | 511 | 145 |
| 2x 3090 capped at 290 W (0.58 kW) | 0.16 | 423 | 120 |
| DGX Spark at its 240 W supply rating | 0.07 | 175 | 50 |
| DGX Spark at 90 W, measured inference | 0.03 | 66 | 19 |
My arithmetic at Eurostat's EU household average of EUR 0.2832 per kWh for the first half of 2026 (Germany: EUR 0.3618). Card rows exclude CPU, board and drives and assume full board power, which single-user decode rarely holds; nobody I read metered a multi-3090 rig under LLM load. Treat the card rows as ceilings.
Noise has no measurement either. ComputingForGeeks warns to expect the front fans at full speed under long jobs, and four 3-slot cards in an open frame are loud by design. NVIDIA declares 29 dB sound pressure for the Spark at full GPU load, per the noise and cooling guide. If the machine shares a room with people, that difference decides more than tok/s does.
Which is less software friction?
The 3090 rig is easier for Python packages and harder for everything physical. It is x86 with CUDA on compute capability 8.6, where every wheel exists; the four-card owner above ran an older 550-series driver (550.163.01, CUDA 12.4) without trouble. The limits are Ampere's: vLLM's FP8 documentation says FP8 computation needs compute capability 8.9 or newer, so FP8 checkpoints run as weight-only W8A16, and NVFP4 models fall back the same way. The physical side is risers, lane counts, two power supplies and tuning split modes per model.
The Spark is one box with DGX OS and FP4 tensor cores, but it is Arm64 with a new GPU target, so some packages need nightly builds; the five checks for a new model on GB10 list what usually breaks.
Verdict: Spark or a 3090 rig?
- Dense 70B for one person or a small team, and you have space and power: two 3090s. About 31 tok/s against 6 on a Spark, for about the same money as a complete PC. This is the one case where the rig clearly wins.
- gpt-oss-120b, Qwen3.5-122B-A10B, GLM-4.5-Air or other 60 to 110 GB models: the Spark. Four 3090s can hold them, but I found no published speed, the cards alone cost more than a Spark, and TP=4 over PCIe is the layout that scaled worst.
- Batch throughput on models that fit 24 to 48 GB: the rig, run as replicas rather than one wide tensor-parallel instance.
- Office desk, 24/7 running, or no appetite for risers and two power supplies: the Spark, at a measured 60 to 90 W during inference.
For a single 24 GB card against the Spark, see DGX Spark vs RTX 4090. If the deciding model is a 70B or 120B checkpoint, run it on a rented GPUwerk Spark for an hour first; the result tells you whether 6 tok/s dense or 58 tok/s MoE is enough before you buy four used cards.
FAQ
Is a DGX Spark better than two RTX 3090s?
Not for dense 70B speed. ComputingForGeeks measured Llama 3.3 70B AWQ at 31.3 tok/s for one user on two RTX 3090s with vLLM 0.31.0 tensor parallelism in October 2026; GPUwerk measured the same model at 6.0 tok/s on one Spark. The Spark wins on memory (128 GB against 48 GB), power (a 240 W supply against 700 W of cards) and noise, and it holds gpt-oss-120b, which two 3090s cannot.
How fast is Llama 3.3 70B on dual RTX 3090?
About 31 tok/s single-user with tensor parallelism. ComputingForGeeks reported 31.9 tok/s with llama.cpp's tensor split (b11741) and 31.3 tok/s with vLLM 0.31.0 AWQ at TP=2, on a rented rig with cards capped at 290 W. The default llama.cpp layer split gave 19.5 tok/s. With eight concurrent users vLLM reached 148.8 tok/s total.
Does vLLM tensor parallelism scale on 4x RTX 3090 without NVLink?
Poorly for throughput. A public benchmark on four PCIe RTX 3090s with vLLM 0.21.0 and Qwen3.6-35B-A3B AWQ found two TP=2 replicas beat one TP=4 instance by 136% at 128 concurrent requests, 1,437 against 610 output tok/s, with lower latency. llama.cpp's tensor split did double single-stream decode on a dense 27B model across four cards over PCIe Gen3.
How much does a 4x RTX 3090 rig cost in November 2026?
The cards alone cost about $7,600 at the $1,899.99 renewed price ComputingForGeeks found on Amazon in October 2026, or about EUR 7,160 at the EUR 1,790 median used asking price on Kleinanzeigen on 7 November 2026, before the board, power supplies and frame. A 128 GB DGX Spark lists at $6,950. A complete dual-3090 build priced at $6,311.33 with renewed cards.
How much power does a 4x RTX 3090 rig use?
Up to 1,400 W for the four cards at NVIDIA's 350 W rating, before CPU and drives; NVIDIA asks for a 750 W supply for a single-card system. At the EU household average of EUR 0.2832 per kWh, 1.4 kW is about EUR 0.40 an hour. A DGX Spark runs on a 240 W supply and drew 60 to 90 W during LLM inference in ServeTheHome's tests.
Sources
Every figure above is attributed to its source in the sentence or table where it appears. Pages were read on 7 November 2026 unless a date says otherwise.
- Dual RTX 3090 for Local LLMs: 70B Benchmarks and Build, ComputingForGeeks, 2026-10-21
- 4x RTX 3090 llama-bench, tensor vs layer split (comment in discussion #15013), ggml-org/llama.cpp on GitHub, 2026-09-07
- vllm-topology-bench: replicas vs tensor parallelism on 4x RTX 3090, mtecnic on GitHub
- guide: running gpt-oss with llama.cpp (discussion #15396), ggml-org/llama.cpp on GitHub
- DGX Spark benchmark results (benches/dgx-spark), ggml-org/llama.cpp on GitHub, 2026-02-05
- GeForce RTX 3090 Ti and 3090 specifications, NVIDIA
- NVIDIA GeForce RTX 4090 Founders Edition Review (specification table with RTX 3090), The FPS Review, 2022-10-11
- GeForce RTX 3090 price in United States, gpuprix, 2026-11-04
- DGX Spark hardware overview, NVIDIA
- Llama-3.3-70B-Instruct-GGUF files, Unsloth on Hugging Face
- gpt-oss-120b-GGUF files, ggml-org on Hugging Face
- Qwen3.5-122B-A10B-GGUF files, Unsloth on Hugging Face
- GLM-4.5-Air-GGUF files, Unsloth on Hugging Face
- Qwen3-235B-A22B-Instruct-2507-GGUF files, Unsloth on Hugging Face
- FP8 W8A8 (LLM Compressor), vLLM documentation
- Electricity price statistics, Eurostat