onnxruntime/js/web/lib/wasm/jsep/webgpu/ops
Jiajia Qin 25f427466e
[js/webgpu] Optimize ConvTranspose (Continue) (#23429)
BUG #23273

This PR does below optimizations:
1. When output channels is one, 1) calculate the offset before the
inchannel loop to reduce indices to offsets calculation, 2) split the
`inputChannelsPerGroup` into `inputChannelsPerGroupInt` and
`inputChannelsRemainder` parts so that we can always access 4 data for
`inputChannelsPerGroupInt`.
2. Use precise initial value to reduce useless loop iterations. Thanks
@jiangzhaoming 's suggestion's on this.

With this PR, ConvTranspose becomes 3.7s from 8.4s on Intel Meteor Lake.
On NV RTX 2000 Ada, it becomes 1.6s from 2.7s.
2025-01-22 08:59:17 -08:00
..
3rd-party [js/webgpu] Optimize ConvTranspose (Continue) (#23429) 2025-01-22 08:59:17 -08:00
argminmax.ts
attention.ts [JS/WebGPU] GroupQueryAttention rewrite (#20946) 2024-10-23 10:14:09 -07:00
batch-norm.ts
bias-add.ts
bias-split-gelu.ts
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
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
depth-to-space.ts
einsum.ts
expand.ts [js/webgpu] Optimize Expand (#22752) 2024-11-12 12:37:19 -08:00
fast-gelu.ts
fuse-utils.ts
gather-block-quantized.ts
gather-elements.ts
gather-nd.ts [js/webgpu] Add GatherND (#22847) 2024-12-04 09:57:32 -08:00
gather.ts
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
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
pool.ts
quantize-linear.ts
range.ts
reduce-shared.ts [js/webgpu] Increase workgroupSize if only one workgroup is dispached (#22709) 2024-11-05 13:13:52 -08:00
reduce.ts
resize.ts [JS/WebGPU] Fixed bugs in inputs validation of Resize (#21955) 2024-10-04 18:29:53 -07:00
rotary-embedding.ts
scatter-nd.ts [js/webgpu] Add scatterND (#22755) 2024-11-13 09:13:00 -08:00
skip-layer-norm.ts
slice.ts
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
transpose.ts [js/webgpu] validate transpose perm if specified (#23197) 2025-01-01 15:58:54 -08:00
unary-op.ts
where.ts