onnxruntime/js/web/lib/wasm/jsep/webgpu/ops
Jiajia Qin 7be006c466
[js/webgpu] Optimize convtranspose (#23302)
### Description
<!-- Describe your changes. -->
BUG #23273

With this change, I see the convTranspose time in that bug becomes ~7s
from ~90s on my Meteor Lake.

This PR does below things:
1. Use stride to update the increasement in the loop.
In the bug, the stride is 1024, which can greatly reduce the loop times.
2. Support components for A to reduce the memory access times.
3. When output channels is 1, the b components can be same with A to
further reduce the memory access times.
2025-01-09 11:24:42 -08:00
..
3rd-party [js/webgpu] Optimize convtranspose (#23302) 2025-01-09 11:24:42 -08:00
argminmax.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
attention.ts [JS/WebGPU] GroupQueryAttention rewrite (#20946) 2024-10-23 10:14:09 -07:00
batch-norm.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
bias-add.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
bias-split-gelu.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
binary-op.ts [JS/WebGPU] Support WASM64 (#21836) 2024-10-24 20:21:51 -07:00
common.ts [js/webgpu] Add scatterND (#22755) 2024-11-13 09:13:00 -08:00
concat.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
conv-grouped.ts [js/webgpu] Optimize grouped conv (#21892) 2024-09-04 17:16:35 -07:00
conv-transpose.ts [js/webgpu] Optimize ConvTranspose (#22774) 2024-11-12 12:37:07 -08:00
conv.ts WebGPU JSEP: Make shader code not depend on input broadcasting patterns (#22536) 2024-11-08 11:00:51 -08:00
cumsum.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
depth-to-space.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
einsum.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
expand.ts [js/webgpu] Optimize Expand (#22752) 2024-11-12 12:37:19 -08:00
fast-gelu.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
fuse-utils.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
gather-block-quantized.ts [JS/WebGPU] Add GatherBlockQuantized op support (#21734) 2024-08-26 14:46:04 -07:00
gather-elements.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
gather-nd.ts [js/webgpu] Add GatherND (#22847) 2024-12-04 09:57:32 -08:00
gather.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
gemm.ts [js/webgpu] Optimize Gemm (#22706) 2024-11-04 15:05:21 -08:00
grid-sample.ts [js/webgpu] support GridSample operator (#22652) 2024-11-08 11:02:36 -08:00
group-query-attention.ts [JSEP/WebGPU] Add a fatal error message for unsupported GQA do_rotary attribute. (#23287) 2025-01-09 08:52:17 -08:00
instance-norm.ts [js/webgpu] Optimize InstanceNorm in some shapes (#22637) 2024-10-29 17:10:14 -07:00
layer-norm.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
matmul-shaders.ts WebGPU JSEP: Make shader code not depend on input broadcasting patterns (#22536) 2024-11-08 11:00:51 -08:00
matmul.ts WebGPU JSEP: Make shader code not depend on input broadcasting patterns (#22536) 2024-11-08 11:00:51 -08:00
matmulnbits.ts [js/webgpu] Optimize matmulnbits (#22360) 2024-10-14 15:49:29 -07:00
multihead-attention.ts [JS/WebGPU] GroupQueryAttention rewrite (#20946) 2024-10-23 10:14:09 -07:00
pad.ts [js/webgpu] Enable pad f16 uniform (#21691) 2024-08-26 07:58:48 -07:00
pool.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
quantize-linear.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
range.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
reduce-shared.ts [js/webgpu] Increase workgroupSize if only one workgroup is dispached (#22709) 2024-11-05 13:13:52 -08:00
reduce.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
resize.ts [JS/WebGPU] Fixed bugs in inputs validation of Resize (#21955) 2024-10-04 18:29:53 -07:00
rotary-embedding.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
scatter-nd.ts [js/webgpu] Add scatterND (#22755) 2024-11-13 09:13:00 -08:00
skip-layer-norm.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
slice.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
softmax.ts [js/webgpu] Increase workgroupSize if only one workgroup is dispached (#22709) 2024-11-05 13:13:52 -08:00
split.ts [JS/WebGPU] GroupQueryAttention rewrite (#20946) 2024-10-23 10:14:09 -07:00
tile.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00
transpose.ts [js/webgpu] validate transpose perm if specified (#23197) 2025-01-01 15:58:54 -08:00
unary-op.ts [js/webgpu] support float16 for Clip (#21584) 2024-08-28 13:19:20 -07:00
where.ts [js] change default formatter for JavaScript/TypeScript from clang-format to Prettier (#21728) 2024-08-14 16:51:22 -07:00