Repository navigation
experiment: retract the traversal attribution's headline, and say what it can show - #99
Merged
Merged
Conversation
…t it can show The first version of `src/bin/traversal.rs` rebuilt the case's operand layouts from the plan's *axis record* and swapped two axes of equal extent, which measured a different contraction: its plan folded the `m` group into two axes and ran in 11.6 ms, and the README published that as "a plan-level decision is worth 3.3x". Built from the harness's own `la`/`lb`/`lc`, the plan is identical to the campaign's on every recorded field (family, mr/nr, blocking, partition, alignment, and the same three `m` axes at A-strides (92160, 48, 1) with the contracted axis at 1920), so there is no plan difference to attribute: the headline is retracted in the README and in the binary's own header. What the corrected run shows, all four variants within 4% of each other (50.4-52.1 ms): the case's cost is not a property of the operand layouts either, so the "interleaved panel" story this binary was written to test does not hold for it. And it is 1.37x slower than the campaign's own run of the same case with the same plan (38.1 ms), which means the remaining difference is in the *execution path* - this binary calls `execute_slices`, which builds views per call, while the harness calls `execute_raw` on raw pointers - not in the plan and not in the layout. The honest state is therefore that this binary cannot attribute the case's cost yet, and the phase-share measurement it was written for has to be made on the harness's own path. Both files say so; the `residual` column is also marked as meaningless (it compares permuted buffers).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first version of
src/bin/traversal.rs(merged in #98) rebuilt the case's operand layouts from the campaign row's axis record. Twomaxes have the same extent, so my reconstruction swapped them and measured a different contraction — its plan foldedminto two axes and ran in 11.6 ms, and the README published that as "a plan-level traversal decision is worth 3.3×". That is wrong and is retracted here.What the corrected binary shows
Built from the harness's own
la/lb/lc(read from the sized case, not reconstructed), the plan is identical to the campaign's on every recorded field — familyavx512.f64.real.24x8, mr/nr 24/8, blocking 264/1536/256,StaticGrid{pm:0,pn:0},align_c_lines: false, and the same threemaxes atA-strides (92160, 48, 1) with the contracted axis at 1920. So there is no plan difference to attribute.corpus-a-corpus-dcorpus-a-compact-dcompact-a-corpus-dcompact-a-compact-dexecute_slices, which builds views per call, while the harness callsexecute_rawon raw pointers.Consequences
The honest state is that this binary cannot attribute the case's cost yet, and the phase-share measurement it was written for has to be made on the harness's own path. The README and the binary's header now say that, and the
residualcolumn is marked as meaningless (it compares differently permuted buffers).This also removes the basis of the "change the planner's axis ordering, it is worth 3.3×" proposal that was made on the strength of #98. The candidates that remain measured-and-excluded are unchanged: micro-kernel, blocking model, blocking values, orientation, partition, write-back mode, output alignment, row-block shape.