From 7d85b5a5a77b99e03298ee4e7bc9d27541557fd2 Mon Sep 17 00:00:00 2001 From: Jason McCartney Date: Fri, 9 Oct 2026 16:55:04 -0700 Subject: [PATCH] Engine sparkglm/atlas-20261009-rc2: canonical (width-invariant) verify, persistent MoE decode, one-launch KDA commits Co-Authored-By: Claude Opus 5.5 --- README.md | 2 +- docs/INSTALL-MANUAL.md | 2 +- install/atlas-source.json | 12 ++++++------ install/profiles/4x1m.json | 1 + install/profiles/4x512k.json | 1 + install/profiles/8x128k.json | 1 + 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b0eabfe..16e8dc8 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ comparison videos. ## The engine Atlas here is [`Enntity/atlas`](https://github.com/Enntity/atlas) branch -`sparkglm/atlas-20261009-final` (pinned in +`sparkglm/atlas-20261009-rc2` (pinned in [`install/atlas-source.json`](install/atlas-source.json)), built from three layers: diff --git a/docs/INSTALL-MANUAL.md b/docs/INSTALL-MANUAL.md index 954bbee..e4de53e 100644 --- a/docs/INSTALL-MANUAL.md +++ b/docs/INSTALL-MANUAL.md @@ -5,7 +5,7 @@ time. Run steps 1–4 on **both** Sparks with the same `MODEL_ROOT`. | Component | Pin | |---|---| -| Engine | [`Enntity/atlas`](https://github.com/Enntity/atlas) `sparkglm/atlas-20261009-final` @ `b85befc6` ([`install/atlas-source.json`](../install/atlas-source.json)) | +| Engine | [`Enntity/atlas`](https://github.com/Enntity/atlas) `sparkglm/atlas-20261009-rc2` @ `f2b805e7` ([`install/atlas-source.json`](../install/atlas-source.json)) | | Model | [`nvidia/GLM-5.3-Flash-NVFP4`](https://huggingface.co/nvidia/GLM-5.3-Flash-NVFP4) @ `423acf37583782c51c142d145aef733d72943d93` (MIT) | | Drafter | [`incoai/GLM-5.3-Flash-DFlash2`](https://huggingface.co/incoai/GLM-5.3-Flash-DFlash2) @ `7d74cdd881ed7e32c31175984a67823127b66cfe` (CC BY-NC-ND 4.0) | | Native dependencies | FlashInfer `8eccd0c1`, CUTLASS `cf064d2e`, FlashKDA ([`install/flash_kda/`](../install/flash_kda/)), Rust 1.93.1, CUDA 13.0 | diff --git a/install/atlas-source.json b/install/atlas-source.json index 4cadc38..0bf77a6 100644 --- a/install/atlas-source.json +++ b/install/atlas-source.json @@ -2,9 +2,9 @@ "schema": "sparkglm.atlas-engine-source/v2", "note": "The Atlas engine is built from the public Enntity/atlas fork at this exact commit; build.sh refuses any other tree.", "repository": "https://github.com/Enntity/atlas.git", - "branch": "sparkglm/atlas-20261009-final", - "commit": "b85befc684772cf2fda5829b1fe2598883448c26", - "tree": "29305f3eccdebadc215fc02d9cf569d3b4d2fe03", + "branch": "sparkglm/atlas-20261009-rc2", + "commit": "f2b805e73d36a7e5527622e24f2f8199052e01e6", + "tree": "513bf0c7187cc202a54980533fb4c5325ec72b2e", "layers": { "atlas_inf_main_base": "6a3d24ecb891adac1fac8edeef92de29bb6f3e15", "upstream_candidate": { @@ -17,9 +17,9 @@ "note": "The unchanged FlashKDA/native sparse-MLA prefill bridges and GB10 display-carveout KV placement from fdd2f965, then the carveout takes latent KV pools only (ATLAS_KV_CARVEOUT_ORDER, default latent): the GPU maps the carveout L2-uncached, and sparse-index buffers there slowed 64K cold prefill by 7% (Enntity/sparkglm#30). Fork-only; used only with DISPLAY_CARVEOUT=1. Plus: sharded latent pools (ATLAS_GLM_KV_SHARD, opt-in through SPARKGLM_KV_SHARD) size and place in the display carveout." }, "integration": { - "branch": "sparkglm/atlas-20261009-final", - "commit": "e034500d + 3 cherry-picks + 2", - "note": "sparkglm/atlas-20261009 plus the disk prefix-cache tier beside the KV shard (feat/kvshard-nvme: each rank spills and restores only the latents it owns) and the bit-exact shard (feat/kvshard-exact: few-row MLA attention takes one canonical decomposition with the shard on and off, so sharding changes no output bit), cherry-picked with -x; then fix/canonical-history: one split count for every row count, so a row's bits no longer depend on the DFlash verify width beside it." + "branch": "sparkglm/atlas-20261009-rc2", + "commit": "b85befc6 + 6", + "note": "sparkglm/atlas-20261009-final plus: the canonical verify (exp/canonical-verify: one row-invariant kernel family per op for every verify width, plain decode as a one-row verify, dense FFN included, so greedy output no longer depends on the DFlash width, the drafter or concurrency; ATLAS_GLM_CANONICAL_VERIFY, default on), persistent prefetching MoE decode kernels (exp/moe-decode-bw, bit-identical; ATLAS_GLM_MOE_DECODE_PERSIST, on in the profiles) and one-launch KDA record commits (exp/kda-commit-batch, bit-identical), cherry-picked with -x." } }, "kernel_target": "glm-5.3-flash", diff --git a/install/profiles/4x1m.json b/install/profiles/4x1m.json index 3954a3a..3f49dcf 100644 --- a/install/profiles/4x1m.json +++ b/install/profiles/4x1m.json @@ -170,6 +170,7 @@ "ATLAS_GLM_DECODE_FUSE": "1", "ATLAS_GLM_DECODE_GEMV_BATCH": "1", "ATLAS_GLM_MOE_DECODE_L2PF": "1", + "ATLAS_GLM_MOE_DECODE_PERSIST": "1", "ATLAS_GLM_MOE_STREAM_NOSYNC": "1", "ATLAS_GLM_DRAFT_TP_BATCH": "1", "ATLAS_RDMA_ONESHOT": "1", diff --git a/install/profiles/4x512k.json b/install/profiles/4x512k.json index 2518f77..2d0fd7e 100644 --- a/install/profiles/4x512k.json +++ b/install/profiles/4x512k.json @@ -170,6 +170,7 @@ "ATLAS_GLM_DECODE_FUSE": "1", "ATLAS_GLM_DECODE_GEMV_BATCH": "1", "ATLAS_GLM_MOE_DECODE_L2PF": "1", + "ATLAS_GLM_MOE_DECODE_PERSIST": "1", "ATLAS_GLM_MOE_STREAM_NOSYNC": "1", "ATLAS_GLM_DRAFT_TP_BATCH": "1", "ATLAS_RDMA_ONESHOT": "1", diff --git a/install/profiles/8x128k.json b/install/profiles/8x128k.json index 7cb52da..7a2c27c 100644 --- a/install/profiles/8x128k.json +++ b/install/profiles/8x128k.json @@ -169,6 +169,7 @@ "ATLAS_GLM_DECODE_FUSE": "1", "ATLAS_GLM_DECODE_GEMV_BATCH": "1", "ATLAS_GLM_MOE_DECODE_L2PF": "1", + "ATLAS_GLM_MOE_DECODE_PERSIST": "1", "ATLAS_GLM_MOE_STREAM_NOSYNC": "1", "ATLAS_GLM_DRAFT_TP_BATCH": "1", "ATLAS_RDMA_ONESHOT": "1",