Correct the DCP4 owner-path evidence and document the no-overlap check - #269
Merged
Conversation
Add tp4-dcp4 and tp4-dcp4-sparkcache profile templates, contract entries, launcher case arms with a profile-name/DCP consistency guard, mesh renderer and cache-diagnostics allowlist entries, and a DCP-aware cache namespace. mHC owner rows stay 2,048 (rows split across the TP4 group; DCP does not re-split) per the R33 patch source. Templates and managed rendering are implemented; bounded GPU qualification on the four-Spark ring is pending.
The published R33 image bakes its entrypoint allowlist and profile contract. Add R33_PROFILE_CONTRACT_HOST_ROOT: when set with an R33 profile, the launcher bind-mounts the host's jovian-r33/profiles directory (and the matching entrypoint.py) read-only over the image copies, so DCP4 profiles can serve from the unchanged published image. The mounted contract keeps the image's artifact lock and mesh pins identities.
Mounting over /opt/sparkring/bin/sparkring-r33 breaks the in-image verify-candidate installed-file identity check. Mount the overlay entrypoint at /opt/sparkring/bin/sparkring-r33-overlay instead and select it as serving_entrypoint only when the contract overlay is active, so the baked entrypoint and its verified payload stay intact.
…rypoint The baked verify-candidate hashes the baked profile-contract files, which a mounted overlay supersedes. The overlay entrypoint now verifies every non-contract installed file against the in-image source lock itself when the overlay is active, and runs the unchanged baked verifier otherwise.
Record the bounded TP4/DCP4 qualification on the four-Spark ring serving from the unchanged published R33 image: exact answers, two 37K cold prefills, prefix reuse (36,352 cached tokens), mHC rows=8192 owner_rows=2048 on every rank, SparkCache page snapshots, 8K restore after a planned restart (50.6-54.8 ms) and after SIGKILL fault injection (51.9-57.7 ms), and 8,364,901-token KV capacity. Add the activation receipt, the performance record, the README DCP4 row with its KV footnote, the retired-mesh replacement pointer, and the profile-index row. The RoCEnante overlay arms at decode_context_parallel_size=4, so DCP4 activations require the managed fabric installation before launch.
…evidence, six-case prefix regression, cache-disabled observation, publication entry, reproduction guide
This was referenced Sep 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Follow-up to #265 (merged): the record claimed the DCP top-k owner-exchange machinery was proven active by the
full-CKV gatherlog line. Verified against the published image source: this build has no separate topk-to-owner exchange step — top-k runs over the all-gathered global CKV cache and per-token ownership is resolved arithmetically in_map_global_topk_to_gathered_ckv_kernel(owner = (tok // DCP_INTERLEAVE) % DCP_SIZE). The record now cites the verified chain (gate + all-gather + owner-mapping kernel) instead of implying a distinct exchange primitive.Also documents the fabric-overlap check on the measurement windows: only the four serving ranks ran on the hosts, the #260 DeepSeek cycle uses a separate physical ring, and the second fabric NIC byte counter was idle — no rerun required. publication.json record hash repinned.
Validation
pytest runtime/sparkring/jovian-r33/image/test_r33_image_contract.py runtime/sparkring/jovian-r33/profiles/test_profile_contract.py: 67 passed locally