onnxruntime/js/web/lib/wasm/jsep/webgpu
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
..
ops [js/webgpu] Provide a naive vectorized matmul algorithm (#18758) 2023-12-13 09:03:23 -08:00
attribute-with-cache-key.ts [js] optimize eslint config (#18460) 2023-11-20 12:00:56 -08:00
gpu-data-manager.ts [js/webgpu] support using uniform buffer (#17803) 2023-10-10 00:31:12 -07:00
op-resolve-rules.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
program-manager.ts [js/webgpu] allow to specify callback for profiling data (#18732) 2023-12-07 14:10:28 -08:00
types.ts [js/webgpu] revise uniform support (#17871) 2023-10-11 16:41:46 -07:00