docs(repro): fused roundtrip performance request - #1209
Conversation
VMI lowering analysis and fixThe repro records ASC/VMI ratios of 0.9475 (small FP32), 0.8064 (large BF16), and 0.8963 (wide BF16), below the 0.98 target. Important scope correction#1230 fixes a missing lowering capability and physical-layout correctness. It does not by itself make the current #1209 VMI fixture algorithmically identical to the ASC reference. The fixture still contains an explicit workaround: it widens the whole ASC instead reuses the already computed BF16 group maxima: What #1230 fixesThe direct VMI path required by that rewrite is: A compact
Alignment status
Validation for #1230
Fix PR: #1230. |
Current status: BF16 trick, precision, and amax UB pathI rechecked the latest PR head ( 1. BF16 trick is now expressible, but the full path is not yet equivalentThe ASC implementation relies on the BF16 bit representation: The refreshed VMI fixture spells out the same sequence. The integer widening is lowered to: The scale broadcast also lowers to However, the complete VMI amax path still has additional layout materialization around the group-slot store. Therefore this should be considered a lowering capability fix, not instruction-for-instruction parity with ASC. 2. VMI and ASC precision paths were not originally alignedThe original VMI fixture did not reuse the BF16 group maxima in the same way as ASC. It widened the full ASC instead reuses the BF16 group maxima: The refreshed VMI source is now much closer: it explicitly performs the BF16 bit trick on the reduced values. But end-to-end numerical equivalence is not established yet. In particular, BF16 rounding, clamp/scale-inverse computation, and tail behavior still need a numerical comparison against ASC. The simulator results below only validate generated instructions and timing; they do not prove precision equivalence. 3. VMI's amax UB round-trip is the remaining structural/performance issueThe VMI source currently does: ASC also stores the final amax to UB between phases, but its layout is row-oriented: the scale phase loads a contiguous 64-lane amax vector for the 8 tiles in a row. VMI materializes and reloads each tile's compact 8-slot group result separately. That difference causes the extra On the small Ascend950PR_9599 simulator case (3 rounds, 9 rows, 8 tiles per row): The VMI-specific amax-related overhead includes: The Conclusion / next step#1230 fixes the missing BF16 widening lowering and the compact group-slot physical-layout correctness. The current VMI fixture is therefore capable of expressing the ASC BF16 trick, but VMI is not yet algorithmically, numerically, or performance-equivalent to ASC. The next optimization should change the VMI dataflow/layout so that the reduced amax values are consumed in a row-level contiguous layout, avoiding the per-tile |
No description provided.