/v1 endpoint, native SM121 support, and the throughput numbers the community reports — 47-50 tok/s on Qwen3.5-35B-A3B, 15-20 tok/s on 70B dense, and ~30 tok/s on 120B MoE. This page walks you through installation, first launch, and the settings that matter.
Alternative engines. Some community members report better results with SGLang on specific model configurations, and the Atlas engine claims 2.8x over stock vLLM for Qwen3.6-35B-A3B. This page covers stock vLLM because it has the broadest model support and the most documented configuration surface.
Prerequisites
Before you start, confirm your DGX Spark meets these requirements:- OS: DGX OS (Ubuntu-based, Linux aarch64)
- CUDA: 13.0 or later — CUDA 12 libraries fail on SM121
- Python: 3.10 or later (for pip install) or Docker with ARM64 support
- Memory: 128 GB unified (default on all DGX Spark / GB10 units)
Install vLLM
1
Install vLLM via pip
The simplest path on DGX OS is a direct pip install. vLLM ships ARM64 wheels that work on the Grace CPU.If you need the nightly build for the latest NVFP4 or SM121 fixes:
2
Or pull the Docker image
If you prefer containerized deployment, pull the ARM64-compatible image:Run with GPU access:
3
Verify the installation
Confirm vLLM starts and detects the GPU:If this prints a version number without CUDA errors, you are ready to serve.
Launch your first model
Start with a 35B MoE model — it is fast, well-tested, and leaves plenty of memory headroom.http://127.0.0.1:8000. Test it:
Optimal settings by model size
The 3 settings that matter most on DGX Spark are--gpu-memory-utilization, --max-model-len, and --quantization. Here are tested starting points:
35B MoE (Qwen3.5-35B-A3B, Qwen3.6-35B-A3B)
max-model-len higher if you need longer context.
70B dense
max-model-len at 8192 to leave room for KV cache across concurrent requests. Community reports show multi-user concurrency is limited to 5-10 users at this size.
120B MoE (Qwen3.5-122B-A10B, Nemotron-3-Super-120B)
NVFP4 configuration recipes
NVFP4 is the recommended quantization for DGX Spark. It runs natively on SM121 and gives a 75% size reduction with low quality impact.Use a pre-quantized model
NVIDIA publishes NVFP4 checkpoints on Hugging Face. Use thenvidia/ prefix:
Online quantization at load time
If no pre-quantized checkpoint exists, vLLM can quantize on the fly from a BF16 model:SGLang alternative
Some community members recommend SGLang over stock vLLM for specific DGX Spark workloads. SGLang runs on the same CUDA 13.0 stack and uses the same model formats.ARM64 and SM121 gotchas
DGX Spark’s Grace CPU (ARM64) and Blackwell GPU (SM121) have a few platform-specific issues worth knowing before you hit them.Benchmark your setup
After launching, verify throughput with a quick benchmark:Expose your endpoint with Tokios
vLLM on the Spark gives you a local/v1 endpoint. To reach it from your laptop, coding agents, or teammates without SSH tunnels or open ports, run the Tokios connector alongside vLLM.
1
Start vLLM on the Spark
Launch your model as shown above. Confirm it answers on
http://127.0.0.1:8000/v1.2
Install and pair the connector
In the Tokios dashboard, open Setup and select Start pairing to get a claim code. On the Spark:
3
Register a deployment
On the Models tab, map your vLLM model id to a deployment name. Clients use the deployment name, not the upstream model id.
Model compatibility
Check which models fit in 128GB and their expected throughput.
Memory tuning
KV cache sizing, FP8 KV cache, and tuning parameters for production workloads.
vLLM remote access
General vLLM remote access patterns beyond DGX Spark.
One vs two Sparks
Scale to 405B models with a second Spark and tensor parallelism.