Skip to content

SparkRing 2026.09.5

Choose a tag to compare

@FujitsuPolycom FujitsuPolycom released this 28 Sep 04:08

One command sets up two or four directly cabled DGX Sparks and starts a model.

curl -fsSL https://raw.githubusercontent.com/FujitsuPolycom/sparkring/main/install.sh | bash -s -- --profile qwen38-flash-next-tp2

Pick a --profile from the table. The command asks before it installs the SparkRing package and before it changes any Spark (--yes answers both; --plan changes nothing). Rerunning it upgrades to the newest release on main.

Image

dev-20260927-mimovision-cuda1342-nccl2323-status032:
ghcr.io/fujitsupolycom/sparkring@sha256:2c45153abf19af4f2b4bf10445cfc96c711c375a6fc5c04d3a2b55496f3acfe3
(15.2 GB download, 29.5 GiB unpacked). All nine installer profiles run it.

Profiles

Decode is the aggregate output rate from llm-inference-bench 0.6.2 at temperature 1.0 with no added context; prefill is one cold 64K-token prompt divided by its time to first token. Single runs on one pair or one four-Spark ring.

Model Sparks --profile Decode 1 / 8 / 16 users (tok/s) Prefill 64K (tok/s)
Qwen3.8-Flash-Next NVFP4 QAD 2 qwen38-flash-next-tp2 54.6 / 202 / 296 3,663
Qwen3.8-Flash-Next NVFP4 QAD 4 qwen38-flash-next-qad-tp4 78.4 / 261 / 410 4,534
Swift-1.5-Qwen3.8-Flash-Next 2 swift15-qwen38-flash-next-tp2 48.5 / 191 / 262 3,597
Swift-1.5-Qwen3.8-Flash-Next 4 swift15-qwen38-flash-next-tp4 research-only —
GLM-5.3-Flash NVFP4 Spark 2 glm53-flash-nvfp4-spark-tp2 35.7 / 100 / — 2,347
GLM-5.3-Flash NVFP4 Spark 4 glm53-flash-nvfp4-spark-tp4 68.0 / 202 / 291 3,647
MiMo-V2.6-Flash-RL 2 mimo-v26-flash-rl-tp2 36.1 / 138 / 212 2,509
MiMo-V2.6-Flash-RL 4 mimo-v26-flash-rl-tp4 52.9 / 188 / 342 4,076
DeepSeek-V4.1-Flash 4 deepseek-v41-flash-tp4 63.8 / 196 / 280 4,284

Every implemented profile passed the functional checks (counting, arithmetic, code, automatic and forced tool calls, image input, thinking) and a 256-request correctness screen with no degenerate response.

Changes

  • Repeated-token collapse fixed. With MTP and async scheduling, Qwen could switch mid-answer to one token ( Register) repeated to the end (#294). The image stages every host-to-device copy through fresh pinned memory; the targeted upstream change is local-inference-lab/vllm#923.
  • Faster restarts. B12X reuses the kernel tuning the ranks have already agreed on: a DeepSeek four-Spark restart is ready in about 200-300 s instead of 650-740 s.
  • MiMo image input works. The vision encoder applies its attention sinks as the model was trained; before, MiMo misread image colors.
  • DeepSeek-V4.1-Flash on four Sparks. DSpark speculative decoding with probabilistic drafting, block rejection and adaptive verification.
  • Swift 1.5 profiles for two Sparks (implemented) and four Sparks (research-only).
  • MiMo on four Sparks uses all four ring NIC functions: prefill 11-17% faster.
  • Installer. Approval before the package install and before changing any Spark; --json prints one result document; --package-only; --plan shows an upgrade's plan without installing anything; host memory is cleared before each model starts.
  • sparkring storage reports disk use on every Spark and releases caches and workspaces no deployment uses.
  • Runtime-status dashboard 0.3.2 shows the served model name.

Known limits

  • Every SparkRing update restarts the running model, even when its settings are unchanged.
  • The first start on this image compiles kernels: about 200-400 s to ready when a checkpoint is already on the Sparks.
  • Timings are single runs; profiles are implemented, not serving-qualified.

The native image shared-2026.09.3 remains available for the manual setups in the profile catalog.