Skip to content

Not-For-Review: Offline autotuner for the Intel subgroup-matrix MatMul#29610

Closed
jchen10 wants to merge 3 commits into
microsoft:mainfrom
jchen10:sgmm_up_tuner
Closed

Not-For-Review: Offline autotuner for the Intel subgroup-matrix MatMul#29610
jchen10 wants to merge 3 commits into
microsoft:mainfrom
jchen10:sgmm_up_tuner

Conversation

@jchen10

@jchen10 jchen10 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Used by: The #29592

jchen10 added 3 commits July 7, 2026 13:46
- Add an Intel-specific F16 MatMul path built on the 8x16x16
subgroup-matrix config (Xe2/Xe3). A and B are loaded directly from
global memory with no prepacking, and results are written through
workgroup scratch with bounds-checked stores, so M and N may be any
size while only K must be a multiple of 16. The impl is created in
MatMul::PrePackInternal and dispatched from Compute when the device
reports the required config.
- The tile shape and split-K factor are chosen per call rather than
fixed: TileM in {8,16,32,64}, TileN in {16,32,64}, and split-K to top
up occupancy, sized to the device's resident subgroups. The WGSL kernel
is parameterized by sg_mat_count_m/n and split_k, emitting the needed
subgroup-matrix accumulators via generation-time guards.
- An optional offline-tuned config table (generated from an autotuner
sweep) can override the heuristic; selection precedence is tuned table
> heuristic.
- Adds MatMul subgroup-matrix unit tests covering tile selections and partial/large non-aligned dims.
@jchen10 jchen10 closed this Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant