安装后需运行 setup 向导完成集群、SSH mesh、sudoers 等配置才能正常使用;默认开启匿名遥测,可用 sparkrun setup telemetry --disable 关闭;从 0.3.x 或预览版升级到 0.4.0 存在 Python API 破坏性变更,需参考升级指南。
sparkrun
spark-arenaApache-2.0活跃维护在 NVIDIA DGX Spark 上快速启动、管理和停止 LLM 推理服务,支持 vLLM、SGLang、llama.cpp 等后端,省去手动配置环境的麻烦。
sparkrun - launch, manage, and stop LLM inference workloads on NVIDIA DGX Spark systems. Live support: https://discord.com/invite/GH5kRgv6ZD
uvx sparkrun setup面向 NVIDIA DGX Spark 系统,支持单台或多台组集群;README 未给出具体显存数值,也未说明是否支持 CPU 运行或其他 GPU 型号。
在 NVIDIA DGX Spark 上一条命令启动、管理和停止 LLM 推理负载,无需 Slurm 或 Kubernetes
在 NVIDIA DGX Spark 上快速启动、管理和停止 LLM 推理服务,支持 vLLM、SGLang、llama.cpp 等后端,省去手动配置环境的麻烦。
核心能力
- 一条命令启动 vLLM、SGLang、llama.cpp 推理负载
- 用 --tp 指定多节点张量并行并自动检测 InfiniBand/RDMA
- 启动前用 sparkrun show 估算显存判断模型能否装下
- 通过 SSH 自动把模型和容器镜像分发到各节点
- 引导式 setup 向导建集群、配 SSH mesh、检测 CX7 网卡
容易踩的坑
- v0.4.2最新正式版2026-10-26 · 2026-10-26 03:44 UTC
What's Changed
- fix: stop/logs and relaunch eviction query status with the cluster's hardware inventory by @OriNachum in https://github.com/spark-arena/sparkrun/pull/329
- fix: setup wizard SSH verify with fresh key; setup install completion path by @rmdes in https://github.com/spark-arena/sparkrun/pull/330
- Feature/tui improvements round 2 by @padthaitofuhot in https://github.com/spark-arena/sparkrun/pull/331
- v0.4.2 Promote Alpha to Beta by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/333
- Promote v0.4.2 Beta to Stable by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/334
New Contributors
- @rmdes made their first contribution in https://github.com/spark-arena/sparkrun/pull/330
Full Changelog: https://github.com/spark-arena/sparkrun/compare/v0.4.1...v0.4.2
- v0.4.12026-10-19 · 2026-10-19 06:47 UTC
查看更新说明
What's Changed
- plugins: export collective providers so platform plugins can implement collective_backend() by @OriNachum in https://github.com/spark-arena/sparkrun/pull/328
New Contributors
- @OriNachum made their first contribution in https://github.com/spark-arena/sparkrun/pull/328
Full Changelog: https://github.com/spark-arena/sparkrun/compare/v0.4.0...v0.4.1
- v0.4.02026-10-17 · 2026-10-17 22:23 UTC
查看更新说明
What's Changed
- Transfer shared-blob model caches and stop treating dangling symlinks as cached weights by @mathiasnagler in https://github.com/spark-arena/sparkrun/pull/300
- fix(runtime): strip trailing line continuation before appending flags by @ajorgens-ciq in https://github.com/spark-arena/sparkrun/pull/303
- Cut real-network stalls from the test suite; add per-test timeouts by @Aisoipheo in https://github.com/spark-arena/sparkrun/pull/307
- proxy: emit LiteLLM router_settings from proxy.yaml by @pom11 in https://github.com/spark-arena/sparkrun/pull/317
- Feature/cluster monitor logtail by @padthaitofuhot in https://github.com/spark-arena/sparkrun/pull/313
- proxy: least-in-flight balancing for the LiteLLM gateway by @pom11 in https://github.com/spark-arena/sparkrun/pull/318
- Remove concealed-selection behavior and use plain OptionList widgets by @padthaitofuhot in https://github.com/spark-arena/sparkrun/pull/320
- Fix log search input eating
/chars by @padthaitofuhot in https://github.com/spark-arena/sparkrun/pull/321 - Feature/monitor sensors redesign by @padthaitofuhot in https://github.com/spark-arena/sparkrun/pull/322
New Contributors
- @mathiasnagler made their first contribution in https://github.com/spark-arena/sparkrun/pull/300
- @ajorgens-ciq made their first contribution in https://github.com/spark-arena/sparkrun/pull/303
- @Aisoipheo made their first contribution in https://github.com/spark-arena/sparkrun/pull/307
- @pom11 made their first contribution in https://github.com/spark-arena/sparkrun/pull/317
- @padthaitofuhot made their first contribution in https://github.com/spark-arena/sparkrun/pull/313
Full Changelog: https://github.com/spark-arena/sparkrun/compare/v0.3.10...v0.4.0
- v0.3.102026-09-24 · 2026-09-24 16:00 UTC
查看更新说明
What's Changed
- Backport shared-blob cache repair and bump beta to 0.3.10 by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/301
- Promote 0.3.10 Beta to Stable by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/302
Full Changelog: https://github.com/spark-arena/sparkrun/compare/v0.3.9...v0.3.10
- v0.3.92026-09-13 · 2026-09-13 18:53 UTC
查看更新说明
What's Changed
- Promote v0.3.9 Alpha to Beta by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/295
- Promote v0.3.9 Beta to Stable by @dbotwinick in https://github.com/spark-arena/sparkrun/pull/296
Full Changelog: https://github.com/spark-arena/sparkrun/compare/v0.3.8...v0.3.9
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Install
uvx sparkrun setup
One command — installs sparkrun, then launches the guided setup wizard to create a cluster, configure SSH mesh, detect ConnectX-7 NICs, set up sudoers, and enable earlyoom.
Quick Start
# Run an inference workload
sparkrun run qwen3-1.7b-vllm
# Multi-node tensor parallelism (TP maps to node count on DGX Spark)
sparkrun run qwen3-1.7b-vllm --tp 2
# Re-attach to logs, stop a workload, check status
sparkrun logs qwen3-1.7b-vllm
sparkrun stop qwen3-1.7b-vllm
sparkrun status
Ctrl+C detaches from logs — it never kills your inference job. Your model keeps serving.
Watched launches also report Docker-start TTR and TTFT using a rank-local
streaming readiness check for Docker vLLM/SGLang launches. By default, run
follows startup logs and exits when ready; use --follow to stay attached,
--no-follow to wait without model logs, or --no-ready-wait to return after launch. See
startup readiness for configuration, timing
boundaries, per-recipe overrides, and execution-strategy integration.
See the full CLI reference for all commands and options.
Updating
sparkrun update
Upgrades sparkrun (when installed via uv tool), applies compatible updates to trusted managed plugins, and refreshes recipe registries. Use --no-update-plugins for a local plugin compatibility audit without plugin updates. See plugin management.
Moving from 0.3.x or a preview build? See the 0.4.0 upgrade guide for plugin installation, changed defaults, and Python API migration.
Update channels (advanced)
Opt into preview builds installed from git instead of PyPI:
sparkrun update --stable # PyPI stable release (default)
sparkrun update --beta # develop branch preview
sparkrun update --alpha # develop-next branch (bleeding edge)
sparkrun update --yolo # alias for --alpha
sparkrun update with no flag stays on your current channel; a channel flag switches and is remembered for future updates. The same flags work with sparkrun setup install and sparkrun setup update. Stable prints a plain version; beta/alpha add a channel suffix and commit (for example, 0.4.0-alpha+g1a2b3c4). Switching from a preview channel back to --stable may downgrade.
Highlights
- Multi-runtime — vLLM, SGLang, llama.cpp out of the box
- Multi-node tensor parallelism —
--tp 2= 2 hosts, automatic InfiniBand/RDMA detection - VRAM estimation — know if your model fits before you launch (
sparkrun show <recipe>) - Git-based recipe registries — we publish official recipes, community recipes, and benchmarked recipes via Spark Arena, plus you can add your own registries.
- Guided setup wizard — cluster creation, SSH mesh, CX7 auto-detection, sudoers, earlyoom
- Model & container distribution — syncs models and images to cluster nodes over SSH automatically
- Manifest model caches — automatic expected-file validation, selective weight downloads and pluggable model transfer
Python API and applications (0.4.0)
The 0.4.0 branch introduces breaking Python API changes. Start with the
migration guide, including the supported
imports and option/result contracts. Application profiles
let CLIs, daemons, and desktop applications share the core with their own identity,
paths, defaults, and plugins. Use sparkrun.application.initialize() for Python
API use without the Sparkrun CLI. The catalog API supports
headless browsing, previews, and persistent recipe selection.
Preparation-only builds build images or native Python environments
and stage model assets before launch. Set SPARKRUN_ADVANCED=1 to show
sparkrun build in CLI help.
Benchmarking separates measurement frameworks from
publication integrations. Plugin authors register installed
integrations through sparkrun.plugins.
The proxy CLI uses LiteLLM by default on every channel.
SparkRoute is available as a separately installed plugin.
Docker now stages a custom seccomp profile allowing io_uring on each launch node;
see executor configuration.
vLLM no longer sets OMP_NUM_THREADS by default; recipes can set it explicitly.
The daemon guide covers the authenticated local API, durable
jobs, desktop integration, and systemd deployment. Daemon
serving supports local TCP on Linux, macOS, and Windows behind the daemon
feature flag; Linux also supports peer-authenticated Unix sockets.
Spark Arena
Spark Arena is the community hub for DGX Spark recipe benchmarks — browse benchmark results, then run them directly with sparkrun.
Official Recipes
Official Recipes are maintained by the Spark Arena team and hosted on GitHub. They are tested and optimized for NVIDIA DGX Spark systems.
Community Recipes
Community Recipes are contributed by the community and hosted on GitHub.
License
sparkrun is licensed under the Apache License 2.0 — see LICENSE.
Anonymous Telemetry
sparkrun sends basic anonymous usage telemetry to https://telemetry.sparkrun.dev by default. Events include a random installation id stored in ~/.config/sparkrun/config.yaml, sparkrun version, OS/version, system architecture, and command-specific metadata such as run runtime/model/parallelism/source/hardware counts, benchmark category/framework/profile/result keys, update version and registry counts, and setup-wizard step choices.
The data allows us to make informed decisions about new features for sparkrun or the greater DGX Spark ecosystem.
Telemetry very specifically does not include personally identifiable information or information that may reveal trade secrets. Telemetry does not include hostnames, usernames, local file paths, tokens, secrets, logs, private HF or local models, or full command arguments. Disable it persistently with sparkrun setup telemetry --disable, re-enable with sparkrun setup telemetry --enable, or opt out for one process with SPARKRUN_NO_TELEMETRY=1.