Repository navigation
ci: collect native Linux host checks and guard exclusions - #2095
Conversation
|
Thanks @garvrao80, this is the shape we agreed on #2031, and the guards against stale exclusions and aliases are a good addition. One change so it can land green: please put the checks still red on main on the exclusion list, each with the reason "red on main, #2031" and the PR that fixes it, so each comes off when its fix lands. #2098 has already fixed two of the eight. Of the rest, the two source-pin checks ( |
|
@garvrao80, the two source pins are ours to settle. We'll re-baseline both to main's bytes in one reviewed commit that says no device re-qualification is claimed, and drop |
|
Thanks @garvrao80. CI changed under this PR today, so here's what it costs now and what's needed to land it. In short, it's worth having: it catches the 246 named steps CI never ran. With main's cache it costs a few minutes on most pull requests, and there are four asks. What it costsThese are measured on hosted Linux runners, with this PR's
The restored rows used main's cache with test passes reused, as #2274 makes CI do. They also predate the tool that stops C and C++ from recompiling, so both columns should come down a little. A cold The saved cache grows from 0.84 GB to 1.87 GB a save, against GitHub's 10 GB for the repository. That fits, but fewer main saves stay in the budget. What's needed
Once 1 and 2 are in and the trace is done, it can go in the landing queue. |
Refresh the dense CUDA file hashes and the gradient-serving manifest against that main commit's exact bytes. The dense launch-sequence identity still matches and is retained. Drop ck_experts.cu: the manifest itself records that Flash Next learning reads separate affine4 weights and adjoints, not that serving kernel. Retain every other entry, hash mode, existing note and approval. This is a source-identity baseline only. No Living Weights device re-qualification is claimed; the existing HELD obligations remain owed. No serving kernels, learner arithmetic or runtime defaults change. T520 / #2095. Both host pin steps are supplied unchanged and must pass in an idle permitted window before landing; device gates remain the lead's.
Refresh the dense CUDA file hashes and the gradient-serving manifest against that main commit's exact bytes. The dense launch-sequence identity still matches and is retained. Drop ck_experts.cu: the manifest itself records that Flash Next learning reads separate affine4 weights and adjoints, not that serving kernel. Retain every other entry, hash mode, existing note and approval. This is a source-identity baseline only. No Living Weights device re-qualification is claimed; the existing HELD obligations remain owed. No serving kernels, learner arithmetic or runtime defaults change. T520 / #2095. Both host pin steps are supplied unchanged and must pass in an idle permitted window before landing; device gates remain the lead's.
Refresh the dense CUDA file hashes and the gradient-serving manifest against that main commit's exact bytes. The dense launch-sequence identity still matches and is retained. Drop ck_experts.cu: the manifest itself records that Flash Next learning reads separate affine4 weights and adjoints, not that serving kernel. Retain every other entry, hash mode, existing note and approval. This is a source-identity baseline only. No Living Weights device re-qualification is claimed; the existing HELD obligations remain owed. No serving kernels, learner arithmetic or runtime defaults change. T520 / #2095. Both host pin steps are supplied unchanged and must pass in an idle permitted window before landing; device gates remain the lead's.
|
@garvrao80, an update on ask 3 (the file-read trace). It's settled on our side. We traced a cold So what's left is yours: ask 1 (the rebase) and ask 2 (guarding the two-minute |
45162da to
58bfb78
Compare
…an't see a name added since It walks zig, docs, tools and .github for names Windows can't check out. Those directory listings aren't inputs the build knows of, so since pull requests reuse main's test passes (#2274), a pull request that adds such a name would reuse the pass and stay green until main's own run. Found by tracing what every run in test-host opens (the review of #2095): of the runs the build can skip, this is the only one that reads tracked paths it doesn't declare; the others declare theirs in zig/build/test_reads.zig.
…an't see a name added since It walks zig, docs, tools and .github for names Windows can't check out. Those directory listings aren't inputs the build knows of, so since pull requests reuse main's test passes (#2274), a pull request that adds such a name would reuse the pass and stay green until main's own run. Found by tracing what every run in test-host opens (the review of #2095): of the runs the build can skip, this is the only one that reads tracked paths it doesn't declare; the others declare theirs in zig/build/test_reads.zig.
|
/atc exchange 4659daa814b96b2b72c65474fef9b39704cbe31fab546e38f616b4fc0a2a626f |
|
Thanks @garvrao80. Asks 1 and 2 are done: the branch is current with main, and the graph regression step skips when its inputs haven't changed. Two things landed on main today that affect this PR:
When that run is green, we'll compare its Linux job time with the nightly shard timings before landing it. |
|
Thanks @garvrao80, and thanks for the careful notes on each exclusion. The merge with main is in, and so are the guarded graph-regression step and the six restored checks. We went through this head's run. None of the three red marks is caused by this PR:
On the four exclusions you kept at
Please keep all four for now; we'll take each one off as its fix lands. The two timing exclusions at Nothing more is needed from you on the code. We'll fix the two red checks on main first. Then please merge main once more (or tell us and we'll do it), and we'll rerun CI and compare the Linux job time with the nightly shards, as planned. If it's green, it goes into the landing queue. |
|
@garvrao80 both red checks were main's, and both are fixed there now: #2738 re-pinned the serving fixtures and #2731 fixed the sessions-writes load. I've merged main into your branch as we offered (
|
|
Thanks @garvrao80, this did exactly what it's for on its first train tonight:
|
77d428f to
26ae3a2
Compare
|
Thank you @garvrao80. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes. |
What this changes
Linux no-GPU CI runs
zig build -Dfixed-cpu test-host --test-timeout 20mto collect named host tests and compile checks. The build graph rejects empty named checks, stale exclusions, and aliases that bring excluded work back. The graph regression suite runs when any of its three inputs changes or Git cannot resolve a comparison base.The previous Linux job reached its one-hour cap while running the 100,000-state startup benchmark. The two large-state timing commands stay available for explicit runs. The startup corpus, startup-scale test, smaller cache-index timing check, and Linux nightly shard steps remain in the per-PR graph.
e5b2d7dd507c83d140fdcc07f9dec56ea34ef39e, merged into the published branch.atc overlap --json: incomplete (pullFilesUnavailable,timeLimit). The GitHub inventory checked 185 open PRs and 26 overlaps with zero new conflicts. The reported lfm3 CUDA: serve the block FP8 export weight-only and the MLX 4-bit export as stored (stacked on #1508) #1634 conflict is identical on main and this branch.Reviewed exclusions
test-startup-states-timingandtest-imprint-ops-timingseed up to 100,000 states and run fresh processes for timing. The graph omits 78 benchmark invocations while still reaching the shared corpus check.test-metal-residency-owners-hostreproduces the hosted crash on untouched Linux main. The recording runner leaveskvunset, so residency attempts to use an invalid buffer. Settingr.kv = nullin an isolated test copy gives 63 passes and 2 skips.test-qwen35-draft-frame-hostandtest-qwen35-frame-invalidation-hoststill abort on main in the recording fixture atzig/src/cuda/affine4_kernels.zig:249. The fixture leavesseg_fnunset.test-gradient-servingstill reports a reviewed-source mismatch inzig/kernels/cuda/flashnext_hc.cuon main.The six checks restored after #2527 and #2550 remain in the graph.
test-sessions-writes-hostremains reachable through the Linux DeepSeek shard. Its real-file readback test still fails on untouched Linux main (2 passed, 1 failed), matching main's nightly shard.Checks on this head
7b7e1118081c0bde74ac860ad2e32e8a5b45220a.python3 tools/zig/lean_check.py: 386 findings on base and head, 0 new.zig fmt --check build.zig zigandgit diff --checkpassed.zig build -Dfixed-cpu test-startup-states-corpus-host test-cache-index-timing test-qwen35-live-host -j4 --test-timeout 10m --seed=0xece1bd70 --summary allpassed 11/11 build steps and 26/26 tests.Receipt
n/a for inference. This changes build graph collection, Linux CI, contributor guidance and the graph regression fixture. Local checks use Zig 0.17.0 on Linux x86_64 (WSL).
Checklist