Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
892e2c0
feat(deepseek): allow SERVED_MODEL_NAME override and HF snapshot blob…
Sep 3, 2026
ad1e255
Use NVFP4 MTP proposal heads in the GLM mesh profile
FujitsuPolycom Sep 5, 2026
a86aa58
Order RoCEnante staging and enforce mesh compute receipts
FujitsuPolycom Sep 5, 2026
322083f
List native MTP3 mesh in the GLM-5.3 profile table
FujitsuPolycom Sep 5, 2026
504c6b0
Describe MTP3 profile behavior and evidence by artifact identity
FujitsuPolycom Sep 5, 2026
3226102
Compose GLM loader ownership, independent RNG and B12X selector sources
FujitsuPolycom Sep 5, 2026
b94e442
Preserve artifact-specific evidence wording in compute composition
FujitsuPolycom Sep 5, 2026
001c48c
Bind GLM mesh profile to the validated compute and stream-safety image
FujitsuPolycom Sep 6, 2026
ec6cecd
Include memory-gated host startup in the validated mesh profile
FujitsuPolycom Sep 6, 2026
a5097d3
Validate DFlash profile content in the shared GLM table
FujitsuPolycom Sep 6, 2026
17157a4
Fix B12X indexer publication barrier and detect output stalls
FujitsuPolycom Sep 6, 2026
5415f50
Exercise sampling and reasoning before GLM readiness
FujitsuPolycom Sep 6, 2026
ef3c381
Package a checked child image for indexer and readiness fixes
FujitsuPolycom Sep 6, 2026
d18be4c
Record published indexer and readiness hotfix image
FujitsuPolycom Sep 6, 2026
d1ec3ec
Specify operator image verification and reproducible barrier checks
FujitsuPolycom Sep 6, 2026
cb5471d
Describe snapshot blob links without assuming every file is a symlink
FujitsuPolycom Sep 6, 2026
b0582e9
Preserve cycle launcher extensions across supported runtime profiles
FujitsuPolycom Sep 6, 2026
c753c07
Identify the operator image that includes sampling readiness
FujitsuPolycom Sep 6, 2026
d19348d
Gate managed GLM startup on available and contiguous memory
FujitsuPolycom Sep 6, 2026
cd3ccca
Combine GLM startup memory gates with indexer and readiness controls
FujitsuPolycom Sep 6, 2026
7b67007
Keep cycle launcher configuration compatible with managed startup con…
FujitsuPolycom Sep 6, 2026
f1a1595
Support DeepSeek API model aliases and snapshot blob mounts
FujitsuPolycom Sep 6, 2026
7a4e6b2
Preserve launcher snapshot support alongside GLM runtime fixes
FujitsuPolycom Sep 6, 2026
474d992
Enforce GLM indexer publication and readiness contracts
FujitsuPolycom Sep 6, 2026
bd84cb9
Merge remote-tracking branch 'origin/main' into codex/pr219-review
FujitsuPolycom Sep 6, 2026
50d46f7
Constrain compute verification paths and encode receipts explicitly
FujitsuPolycom Sep 6, 2026
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
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
*.sh text eol=lf
*.patch text eol=lf
runtime/** text eol=lf
runtime/glm53-spark-mtp3-mesh/compute/*.tar.gz -text
runtime/glm53-spark-mtp3-mesh/compute/*.patch whitespace=-trailing-space
runtime/exl3/patches/*.patch whitespace=-trailing-space

# Runtime receipts hash these source files byte-for-byte before copying them,
Expand Down
59 changes: 39 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ by that profile.
| Image family / profile | Purpose | Start here |
|---|---|---|
| [GLM-5.3 DFlash2/SIRCL](runtime/glm53-flash-jj-r8-gb10/README.md) | Linux/ARM64 vLLM image with B12X kernels, DFlash2, SIRCL, and optional SparkCache. | [DFlash2 quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |
| [GLM-5.3 native-MTP3 mesh](runtime/glm53-spark-mtp3-mesh/public-image.json) | Linux/ARM64 image for NVFP4-Spark, native MTP3, hybrid mesh transport, and SparkCache. | [Mesh quickstart](docs/GLM53_SPARK_MTP3_MESH_QUICKSTART.md) |
| [GLM-5.3 native-MTP3 mesh](runtime/glm53-spark-mtp3-mesh/public-image.json) | Linux/ARM64 image for NVFP4-Spark, CUDA 13.3, native MTP3 with an NVFP4/BF16 proposal head, hybrid mesh transport, and SparkCache. | [Mesh quickstart](docs/GLM53_SPARK_MTP3_MESH_QUICKSTART.md) |
| [`sparkring-glm53-runtime`](https://github.com/users/FujitsuPolycom/packages/container/package/sparkring-glm53-runtime) | Pinned GLM-5.3 bases used to build serving images. | Use the digest named by the source-build guide. |
| [`gb10-vllm-serving`](https://github.com/users/FujitsuPolycom/packages/container/package/gb10-vllm-serving) | Profile-specific GB10 images, including DeepSeek. | Use the image named by the selected model quickstart. |

Expand All @@ -69,18 +69,24 @@ together. In the tables, 1M means 1,048,576 tokens.

### GLM-5.3 Flash

These three **DFlash2/SIRCL profiles** use the GLM-5.3 Flash NVFP4 target,
an external BF16 DFlash2 predictor at depth seven, FP8 KV, B12X kernels, and
the same ARM64 image. Target verification captures use rows 8 through 128 in
eight-row increments, covering full request batches from C1 through C16.
Choose native MTP3 with hardware-forwarded mesh for the NVFP4-Spark
checkpoint, or an external DFlash2 predictor with SIRCL for the NVFP4
checkpoint. Each quickstart supplies its own pinned image and setup steps.

| Profile | Deployment | Context | Seqs | Batch | KV / cache | Approx. recorded KV capacity | Start here |
|---|---|---:|---:|---:|---|---:|---|
| DCP1 | 4 Sparks · TP4/DCP1 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | ~1.30M tokens | [Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |
| DCP2 | 4 Sparks · TP4/DCP2 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | ~2.90M tokens | [Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |
| **DCP4 preferred** | **4 Sparks · TP4/DCP4** | **1M** | **16** | **8,192** | **FP8 · 24 GiB/rank; SparkCache enabled** | **~4.32M tokens** | **[Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md)** |
| **NVFP4-Spark · native MTP3 · mesh** (research-only) | **4 Sparks · TP4/DCP4** | **1M** | **16** | **8,192** | **FP8 · 24 GiB/rank; SparkCache enabled** | Reported at startup | **[Mesh quickstart](docs/GLM53_SPARK_MTP3_MESH_QUICKSTART.md)** |
| DFlash2/SIRCL · DCP1 | 4 Sparks · TP4/DCP1 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | ~1.30M tokens | [Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |
| DFlash2/SIRCL · DCP2 | 4 Sparks · TP4/DCP2 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | ~2.90M tokens | [Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |
| DFlash2/SIRCL · DCP4 (preferred DFlash2 profile) | 4 Sparks · TP4/DCP4 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | ~4.32M tokens | [Quickstart](docs/GLM53_JJ_R8_GB10_SPARKCACHE_TP4_QUICKSTART.md) |

All three default to 24 GiB of KV memory per rank. The reference capacities
#### DFlash2/SIRCL configuration

The three DFlash2 profiles use an external BF16 predictor at depth seven,
FP8 KV, B12X kernels, and the same ARM64 image. Target verification captures
use rows 8 through 128 in eight-row increments, covering C1 through C16.

All profiles above default to 24 GiB of KV memory per rank. The DFlash2 reference capacities
were measured at 26/30/24 GiB for DCP1/2/4 respectively; vLLM reports the
actual model-wide capacity at startup. That capacity is shared across requests.
**DCP4 is the preferred DFlash2 profile** and the documented asynchronous
Expand Down Expand Up @@ -109,16 +115,25 @@ for its terms. The native-MTP3 profile below does not require these weights.

### GLM-5.3 Flash Spark with native MTP3 and mesh transport

| Profile | Deployment | Context | Seqs | Batch | KV / cache | Start here |
|---|---|---:|---:|---:|---|---|
| NVFP4-Spark + native MTP3 + mesh · research-only | 4 Sparks · TP4/DCP4 | 1M | 16 | 8,192 | FP8 · 24 GiB/rank; SparkCache enabled | [Quickstart](docs/GLM53_SPARK_MTP3_MESH_QUICKSTART.md) |

This profile uses the NVFP4-Spark checkpoint's built-in three-token predictor;
no external draft checkpoint is required. It combines graph-native SIRCL for
no external draft checkpoint or DFlash model is required. A separate runtime-
NVFP4 proposal head uses BF16 activations while the target/verifier head retains
its BF16 checkpoint representation. The profile combines graph-native SIRCL for
selected decode shapes, dual-rail SIRCL for large prefill collectives, and
RoCEnante for selected small all-reduces. Target verification captures use
four-row increments through 64 rows.

The image composition uses CUDA 13.3, the native-MTP3 metadata port derived
from Local Inference Lab vLLM revision `3512b066`, and the complete B12X tree at
`ef308bac` with source-checked top-k selector files and vLLM integration based
on `a8c796f3`. Deferred weights own their storage, and draft/rejection sampling
uses independent randomness. The complete B12X update
also includes MoE and dense-precision work, so comparisons across different
compute configurations cannot attribute a gain to dense kernels alone. The
[head-specific comparison](performance/records/glm53-flash/spark-mtp3-nvfp4-proposal-head-20260905.md)
uses a control with the same CUDA version, B12X kernels, metadata reuse, and
dense-kernel integration; only the proposal-head configuration differs.

The [profile package](runtime/glm53-spark-mtp3-mesh/README.md) provides the
public image, transport files, and temperature-one warmup. The
[mesh service](runtime/glm53-spark-mtp3-mesh/MANAGED_MESH.md) sets up and
Expand Down Expand Up @@ -155,7 +170,7 @@ prompt. Each linked record gives its sampling, cache settings, and repeat counts

| Profile | Decode context | Prefill | C1 decode | C8 decode | Highest C at this context | Coding peak |
|---|---:|---:|---:|---:|---:|---:|
| [GLM-5.3 NVFP4-Spark · native MTP3 + mesh · 4 Sparks](performance/records/glm53-flash/spark-mtp3-mesh-20260905.md) | 8K | 2,703 (8K scout) | 48.2 | 168.8 | C16: 231.3 | — |
| [GLM-5.3 NVFP4-Spark · native MTP3 + NVFP4/BF16 proposal head + mesh · 4 Sparks](performance/records/glm53-flash/spark-mtp3-nvfp4-proposal-head-20260905.md) | 8K | 2,670 (8K scout mean) | 51.6 | 168.8 | C8: 168.8 | — |
| [GLM-5.3 NVFP4-Spark · DFlash2 exact request-batch graphs · 4 Sparks](performance/records/glm53-flash/dflash2-exact-concurrency-graphs-20260904.md) | 16K | 2,717 (16K scout) | 43.05 | 134.3 | C16: 187.0 | — |
| [GLM-5.3 NVFP4 · DFlash2/B12X-KDA DCP4 · 4 Sparks](performance/records/glm53-flash/b12x-kda-dcp4-20260903.md) | 16K | 2,649 (16K scout) | 37.97 | — | C4: 90.36 | — |
| [GLM-5.2 EXL3 3.5-bpw · 4 Sparks](performance/records/glm-3.5bpw/normalized-base-20260822.md) | 16K | 671 (16K) | 20.15 | 64.13 | C8: 64.13 | 25.39 |
Expand All @@ -164,11 +179,15 @@ prompt. Each linked record gives its sampling, cache settings, and repeat counts
| [Qwen3.8-27B EXL3 K5/K6 · 2 Sparks](performance/records/qwen38-27b/normalized-tp2-1m-probmtp-temp1-20260823.md) | 16K | 1,367 (16K) | 29.50 | 142.20 | C16: 184.39 | 39.95 |
| [Qwen3.8-27B EXL3 K5/K6 · 4 Sparks](performance/records/qwen38-27b/normalized-tp4-1m-probmtp-temp1-20260823.md) | 16K | 1,964 (16K) | 35.07 | 191.02 | C8: 191.02 | 48.46 |

The native-MTP3 mesh row uses one observation per cell with caching enabled.
Its [consolidated report](performance/records/glm53-flash/spark-mtp3-validation-summary-20260905.md)
also includes three-pass cold-prefix prefill results, the 32K/64K decode
matrices, Estonia **30/30** at C8, and **4/4** needle-hunt checks through
507,367 prompt tokens.
The native-MTP3 proposal-head row uses three observations per decode cell and
three prefill scouts per listed context. Relative to two shared-BF16-head
controls with the same compute composition, C1 changed by +8.22% raw output
throughput and +4.90% normalized sequence steps/s; C2/C4/C8 were mixed and
prefill was flat within 0.36%. The image-specific
[consolidated report](performance/records/glm53-flash/spark-mtp3-validation-summary-20260905.md)
retains the 32K/64K matrix, Estonia **30/30** at C8, and **4/4** needle-hunt
checks through 507,367 prompt tokens, with the image identity recorded for
each test.

See [benchmark results and throughput tables](docs/RESULTS.md) for full
matrices, sample counts, exact settings, and limitations.
Expand Down
31 changes: 28 additions & 3 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,17 @@ two compatibility patches. The public GLM-5.3 builder does not consume them;
its `NCCL_SWITCHLESS_RING_ONLY` parameter and diagnostics are an independent
SparkRing implementation.

## 3. vLLM (referenced and patched)
## 3. vLLM (referenced, patched, and selected source included)

`runtime/glm53-spark-mtp3-mesh/compute/vllm-compute-files.tar.gz` includes
24 vLLM Python files for GLM metadata reuse, dense-kernel integration,
the NVFP4 proposal head, deferred-weight ownership, and independent draft
and rejection-sampling randomness. The adjacent patch provides a readable diff;
`source-lock.json` records the base, donor revisions, and exact file hashes.
These files derive from Local Inference Lab's vLLM fork at `3512b066` and
`a8c796f3`, loader correction `17e341b9`, and independent-RNG backport
`44e6766e` from [PR 653](https://github.com/local-inference-lab/vllm/pull/653),
under Apache-2.0 with their contributor notices retained.

The unified diffs under `runtime/deepseek0731-gb10/patches/` contain context
and removed lines from vLLM, pinned to the source revision recorded by that
Expand Down Expand Up @@ -245,8 +255,10 @@ artifacts that are not distributed in this repository:
repository notices.

SparkRing records these identities and validates compatible image content; it
does not redistribute the model weights, vLLM source, or B12X model-kernel
package. The selected B12X communication source in Section 11 is included. Operators
does not include model weights or the complete vLLM/B12X source trees in this
Git repository. The selected vLLM files in Section 3 and B12X communication
source in Section 11 are included. Published runtime images contain the
pinned vLLM and B12X packages under their respective licenses. Operators
must obtain each artifact under its own terms. The exact operator-image
composition is in `runtime/glm53-flash-jj-r8-gb10/pins.json` and
`runtime/glm53-flash-jj-r8-gb10/glm53-dcp4-sircl-public-image-receipt.json`.
Expand Down Expand Up @@ -287,3 +299,16 @@ The native-MTP3 profile references
Operators must obtain and use that checkpoint under its own license and
notices. Native MTP uses its included prediction layer and does not require
an external DFlash checkpoint.

## 12. B12X selector source and MoE scale sharing

The native-MTP3 compute package downloads B12X revision
`ef308bac0f3b3eb8fea63e4013afc0c2ea1c6301`, including its shared native NVFP4
scales for A4/A16 MoE paths. Three selector Python files are included in
`runtime/glm53-spark-mtp3-mesh/compute/b12x-selector-files.tar.gz` from
[B12X PR 316](https://github.com/local-inference-lab/b12x/pull/316), revision
`9ac142824b4edb750892a0fb63d914230086495d`. They implement the top-k-512
candidate buffer, exact overflow handling, and omission of unused terminal
scores. These files are licensed under Apache-2.0; source notices are retained
and the downloaded B12X archive supplies the license. The compute source lock
binds the source archive and each base/result file hash.
Loading
Loading