Repository navigation
tests: tf-tp-check, the mixed-TP gate over rank dumps, as its own tool (#1236) - #2321
ThinkOffApp wants to merge 2 commits into
Conversation
|
Thanks @ThinkOffApp. This is the shape we agreed on #1236: its own tool under
Could you paste the Windows and Linux CI results once they finish? This is the first time One thing for step 2, not this PR: the dense mode's writer will live in engine code, and engine code shouldn't |
ashhart#1236) As agreed on ashhart#1236: a tool under zig/tests/ with its own build target. It reads fabric/ without changing it, and it enables no mode. `tf-tp-check reference`, `repeat` and `agree` check rules 1, 2 and 4 over each rank's dumps. It reads dump versions 1, 2 and 3. Version 2 adds phases, and version 3 adds canonical bootstrap. The parser refuses foreign magic, unknown versions, cut files and phase bytes a version does not allow. Outside the new files, this adds one line to build.zig and makes zig/build/tp.zig's runtime() public.
|
Thank you @ashhart! All four are done on the new head. The first three each have a test that fails without the change.
CHANGELOG line added, in your wording. CI on the previous head, all green: Noted on the format moving beside the writer in step 2. |
c7c7385 to
d334c45
Compare
|
The new head d334c45 is up, on main at 53311e7, and CI passed on all seven jobs. zig (Linux), 15m19s: zig build test, test-kernel-contract, test-golden, test-server-security test-pull-security, fuzz-cortheon and the NFKD generator tests all passed. Two things I should have put more plainly in my last comment: In Zig 0.17, File.readPositionalAll has no per-read cap of its own. It loops on readPositional with whatever is left of the buffer. The loader calls it in 8 MiB pieces. As one call over the whole 2 GiB + 17 byte file, the sparse test fails on this Mac, and only the read size differs, since the buffer is allocated once either way. So the loader stays. |
|
/atc exchange f312be89192aae591dc3d1d95c10f1fd2dcfbd7577f518f06a7bc0ffc5df7759 |
What this changes
Before, nothing in the tree could check the dumps a mixed-TP run writes. This adds
tf-tp-check, a tool underzig/tests/with its own build target, as agreed on #1236.tf-tp-check reference,repeatandagreecheck rules 1, 2 and 4 over each rank's dumps. It readsfabric/without changing it, and it enables no mode.atc overlap --json: run on this head against main at 53311e7. ATC marks 4 open pull requests as conflicting, 6 clean and 78 unknown, and reports the scan as incomplete (otherPullRequestsLimit,pullFilesLimit,pullFilesUnavailable,timeLimit). The 4 are gemma4 Metal: Gemma 4 E4B (NVIDIA Nemotron 3.5 Bolt E4B) on M1 to M4, per-layer inputs and shared KV #2273, gfx12 WMMA dense tile: 64-deep swizzled K step, LDS-only barrier (same bytes) #2280, core: Gemma 4 and Qwen 3.5 on CUDA load with direct reads, 28-31 % faster cold; Flash Next shares the read-ahead #2282 and profile: register the pool-page switches for Dory, Gemma 4, Spark2.5 and Nemotron's Metal paging #2306, one file each. From their file lists, the only path this PR shares with them isCHANGELOG.md.Checks on this head
python3 tools/zig/lean_check.py, on the base and on this head: 252 and 252, all inherited, 0 new.zig build test-tp-check: 28 passed, 0 failed.zig build test test-golden: 723 of 723 steps succeeded. 6,629 passed, 67 skipped, 0 failed.zig fmt --check build.zig zig/build zig/tests/tp_check*.zigandgit diff --check: both clean.zig build tf-tp-check -Dtarget=aarch64-linux-gnuand-Dtarget=x86_64-linux-gnu: both build. The start on a GB10 was on the previous head and was not repeated.zig build dev-tools, because no API thetf-*tools call changed. The checks over a live run on this head, because nothing on main writes these dumps yet. The dense mode adds that writer.Receipt
n/a: this tool reads files and cannot reach inference, and no serving path, kernel or arithmetic changes. Outside the new files, this adds one line to
build.zigand makesruntime()inzig/build/tp.zigpublic.The host evidence for the tool itself:
reference,repeatandagree, with exit 0 and exit 1, and dump versions 1 and 3. A second person replayed all 84 and rehashed the dumps.Limits:
Checklist
The inference checklist does not apply: the Receipt is n/a.