Repository navigation
Commit b31b709
committed
[ET-VK] Avoid the near-square local work group on Adreno
Adreno drivers miscompute the tiled GEMM family of shaders for 8x8x1 and
4x16x1 local work groups: entire work groups intermittently write garbage
while every other block is bit-exact. These shaders have no shared memory and
no barriers and their invocations are independent, so the result cannot
legitimately depend on the group shape.
Fix it in pick_xy_square_lwg, which all thirteen affected dispatches share:
linear, matmul, conv2d_gemm, the pointwise convs, SDPA and the quantized
variants. On Adreno use a 2:1 x:y shape, which yields 16x4x1 at the default 64
threads and is the cheapest correct shape measured; other vendors keep the
square shape.
Fixes #223271 parent c27baa8 commit b31b709
1 file changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
135 | 144 | | |
136 | 145 | | |
137 | 146 | | |
| |||
142 | 151 | | |
143 | 152 | | |
144 | 153 | | |
145 | | - | |
| 154 | + | |
| 155 | + | |
146 | 156 | | |
147 | 157 | | |
148 | 158 | | |
| |||
0 commit comments