128 GB unified-memory pool. Two Sparks connected over a 200Gb/s QSFP link can run selected distributed models that do not fit on 1 node. The added network hop also adds coordination overhead, so measure throughput and latency on your exact runtime instead of assuming a 2× gain.
Quick verdict
When 1 Spark is enough
A single DGX Spark at 128GB is the right choice when:- Your model fits at a reasonable quantization. Dense models up to 70B at NVFP4 (~35 GB) or MoE models up to 120B at NVFP4 (~60 GB) load on a single node with room for KV cache.
- You serve 1-5 concurrent users. Single-Spark inference handles small team workloads at 35B MoE. For 70B dense, plan for 5-10 users maximum.
- Latency matters more than raw model size. A single Spark avoids the inter-node communication overhead that tensor parallelism introduces. For a 35B MoE model, single-node serving delivers 47-50 tok/s — fast enough for real-time coding agents and chat.
- You want simple operations. 1 machine, 1 runtime, 1 point of failure. No network configuration, no distributed launch, no NCCL debugging.
When you need 2 Sparks
Add a second Spark when any of these apply:- Your quantized model exceeds 128 GB but fits comfortably below 256 GB after runtime and KV-cache headroom.
DeepSeek-V4-Flash-0731is an example, with a published162–167 GBweight floor. - You need more KV-cache capacity or concurrency on a model that is already validated for distributed serving. Tensor parallelism can distribute memory pressure, but it does not guarantee proportional throughput.
- You are prepared to benchmark the networked runtime. Communication overhead and the model architecture determine the result.
A 405B dense model at FP8 needs roughly
405 GB for weights alone. It does not fit in 2 Sparks’ 256 GB combined memory. For a tested 2-Spark DeepSeek route and context guidance, see DeepSeek V4 Flash local hardware.200 Gbps QSFP link configuration
Two DGX Sparks connect directly via a 200Gb/s QSFP cable — no switch required. NVIDIA publishes an official “Connect Two Sparks Playbook” for this configuration.1
Connect the QSFP cable
Plug the 200Gb/s QSFP cable into the QSFP port on each DGX Spark. The link is a direct point-to-point connection — it does not go through your network switch.
2
Verify the link
On both Sparks, confirm the link is up and running at full speed:Look for the QSFP interface showing You should see
UP state. Verify the speed:200000Mb/s (200 Gb/s).3
Configure IP addresses
Assign static IPs on the QSFP link subnet. On Spark A:On Spark B:Test connectivity:
4
Set NCCL environment variables
NCCL (NVIDIA Collective Communications Library) handles inter-node GPU communication. Set these on both Sparks before launching vLLM:These variables tell NCCL to use the QSFP link for communication and enable GPU Direct RDMA for the lowest latency.
Tensor parallelism across 2 Sparks
vLLM supports distributed tensor parallelism, where each Spark holds a shard of the model weights and they communicate over the QSFP link during inference.Launch a distributed model
On Spark A (the head node), start vLLM in distributed mode:Tensor parallelism is the right parallelism strategy for two Sparks. Pipeline parallelism (splitting layers sequentially) introduces pipeline bubbles that waste compute on small clusters. Tensor parallelism splits each layer’s computation across both GPUs, giving better utilization for 2-node setups.
Model examples for 2 Sparks
Pipeline parallelism (when to consider)
Pipeline parallelism assigns different layers to each Spark. It is simpler to configure but less efficient for 2 nodes because the second Spark sits idle while the first processes each token’s early layers. Use pipeline parallelism only when:- The model architecture does not support tensor parallelism.
- You are chaining more than 2 Sparks and want to reduce communication overhead per hop.
Network requirements between Sparks
The QSFP link is purpose-built for this configuration, but the network path matters for performance:Cost-benefit analysis
When the second Spark pays off
- You need a distributed model with a measured weight and KV-cache plan. For example,
DeepSeek-V4-Flash-0731needs 2 nodes and starts as a community-tested configuration. - You serve a team on a model whose distributed runtime increases your measured throughput or concurrency enough to justify the second unit.
- You run latency-sensitive workloads on 120B models. The extra KV cache headroom from two Sparks lets you use longer context or serve more users without hitting the memory wall.
When it doesn’t
- Your model is ≤70B and your team is small. One Spark at 47-50 tok/s on a 35B MoE model is already faster than most people type. A second Spark adds cost and complexity for no user-visible improvement.
- You run MoE models that already fit. GLM-4.5-Air, Qwen3.5-122B, and Nemotron-3-Super-120B all fit on one Spark at NVFP4. Splitting them across two nodes introduces communication overhead that may not recover the parallelism gain.
Set up a 2-Spark cluster
1
Connect and verify the QSFP link
Follow the 200Gb/s link configuration steps above. Confirm 200Gb/s link speed and bidirectional ping on both Sparks.
2
Install vLLM on both Sparks
Both nodes need identical vLLM installations. Follow the vLLM on DGX Spark guide on each unit.
3
Install Ray on both Sparks
vLLM uses Ray for distributed coordination:Start the Ray head node on Spark A:Join Spark B to the Ray cluster:Verify both nodes appear:
4
Set NCCL environment variables on both Sparks
5
Launch vLLM in distributed mode on Spark A
6
Verify distributed serving
Test the endpoint from either Spark:
Serve both Sparks through Tokios
You can aggregate multiple Sparks behind a single Tokios endpoint. Install the connector on each Spark, register each as a separate deployment, and use model routing to direct traffic. For a 2-Spark tensor-parallel setup where vLLM runs on Spark A and coordinates with Spark B internally, you only need the connector on Spark A — vLLM’s/v1 endpoint already represents the combined cluster.
https://api.tokios.com without any awareness of the underlying topology.
vLLM on DGX Spark
Installation and launch commands for single-node vLLM.
Model compatibility
Check which models fit on 1 vs 2 Sparks.
Memory tuning
KV cache math and tuning parameters for either configuration.
DGX Spark use case
Full Tokios connector setup for DGX Spark.