Repository navigation
fconst19_measure: tolerate, report and skip a 1.9 tail that is LARGER than its 1.8 twin's (refs #1740) - #1755
Conversation
… than its 1.8 twin's (refs #1740) The tool refused any pair whose tails differ in length -- and on the 1.9 line that happens whenever the pack carries more in its tail than its 1.8 twin does, which is the `hidden 1536` geometry (engine#1740): Qwen-2.5_1.5B_Instruct 1.9 tail 262,147,136 B vs 1.8 tail 134,314,560 B Qwen2.5-Coder-1.5B-Instruct 1.9 tail same shape, same ~15 % content residual and the 1.8 figure there is exactly `attn_payload_off(1536) 3,136 + 2374 x attn_tile_bytes(1536) 56,576`, i.e. the twin's tail **is** the head while the 1.9 tail is the head plus more. The rule the tool measures describes the LAYER BLOCKS, so a larger tail is not a layout disagreement: the surplus is now reported and left out of the comparison instead of aborting the run before anything is measured. A 1.9 tail *shorter* than its twin's is still refused -- that direction means the files genuinely disagree. No change for the pairs that already verify: on the 0.5B pair the surplus is 0 and the row is unchanged {896, 14, 24, 1856, 8, 1, 69632}, measured with this patch in place. What the patch buys is a diagnosable failure instead of a bare refusal: with it, both `hidden 1536` pairs report a ~131.5 MB residual (15.2 %) that is invariant across every candidate, which is the evidence #1740 now rests on -- those 1.9 builds are not header-only repacks of their twins. Verified: the 0.5B pair still produces its row (above); the two 1536 pairs now report residuals instead of aborting; `tools/copyright.py --check` rc 0 with the tree staged; `git add <paths>` only; host-side, no device.
|
VERDICT: READY at It clears the right blocker. On (1.8 build already on this box, 1.9 pack's Token — which is what I hit on #1503 and why I could not produce a row for But the pair still does not measure, and the numbers say why: The surplus this PR quotes for that pair is Two smaller notes:
Scope of my check, stated: fetched the 1.9 pack's |
|
Corrected repost — the previous comment was mangled by an unquoted heredoc (a backticked pack name ran as a command), so one paragraph lost its text. The substance is unchanged; this is the readable version. VERDICT: READY at It clears the right blocker. On Qwen-2.5-1.5B (1.8 build already on this box, 1.9 Token — which is what I hit on #1503 and why I could not produce a row for But the pair still does not measure, and the numbers say why: The surplus this PR quotes for that pair is Two smaller notes:
Scope of my check, stated: fetched the 1.9 pack's |
…ule, main's version wins `tools/fconst19_measure.py` conflicted twice, and in both cases main's (#1755) side is strictly better than this branch's, so it is taken: * **the tail rule**: this branch tolerated a differing tail in either direction; main's refuses when the 1.9 tail is SHORTER than its twin's (`the files disagree`) and reports when it carries more. A shorter tail is a real disagreement, so main's direction-aware rule is the correct one. * **the comparison**: main trims the 1.9 file to its twin's tail (`b_cmp`, with `surplus` reported in the note) and compares the whole trimmed file, which is simpler than this branch's `cmp_len` over the layer blocks. This branch's `cmp_len` spelling is removed accordingly. The residual output is unchanged for a byte-exact pair: `// verified: byte for byte (291653952 B)`. Verified on the merged tree: `tools/fconst19_measure.py` reproduces the 0.5B row byte-for-byte, its own three cases pass, the importer suite passes, and `npu-pack import` on the Coder pack still lands its 339 tensors.
The tool refused any pair whose tails differ in length, and on the 1.9 line that happens whenever the pack carries more in its tail than its 1.8 twin — which is the
hidden 1536geometry (engine#1740):and the 1.8 figure is exactly
attn_payload_off(1536) 3,136 + 2374 × attn_tile_bytes(1536) 56,576— i.e. the twin's tail is the head, while the 1.9 tail is the head plus more.The rule the tool measures describes the layer blocks, so a larger tail is not a layout disagreement. The surplus is now reported and excluded from the comparison instead of aborting the run before anything is measured. A 1.9 tail shorter than its twin's is still refused — that direction means the files genuinely disagree.
No change for the pairs that already verify
On the 0.5B pair the surplus is 0 and the row is unchanged, measured with this patch in place:
What it buys
A diagnosable failure instead of a bare refusal. With it, both
hidden 1536pairs report a ~131.5 MB residual (15.2 %) that is invariant across every candidate — 130× above the mildest wrong rule the tool probes — which is the evidence #1740 now rests on: those 1.9 builds are not header-only repacks of their twins, so no rule can be derived from the pair and the rotation cannot be inferred here.Verified: 0.5B pair still produces its row; both 1536 pairs now report residuals instead of aborting;
tools/copyright.py --checkrc 0 with the tree staged;git add <paths>only; host-side, no device.