Repository navigation
Interleave runtime collective startup measurements - #128
voipmonitor wants to merge 8 commits into
Conversation
Release tuning-only references before b12x performs terminal reclamation, so one full collection reclaims both ownership layers. Preserve collection after failed reclamation, borrowed-state restoration, and native drain order. The supervisor's 60 s shutdown bound and process protocol remain intact. Implemented and qualified on DeepSeek V4.1 TP4, concurrency 16, on frank2 GPUs 12-15. Paired with bounded FlashInfer candidate metadata, release took 15.8 s and export published gb202-tp4-202610281800. The 141 focused CPU tests cover cycles, failed eviction, retry, idempotence, and restoration ordering. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
Pin FlashInfer to the bounded-metadata and destination-batched collective implementation. Exercise static and runtime preparation in the TP4 fixture, capture startup dependencies, and derive the oracle from device selectors. Poison selectors before startup and retain both graph catalogs until native replay drains; verify rank agreement and stable selections across variants. Implemented coverage; 15 CPU checks and lock validation pass. GPU execution of the extended native fixture and complete model performance remain unqualified. The dependency's collective profile remains research-only pending those checks. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
c6208ed to
e44d424
Compare
Require all joint workspace and startup imports, account for pointer tables inside retained allocator backing, and reject unused two-shot imports. The runtime fixture previously required every allocated import even when no captured graph referenced its channel. Preserve exact expected/exported equality and report missing, extra, and retained-unused allocations. Reuse the identical seeded CPU operands across row capacities and capture epochs without changing any replay or numerical check. Qualified: 15 CPU checks, both runtime fixtures on host-bridge GPUs 0,4,8,12, and all four static/runtime fixtures on switched GPUs 12-15 on frank2. Startup selection, bytewise results, allocation stability, ownership, and native drain pass. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
Release tuning-only references before b12x performs terminal reclamation, so one full collection reclaims both ownership layers. Preserve collection after failed reclamation, borrowed-state restoration, and native drain order. The supervisor's 60 s shutdown bound and process protocol remain intact. Implemented; qualified with 97 focused CPU tests covering cycles, failed eviction, retry, idempotence, and restoration ordering. Isolated full-model release timing for this change on Flare eb71702 is not yet qualified. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
Capture every referenced reduction group in one startup graph, retaining its individual selector and status buffers. Aggregate failures in caller-owned storage while Helios keeps the existing zero/nonzero status contract. Loading reduced serving capacities still retains this producer and its workspace. Accept peer-write profiles with their rank and CTA constraints, and report native diagnostic counts by binding rather than by startup graph. Implemented; qualified with 166 focused CPU tests, the native diagnostic formatter test, captured aggregate-status replay, and both automatic-export GPU cases on SM120. Pin the validated FlashInfer tree published as 729464839; uv lock --check passes. Measured ladder additions, full-model throughput, and startup selection stability remain research-only. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
Use a writer-only test ladder with the packaged geometries, then check the selected protocol's epoch and barrier/completion state after native replay. This distinguishes serial and queued execution from a base transport with the same arithmetic. Retain bytewise output, allocation, exact peer-import, owner-lifetime, and drain checks. Implemented and qualified with 20 CPU checks and four GPU cases against FI 729464839: frank1 host bridges 8/10/12/14 and frank2 switched 12-15. These are correctness checks; serving performance remains unqualified. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
Capture the aggregate startup graph in the package graph pool and reject capture without package storage, preserving main's allocation ownership fix. Use main's terminal tuning-owner reclamation implementation and retain its restoration-failure coverage. Native tests check startup replay, package address bounds, and the executed peer-write protocols. Implemented and qualified with 169 focused CPU tests and six GPU cases against FI 729464839: automatic export and native writers on frank2 12-15, plus native writers on frank1 host bridges 8/10/12/14. Full-model performance and independent-start qualification remain pending. Design-Signed-Off-By: Codex GPT-6; design-review=1c01
|
Marked The proposed FlashInfer dependency PR #62 is still open. Resolve the startup-selection design and dependency together, then remeasure against main's startup-storage changes from #197. This is not a closure candidate solely because the reclamation work is complete. |
|
@voipmonitor GitHub reports that this PR has merge conflicts with Conflicting files:
Please update the branch against |
Collective startup tuning captures each reduction group separately, so a group's samples run consecutively instead of being separated by other prepared groups. To measure candidates across that broader execution sequence, the groups must share a startup graph while retaining independent selectors and failure checks.
This branch replaces per-group startup graphs with one graph that interleaves 21 sample passes across all required groups. Ignition captures it in the package graph pool, retains each group's selector and status, and publishes an aggregate status through caller-owned storage. Native loading keeps its zero-success/nonzero-failure contract; diagnostics count selector bindings. Reduced serving capacities retain the aggregate graph and its workspace. The ladder reader also admits destination-serialized profiles subject to FlashInfer's rank and CTA constraints. These changes depend on FlashInfer #62, pinned at
729464839, for the interleaved producer and serialized writers; that dependency must be resolved before this integration can merge. No native operation contract or shutdown deadline changes.The expected benefit is less dependence on consecutive samples of one collective group. A serving-throughput improvement is not qualified, and this PR remains research-only for performance. The companion kernel has a measured switched-fabric regression. FlashInfer #62 also displays a broader, unqualified comparison against its rewritten main history; the focused integration results below do not qualify that entire dependency diff.
Correctness qualification at Flare
c2310615, incorporating90b5c6d3, with FlashInfer729464839: 169 focused CPU checks and six GPU cases passed. Automatic export checks startup replay and device allocations within the package address window. Native TP4 writer fixtures passed on host-bridge-connected GPUs 8/10/12/14 and switched GPUs 12–15. Protocol counters and generation-tagged queue completion verify that the selected writer executes. Checks cover bytewise arithmetic, immutable selectors, allocation stability, peer-import reachability, retained owners, and native drain.The performance blocker is the companion
payload_rsagkernel, which performs payload reduce-scatter/all-gather. On switched RTX PRO 6000 SM120 TP4, BF16[31,5120], 512 threads and 64 active CTAs, sustained probes measured 12.244 → 14.552 µs p50 (+18.9%). The affected range is approximately 17–32 rows. Cases used at least two seconds of warmup and three seconds of timing with repeated upstream controls. The requested graphics clock was 3090 MHz; observed SM clocks were 2842–2910 MHz. The cause remains unresolved.The following whole-model measurements are upstream controls, not before/after results for this PR. Both runtime packages used FlashInfer
0b6178857:eb71702b, host bridges, GPUs 0/4/8/12eb71702b, switched, GPUs 12–1590b5c6d3, host bridges, GPUs 0/4/8/1290b5c6d3, switched, GPUs 12–15Conditions: prepared concurrency 16, fixed verification width 8, 64G prefix cache, two 30-second cells per concurrency, and unmodified boost clocks. Every row, including the static reference, used Engram weights on disk, scales in RAM, and a 4 GiB row cache. RAM-delivery comparisons are unqualified. Packages
gb202-tp4-202610290017andgb202-tp4-202610291301retained different complete kernel catalogs, so their difference cannot isolate one preparation change.For those two packages respectively, 81 startup groups took 6.96/6.66 s on host bridges and 4.12/3.74 s switched. Package
0017measured host-bridge C16 GPU intervals of 50.88/52.01 ms per round versus 39.62 ms for the static reference. Preparation resource release took 30.5/15.3 s, both within the unchanged 60 s deadline; package1301completed one full garbage collection per rank. Those release results qualify the upstream reclamation implementation, not a lifecycle change in this PR.Remaining gates are the companion regression, measured ladder additions, final native replay, full-model C1/C8/C16 qualification, three independent starts, and two independent exports. No throughput target is claimed as met.