onnxruntime/js/web/lib/wasm/jsep/webgpu/ops/3rd-party
Jiajia Qin b30e721dc8
[js/webgpu] Provide a naive vectorized matmul algorithm (#18758)
### Description
This PR provided a vectorized matmul algorithm. In most situations, we
still go to the workgroup memory optimized matmul. But for some
situations, like N and K are very small, using workgroup optimized
matmul can't fully utilize the underlying hardware due to the 32x32 tile
size. So for very small N/K, we switch to the naive vectorized matmul
algorithm to improve the hardware execution unit usage.

With this PR, matmul with input0: [1, 36864, 3], input1: [1, 3, 3],
input2: [3] becomes less than 1 ms from 4.34 ms on Intel Gen9 GPUs.
2023-12-13 09:03:23 -08:00
..
activation_util.ts [js/webgpu] Fix conv2d with activation (#18388) 2023-11-10 12:54:35 -08:00
conv2d_mm_webgpu.ts [js/web] Fix conv2dMatmul errors due to #18452 (#18562) 2023-11-27 21:21:47 -08:00
conv_backprop_mm_webgpu.ts [js/webgpu] Refactor matmul conv to support uniforms for matmul (#18452) 2023-11-22 14:42:55 -08:00
conv_backprop_webgpu.ts
conv_util.ts [js/webgpu] Refactor matmul conv to support uniforms for matmul (#18452) 2023-11-22 14:42:55 -08:00
matmul_packed_webgpu.ts [js/webgpu] Provide a naive vectorized matmul algorithm (#18758) 2023-12-13 09:03:23 -08:00