onnxruntime/js/web/lib/wasm/jsep/webgpu/ops
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
..
3rd-party [js/webgpu] Provide a naive vectorized matmul algorithm (#18758) 2023-12-13 09:03:23 -08:00
argminmax.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
attention.ts [js/web] JSEP Attention & MultiHeadAttention (#17742) 2023-11-17 12:23:52 -08:00
batch-norm.ts [js/webgpu] Add BatchNormalization Op (#18468) 2023-11-22 15:58:06 -08:00
bias-add.ts
bias-split-gelu.ts [JS/Web] Resize & BiasSplitGelu fp16 support (#18536) 2023-11-22 12:12:07 -08:00
binary-op.ts [js/webgpu] Optimize broadcast binary. (#18185) 2023-11-20 16:52:17 -08:00
common.ts [js/webgpu] Fix shader errors in indicesGet/Set when rank > 4 (#18661) 2023-12-01 15:35:35 -08:00
concat.ts [js/webgpu] Add uniforms support to concat op (#18238) 2023-11-10 13:46:03 -08:00
conv-grouped.ts [js/webgpu] Fix conv2d with activation (#18388) 2023-11-10 12:54:35 -08:00
conv-transpose.ts [js/webgpu] Use the naive convTranspose when in/out channels are both 1 (#18658) 2023-12-04 13:18:37 -08:00
conv.ts [js/webgpu] Provide a naive vectorized matmul algorithm (#18758) 2023-12-13 09:03:23 -08:00
cumsum.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
einsum.ts [JS/Web] Add uniforms to Einsum (#18531) 2023-11-29 15:30:33 -08:00
expand.ts [js/webgpu] add bool type for Expand/Gather (#18615) 2023-11-30 15:47:08 -08:00
fuse-utils.ts [js/webgpu] Fix conv2d with activation (#18388) 2023-11-10 12:54:35 -08:00
gather-elements.ts [JS/Web] AddedUniforms in GatherElements. (#18670) 2023-12-05 09:19:53 -08:00
gather.ts [js/webgpu] add bool type for Expand/Gather (#18615) 2023-11-30 15:47:08 -08:00
gemm.ts
instance-norm.ts
layer-norm.ts
matmul.ts [js/webgpu] Provide a naive vectorized matmul algorithm (#18758) 2023-12-13 09:03:23 -08:00
multi-head-attentiion.ts [js/web] JSEP Attention & MultiHeadAttention (#17742) 2023-11-17 12:23:52 -08:00
pad.ts [js/web] set noUnusedParameters to true and fix a few bugs (#18404) 2023-11-15 09:16:29 -08:00
pool.ts fix lint error (#18708) 2023-12-05 10:37:03 -08:00
range.ts
reduce-shared.ts [js/web] set noUnusedParameters to true and fix a few bugs (#18404) 2023-11-15 09:16:29 -08:00
reduce.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
resize.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
skip-layer-norm.ts
slice.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
softmax.ts [js/webgpu] Support uniform for softmax (#18345) 2023-11-09 11:19:23 -08:00
split.ts [JS/Web] Added uniforms to Reduce, Resize and Split Ops. (#18727) 2023-12-12 11:12:23 -08:00
tile.ts [JS/WebGPU] Added uniforms to Tile and Where Ops (#18768) 2023-12-11 20:58:52 -08:00
transpose.ts
unary-op.ts [js/web] unify resolve rules for "Clip" (#18527) 2023-11-20 23:18:06 -08:00
where.ts [JS/WebGPU] Added uniforms to Tile and Where Ops (#18768) 2023-12-11 20:58:52 -08:00