Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions backends/atlas-sparkqwen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ of NVIDIA DGX Spark systems, serving `nvidia/Qwen3.8-Flash-Next-NVFP4` as
published (no overlay conversion, no separate drafter: speculation uses the
checkpoint's own MTP head). This directory is **MIT orchestration only**: no
Atlas engine source is committed here. The engine image is built from
`Enntity/sparkqwen` revision `8b28467324893583838871b6a6b6a28d3059e64f`
(install tree `4ccd961ecf09`) by that repository's `install/build.sh` and
published as `ghcr.io/enntity/atlas-sparkqwen:4ccd961ecf09`. The engine inside
`Enntity/sparkqwen` revision `0cf2436de5211b41edf4d92071180c75cec31dd8`
(install tree `e7268337a5c8`) by that repository's `install/build.sh` and
published as `ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8`. The engine inside
the image is AGPL-3.0-only; see [Credits and licenses](#credits-and-licenses).
SparkQwen qualified RC16 on its own launcher; no live run through LLooM is
recorded yet.

## Image digest

`pins.json` addresses `ghcr.io/enntity/atlas-sparkqwen@sha256:9408884dc4bf2c84b7dd097d62effc73f58fffc25a1d67db73d0b4e69516a7c0`, the GHCR
manifest digest of tag `4ccd961ecf09` (recorded 2026-10-13 with
`pins.json` addresses `ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed`, the GHCR
manifest digest of tag `e7268337a5c8` (recorded 2026-10-13 with
`docker buildx imagetools inspect`). Both recipe members use the same
reference as `bootstrap.image`.

Expand Down
10 changes: 5 additions & 5 deletions backends/atlas-sparkqwen/pins.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"manifestVersion": 1,
"status": "final",
"note": "Single pin manifest for the Atlas SparkQwen RC16 lane. Source, install tree, tag and model identities are final. image.reference is the GHCR manifest digest of ghcr.io/enntity/atlas-sparkqwen:4ccd961ecf09, also used as the recipe's bootstrap image. The normal install path addresses image.reference; the tag is source-build metadata (the first 12 characters of the git tree of install/ at the pinned revision) and the install-tree label is a contents check. A tag or label alone is never the artifact identity.",
"note": "Single pin manifest for the Atlas SparkQwen RC16 lane. Source, install tree, tag and model identities are final. image.reference is the GHCR manifest digest of ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8, also used as the recipe's bootstrap image. The normal install path addresses image.reference; the tag is source-build metadata (the first 12 characters of the git tree of install/ at the pinned revision) and the install-tree label is a contents check. A tag or label alone is never the artifact identity.",
"source": {
"repo": "Enntity/sparkqwen",
"revision": "8b28467324893583838871b6a6b6a28d3059e64f",
"installTree": "4ccd961ecf09d86c9f13087e42592789b5f56182",
"revision": "0cf2436de5211b41edf4d92071180c75cec31dd8",
"installTree": "e7268337a5c8e77c874c7cb7be689f80a79946a5",
"cloneUrl": "https://github.com/Enntity/sparkqwen.git",
"buildScript": "install/build.sh"
},
Expand All @@ -15,8 +15,8 @@
"commit": "1c43247d93ca050f02cb67b0603e88edfe3d92a5"
},
"image": {
"reference": "ghcr.io/enntity/atlas-sparkqwen@sha256:9408884dc4bf2c84b7dd097d62effc73f58fffc25a1d67db73d0b4e69516a7c0",
"tag": "ghcr.io/enntity/atlas-sparkqwen:4ccd961ecf09",
"reference": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"tag": "ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8",
"label": "io.enntity.sparkqwen.install-tree",
"entrypoint": "/opt/atlas/serve.py",
"profilePath": "/opt/atlas/profiles/8x262k.json",
Expand Down
10 changes: 9 additions & 1 deletion docs/recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -576,9 +576,17 @@ lloom setup --recipe linux-nvidia-dgx-spark-2x-qwen38-flash-next-atlas --additiv
lloom runtime-start qwen38-flash-next-atlas-cluster
```

For shared hosts, the image accepts `SPARKQWEN_GPU_MEMORY_UTILIZATION=0.70`
through `0.95` in each physical runtime's Docker environment. Lower settings
leave room for host services and reduce the shared KV pool; the published
context/concurrency measurements apply to the default 0.88 allocation. Keep
the logical runtime, physical runtimes, and each placement member's
`resources.memoryGb` reservation consistent with the chosen deployment.
Do not raise the host memory safety limit to make an oversized cache fit.

The recipe is additive (no default model, no aliases, `keepWarm` false). Pins
live in `backends/atlas-sparkqwen/pins.json` (source `Enntity/sparkqwen`
`8b284673`, install tree `4ccd961ecf09`). The GHCR manifest digest is pinned in the same manifest.
`0cf2436d`, install tree `e7268337a5c8`). The GHCR manifest digest is pinned in the same manifest.
`node backends/atlas-sparkqwen/verify-pins.mjs`, setup step
`verify-atlas-pins` and `install.sh` reject missing or placeholder identities. The
installer only pulls that digest and verifies the image's arm64 architecture,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
"provenance": {
"createdBy": "lloom",
"generatedBy": "manual-curated",
"source": "SparkQwen RC16: Enntity/sparkqwen 8b28467324893583838871b6a6b6a28d3059e64f (install tree 4ccd961ecf09d86c9f13087e42592789b5f56182), engine Enntity/atlas sparkqwen/atlas-20261010-rc16 @ 1c43247d (AGPL-3.0-only, recorded in the image's /opt/atlas/source-manifest.json). The image is ghcr.io/enntity/atlas-sparkqwen:4ccd961ecf09, addressed by its GHCR manifest digest in pins.json. The engine argument vector ships inside the image as /opt/atlas/profiles/8x262k.json, selected with SPARKQWEN_PROFILE=8x262k: eight sequences of up to 262144 tokens, BF16 KV (about 3.19M pool tokens at the profile's 0.88 GPU memory utilization), prefix caching, MTP speculation (up to 7 drafts), content-loop steering. Model nvidia/Qwen3.8-Flash-Next-NVFP4 revision fc694b54fb0174e0913e6adf86691ef85a4ead47."
"source": "SparkQwen RC16: Enntity/sparkqwen 0cf2436de5211b41edf4d92071180c75cec31dd8 (install tree e7268337a5c8e77c874c7cb7be689f80a79946a5), engine Enntity/atlas sparkqwen/atlas-20261010-rc16 @ 1c43247d (AGPL-3.0-only, recorded in the image's /opt/atlas/source-manifest.json). The image is ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8, addressed by its GHCR manifest digest in pins.json. The engine argument vector ships inside the image as /opt/atlas/profiles/8x262k.json, selected with SPARKQWEN_PROFILE=8x262k: eight sequences of up to 262144 tokens, BF16 KV (about 3.19M pool tokens at the profile's 0.88 GPU memory utilization), prefix caching, MTP speculation (up to 7 drafts), content-loop steering. Model nvidia/Qwen3.8-Flash-Next-NVFP4 revision fc694b54fb0174e0913e6adf86691ef85a4ead47."
},
"links": [
{
"rel": "upstream",
"href": "https://github.com/Enntity/sparkqwen/tree/8b28467324893583838871b6a6b6a28d3059e64f"
"href": "https://github.com/Enntity/sparkqwen/tree/0cf2436de5211b41edf4d92071180c75cec31dd8"
},
{
"rel": "engine",
Expand Down Expand Up @@ -219,7 +219,7 @@
"warmup": false,
"bootstrap": {
"adapter": "docker",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:9408884dc4bf2c84b7dd097d62effc73f58fffc25a1d67db73d0b4e69516a7c0",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"pull": false,
"pullTimeoutMs": 3600000,
"createArgs": [
Expand Down Expand Up @@ -320,7 +320,7 @@
},
"bootstrap": {
"adapter": "docker",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:9408884dc4bf2c84b7dd097d62effc73f58fffc25a1d67db73d0b4e69516a7c0",
"image": "ghcr.io/enntity/atlas-sparkqwen@sha256:63fcc9f8f87a3963aba91f0a5dbf2c1cf5efa1d809c4ab1b52bd5853979e73ed",
"pull": false,
"pullTimeoutMs": 3600000,
"createArgs": [
Expand Down
6 changes: 3 additions & 3 deletions test/atlas-sparkqwen-recipe.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -323,10 +323,10 @@ assert.throws(() => materialize(missingFabric), /cluster\.nodes\[ennspark04\]\.f

// ---- pins: final identities, pending digest, fail-closed gate ---------------
assert.equal(pins.source.repo, 'Enntity/sparkqwen');
assert.equal(pins.source.revision, '8b28467324893583838871b6a6b6a28d3059e64f');
assert.equal(pins.source.installTree, '4ccd961ecf09d86c9f13087e42592789b5f56182');
assert.equal(pins.source.revision, '0cf2436de5211b41edf4d92071180c75cec31dd8');
assert.equal(pins.source.installTree, 'e7268337a5c8e77c874c7cb7be689f80a79946a5');
assert.equal(pins.engine.commit, '1c43247d93ca050f02cb67b0603e88edfe3d92a5');
assert.equal(pins.image.tag, 'ghcr.io/enntity/atlas-sparkqwen:4ccd961ecf09');
assert.equal(pins.image.tag, 'ghcr.io/enntity/atlas-sparkqwen:e7268337a5c8');
assert.equal(pins.image.tag, imageTagFor(pins));
assert.equal(pins.image.label, 'io.enntity.sparkqwen.install-tree');
assert.equal(pins.image.profilePath, '/opt/atlas/profiles/8x262k.json');
Expand Down
Loading