Skip to content

train 1107060041: #2418 #2387 #2388 #2420 #2163 (CI only) - #2424

Closed
ashhart wants to merge 13 commits into
mainfrom
lead/train-1107060041
Closed

ashhart wants to merge 13 commits into
mainfrom
lead/train-1107060041

Conversation

@ashhart

@ashhart ashhart commented Nov 7, 2026

Copy link
Copy Markdown
Owner

CI for a landing train: #2418 #2387 #2388 #2420 #2163 stacked on main in that order. Nothing merges from this PR: each PR above lands on its own once this tip is green, and this PR is then closed.

ashhart and others added 13 commits November 7, 2026 06:00
Step: test-qwen-serving-host. Old pins: e166f3f. New base: 063d881 (origin/main).
Sets the five kernel hashes (experts.cu, experts_pack.cu, experts_prefill.cu, qmm_group.cu,
qmm_prefill.cu), the qmm_group prefix and the launch-sequence hash to 063d881's bytes.
The prefix is now group[0..16095]: line 1 lost 37 bytes and the rest is byte-equal, so it
covers the same text e166f3f's group[0..16132] did. No code changes; 2/2 tests pass.

Recorded, as merged and reviewed:
- #2229 (3d4f6aa): a prompt chunk's last layer runs q, attention, gate, o and the MLP over
  its last 128 rows (the launch-sequence pin).
- efdf28f, fcb1529, f3bcb78, ecef17d, 2ebc3c2, 42d3461 (lean, no PR number in the
  history): line-1 comments of the five kernel files only.
Step: test-gradient-serving. Old pins: e166f3f. New base: 063d881 (origin/main).
Sets the hash of the 46 changed entries in gradient-serving.tsv to 063d881's bytes; paths,
modes (all raw) and note columns are unchanged. pocket-serving-approved.tsv needs no edit: its
entries for these files have prefix 0, so they never read the manifest hash. No code changes;
1/1 test passes.

Recorded, as merged and reviewed:
- #1784 (cf63ff6): Flash Next at --tp 2 splits dense output columns with exact FP32 gathers.
- #1784 (cde4fe7): the BF16 prompt tile folds a pinned (cut) weight's whole K-slice order.
- #1942 (15f118a): a shared round's DeltaNet steps run as one launch over its lanes.
- #1792 (52b9f90): the whole shared expert's down writes straight into its output slot.
- #2160 (a54748a): beside another open stream a greedy chain stops at 0.6 a draft; wide
  rounds draft 6 deep.
- #2246 (4294752): at --parallel 1 on one GPU a prompt pass takes 8,192 rows.
- #2214 (e4d7f13): kept prompt states with drafts across ranks.
- #2230 (1f2c993): Gemma 4's PLE kernel in its own image; controls and blob constant.
- #2103 (a3962b4, 194115d): synchronous downloads stage through a pinned bounce, on
  integrated devices only, and the bounce counts in memory use.
- #2289 (e9ee738): the remaining synchronous readbacks use that staging; close() releases it.
- #2127 (b2c277a): the lane host's KV ledger counts the paged pool's promises.
- 4fb2f65, 60d80da, 8cc6ac4, 36a87df, 41ff25d, efdf28f, fcb1529, f3bcb78,
  ecef17d, 2ebc3c2, 42d3461, a86c31c, 1913a46, 80218cd: comments, verbatim moves,
  test-block imports, exports, and opt-in or off-by-default paths only.
files: prefill_attention.cu (new constexpr P256 and IDS flags, false in every existing kernel),
prefill_attention_rows.cuh (the 256-position page items and their page lookup) and cuda/abi.zig
(memory_type_host). Its review and device runs were done before it landed, so the pins take main's bytes.
…ER and swapped red and blue

The render flags were 0x01 | 0x10, commented as FPDF_ANNOT | FPDF_PRINTING, but in PDFium 0x10 is
FPDF_REVERSE_BYTE_ORDER (FPDF_PRINTING is 0x800). PDFium then wrote RGBA, which the JPEG encoder reads
as BGRA, so every rendered page reached the vision tower with red and blue swapped (#2386). The flags
are one named constant for both render calls, pinned by a test.
…t its context

The rows store's write worker had a fixed 1 GiB permit, and a save whose new bytes passed it was skipped with
StagingFull. At about 65 KB a token, a 27B conversation whose first save or post-compaction prompt held more than
about 13K new tokens was never written, nor any later save of it. rows.Options.longest sizes the permit to one state
of that many tokens with no rows on disk (coldCharge), never under the 1 GiB floor nor past the RAM store's budget;
the 27B host passes its --context. Other hosts keep 1 GiB.
zig/build/cuda.zig was at the 600-line limit, so every new CUDA hook had
to move lines out first. Two contiguous groups of host-test registrations
from hostTests move verbatim, each behind one pub fn called once from
where the group stood, so steps and dependencies register in the same
order:

- cuda_contract_host.zig steps(): the CPU contract references (Flash Next
  writeback, utility, row-best and QSA; cuda_row_contracts and
  cuda_window_host hooks; FP64 quant and projection fixtures).
- cuda_server_host.zig steps(): the HTTP server's host tests over
  server_tests, through test-server-cpu and the off-macOS goldens and
  fuzz step; it returns template and server_tests for the tests after it.

All 134 moved lines and the golden.zig import are byte-identical; the
new parameters keep the old variable names. cuda.zig: 600 -> 467 lines.
zig build -l is unchanged (empty diff) by default, with -Dhip=true and
for x86_64/aarch64 Linux and x86_64 Windows targets.
@ashhart

ashhart commented Nov 7, 2026

Copy link
Copy Markdown
Owner Author

Stopped at #2388.

@ashhart ashhart closed this Nov 7, 2026
@ashhart
ashhart deleted the lead/train-1107060041 branch November 7, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants