Repository navigation
[HLSL] Extend LinAlg exec test shapes and types - #9048
Open
Jack Elliott (JoeCitizen) wants to merge 1 commit into
Open
Jack Elliott (JoeCitizen) wants to merge 1 commit into
Jack Elliott (JoeCitizen) wants to merge 1 commit into
Conversation
Several LinAlg exec checks only ran at shapes below the usual native tile size, and Tier 1 I8/U8 support had little or no coverage. This adds tests at native granularity and fills the I8/U8 gaps. - Wave F16 multiply at 16x16x8, and I8/U8 to I32 at 16x32x8 and 32x32x32. - ThreadGroup multiply and load/store at fixed 128 and 256 thread groups. I8/U8 use 32x32x32 at 128 threads so K stays at 32. - F32 element access, layout round trips and I32/F32 contention on 16x16 and 16x32 accumulators, plus F32 accumulator to F16 A/B casts. - WaveScaled ThreadGroup load/store now sweeps group sizes. - Mandatory I8/U8 vector Convert tests: saturation, rounding, inf/NaN, a partial last word, and Convert feeding a MatVec. Fixes microsoft#9047 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f05f926c-8544-4ea3-87aa-307088e1622a
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
Static review found no blocking issues in the test-only changes, capability gating, or expected-result checks.
No open issues 🎉
What changed in this PR
Expands LinAlg execution coverage to address #9047, using hardware-relevant shapes and covering required I8/U8 conversions.
Changes:
- Adds capability-gated Wave and fixed-size ThreadGroup matrix tests.
- Extends F32 element access, layout, contention, and cast coverage.
- Adds packed-byte conversion edge cases and Convert-to-MatVec tests.
| File | Description |
|---|---|
| tools/clang/unittests/HLSLExec/LinAlgTests.cpp | Extends test shapes, types, conversion checks, and supporting helpers. |
Review effort: Balanced
Damyan Pepper (damyanp)
requested review from
Ashley Coleman (V-FEXrt) and
Alex Sepkowski (alsepkow)
October 19, 2026 20:13
Ashley Coleman (V-FEXrt)
approved these changes
Oct 20, 2026
This branch has not been deployed
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.
Several LinAlg exec checks only ran at shapes below the usual native tile size, and Tier 1 I8/U8 support had little or no coverage. This adds tests at native granularity and fills the I8/U8 gaps.
All new matmul cases stay capability gated. Tested on WARP built from current Direct3D main: all new cases pass except the two I32 contention cases, which skip because I32 atomic accumulate isn't advertised.
Fixes #9047