Repository navigation
[rocjitsu] Align CDNA5 BF16 WMMA accumulation - #13837
Merged
Merged
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
Accumulate the 32 BF16 products before adding FP32 C in both the F32 and BF16F32 16x16x32 forms. Keep the mixed form's final BF16 conversion. Use the same grouping in scalar and SIMD execution. This preserves the small incoming C value when large products cancel, fixing the reported Triton test_scaled_dot numerical failure. Extend the decoded regression to both forms, including modifiers, inline constants and overlapping register tuples. Update the overflow case for the dot being rounded before C is added. The grouping is a consistent simulator policy. It does not establish the accumulation order used by physical CDNA5 hardware.
kuhar
force-pushed
the
users/kuhar/cdna5-wmma-accumulation
branch
from
October 20, 2026 20:06
4a6e312 to
2114d2a
Compare
atgutier
approved these changes
Oct 20, 2026
This was referenced Oct 21, 2026
Contributor
TheRock Submodule Bump ActivityNewest first
|
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.
Triton's
test_scaled_dot[128-64-128-True-False-False-e2m1-e4m3-4-16-1]fails on simulated gfx1250 at(111, 35): the scaled-dot kernel returns0.0126953125, while the hipBLASLt reference returns0.01171875. Large cancelling BF16 products discard the small incoming C value in the reference's dense WMMA instruction.Accumulate the 32 BF16 products before adding FP32 C in both
v_wmma_f32_16x16x32_bf16andv_wmma_bf16f32_16x16x32_bf16, in scalar and SIMD execution. Retain the mixed form's final BF16 conversion. This fixes the Triton numerical failure and gives the two forms a consistent accumulation policy; it does not establish the actual accumulation order on physical CDNA5 hardware.Extend the decoded cancellation regression to both forms, covering C modifiers, inline constants, and overlapping register tuples. Update the overflow regression: a dot that overflows before C is added remains infinite. The grouping is a modeling choice, not a general improvement in mathematical accuracy.
Related report: ROCm/rocm-systems#13082
Validation:
Issue: #13082