Skip to content

[HLSL] Add I8/U8 LinAlg descriptor load/store tests - #9058

Merged
Jack Elliott (JoeCitizen) merged 1 commit into
microsoft:mainfrom
JoeCitizen:linalg-hlk-i8-descriptor-io
Oct 20, 2026
Merged

Jack Elliott (JoeCitizen) merged 1 commit into
microsoft:mainfrom
JoeCitizen:linalg-hlk-i8-descriptor-io

Conversation

@JoeCitizen

Copy link
Copy Markdown
Collaborator

The existing I8/U8 multiply tests load 8-bit matrices from descriptors, but no test stores one, and none use column-major or padded 8-bit layouts.

  • Byte-exact I8/U8 descriptor round trips at Wave (16x32, 32x16 B) and ThreadGroup (32x32 at 128 threads, 64x32 at 256 threads) scope.
  • Row-major, column-major and row-to-column variants, plus offset and padded-stride layouts. Every byte value appears, so the patterns include -128, -1, 0, 127 and 0, 127, 128, 255.
  • I8/U8 multiply into I32 with a column-major B at Wave and ThreadGroup scope.

All cases are gated on the construction and multiply capability queries. On current WARP the round trips fail through bounds-checked descriptor views (only the first quarter of the buffer is reached) and pass through root views; that's a WARP bug being reported separately.

Fixes #9057

The existing I8/U8 multiply tests load 8-bit matrices from descriptors, but
no test stores one, and none use column-major or padded 8-bit layouts.

- Byte-exact I8/U8 descriptor round trips at Wave (16x32, 32x16 B) and
  ThreadGroup (32x32 at 128 threads, 64x32 at 256 threads) scope.
- Row-major, column-major and row-to-column variants, plus offset and
  padded-stride layouts. Every byte value appears, so the patterns include
  -128, -1, 0, 127 and 0, 127, 128, 255.
- I8/U8 multiply into I32 with a column-major B at Wave and ThreadGroup
  scope.

All cases are gated on the construction and multiply capability queries.

Fixes microsoft#9057

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: f05f926c-8544-4ea3-87aa-307088e1622a
@JoeCitizen
Jack Elliott (JoeCitizen) marked this pull request as ready for review October 20, 2026 19:29
Copilot AI balanced review requested due to automatic review settings October 20, 2026 19:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Reported WARP descriptor-view failures need human confirmation of driver attribution and acceptance before merging.

No open issues 🎉

What changed in this PR

Adds I8/U8 LinAlg execution coverage for descriptor stores and layouts, addressing #9057.

Changes:

  • Adds byte-exact Wave and ThreadGroup descriptor round trips, including cross-layout and offset/padded cases.
  • Adds I8/U8-to-I32 multiplication tests with column-major B matrices.
  • Gates cases on construction and multiply capability queries.
File Description
tools/​clang/​unittests/​HLSLExec/​LinAlgTests.cpp Adds byte-layout helpers, descriptor round trips, and column-major multiply tests.

Review effort: Balanced

@jenatali

Copy link
Copy Markdown
Member

Reported WARP descriptor-view failures need human confirmation of driver attribution and acceptance before merging.

I've reviewed the proposed fix and yes, this is a WARP bug that needs to be fixed.

@damyanp Damyan Pepper (damyanp) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@JoeCitizen
Jack Elliott (JoeCitizen) merged commit c3a8532 into microsoft:main Oct 20, 2026
13 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in HLSL Roadmap Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

LinAlg exec tests: add I8/U8 descriptor store and layout coverage

4 participants