Skip to content

[webgpu] Manually normalize Conv-Transpose dispatch group size for Intel GPUs - #25908

Merged
guschmue merged 5 commits into
microsoft:mainfrom
daijh:conv-opt
Sep 25, 2025
Merged

[webgpu] Manually normalize Conv-Transpose dispatch group size for Intel GPUs#25908
guschmue merged 5 commits into
microsoft:mainfrom
daijh:conv-opt

Conversation

@daijh

@daijh daijh commented Sep 1, 2025

Copy link
Copy Markdown
Contributor

Description

This PR improves the performance of Conv-Transpose by ~12x on Lunar Lake.

For a specific shape: (3, 3, 2560, 1280), the default normalization produced a dispatch group size of (679, 679, 1) resulted in extremely slow performance on LNL (likely due to a driver issue). By manually normalize the dispatch group size to (5, 640, 160), we achieve a significant ~12x performance improvement on LNL.

Motivation and Context

See above.

Co-authored-by: Yang, Wenqin wenqin.yang@intel.com

@daijh daijh changed the title [webgpu] Manually normalize Conv-Transpose dispatch group size [webgpu] Manually normalize Conv-Transpose dispatch group size on Intel GPUs Sep 1, 2025
@daijh daijh changed the title [webgpu] Manually normalize Conv-Transpose dispatch group size on Intel GPUs [webgpu] Manually normalize Conv-Transpose dispatch group size for Intel GPUs Sep 2, 2025
@daijh

daijh commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@guschmue @fs-eire @qjia7

Comment thread onnxruntime/core/providers/webgpu/nn/conv.cc
@guschmue guschmue added the ep:WebGPU ort-web webgpu provider label Sep 2, 2025
@qjia7
qjia7 requested review from fs-eire and guschmue September 11, 2025 07:27
@daijh

daijh commented Sep 16, 2025

Copy link
Copy Markdown
Contributor Author

Looks like a network issue on the CI server.
Could you please try to re-trigger the build?

Trying to download onnx-onnx-v1.18.0.tar.gz using asset cache https://vcpkg.storage.devpackages.microsoft.io/artifacts/2f38664947c8d1efc40620a7c1b1953d2aa4b0a37b67c4886b86e77c1d697363c26413413ddda8eabc545892fb1bcb43afc7e93e62f0901527524a2727e1ea8d
error: curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
error: there were no asset cache hits, and x-block-origin blocks trying the authoritative source https://github.com/onnx/onnx/archive/v1.18.0.tar.gz
note: If you are using a proxy, please ensure your proxy settings are correct.
Possible causes are:
1. You are actually using an HTTP proxy, but setting HTTPS_PROXY variable to `https//address:port`.
This is not correct, because `https://` prefix claims the proxy is an HTTPS proxy, while your proxy (v2ray, shadowsocksr, etc...) is an HTTP proxy.
Try setting `http://address:port` to both HTTP_PROXY and HTTPS_PROXY instead.
2. If you are using Windows, vcpkg will automatically use your Windows IE Proxy Settings set by your proxy software. See: https://github.com/microsoft/vcpkg-tool/pull/77
The value set by your proxy might be wrong, or have same `https://` prefix issue.
3. Your proxy's remote server is our of service.
If you believe this is not a temporary download server failure and vcpkg needs to be changed to download this file from a different location, please submit an issue to https://github.com/Microsoft/vcpkg/issues
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:136 (message):
  Download failed, halting portfile.
Call Stack (most recent call first):
  scripts/cmake/vcpkg_from_github.cmake:120 (vcpkg_download_distfile)
  /onnxruntime_src/cmake/vcpkg-ports/onnx/portfile.cmake:3 (vcpkg_from_github)
  scripts/ports.cmake:206 (include)

@guschmue guschmue closed this Sep 18, 2025
@guschmue guschmue reopened this Sep 18, 2025
@guschmue

Copy link
Copy Markdown
Contributor

/azp run Linux QNN CI Pipeline,Win_TRT_Minimal_CUDA_Test_CI,Windows ARM64 QNN CI Pipeline,Windows GPU Doc Gen CI Pipeline

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 4 pipeline(s).

@daijh

daijh commented Sep 25, 2025

Copy link
Copy Markdown
Contributor Author

@guschmue could you pls apply this PR?

@guschmue

Copy link
Copy Markdown
Contributor

sure

@guschmue
guschmue merged commit f2f50eb into microsoft:main Sep 25, 2025
137 of 156 checks passed
fs-eire pushed a commit that referenced this pull request Oct 24, 2025
…Intel GPUs (#25908)

### Description
This PR improves the performance of `Conv-Transpose` by ~12x on Lunar
Lake.

For a specific shape: (3, 3, 2560, 1280), the default normalization
produced a dispatch group size of (679, 679, 1) resulted in extremely
slow performance on LNL (likely due to a driver issue). By manually
normalize the dispatch group size to (5, 640, 160), we achieve a
significant ~12x performance improvement on LNL.

### Motivation and Context
See above.

Co-authored-by: Yang, Wenqin <wenqin.yang@intel.com>
naomiOvad pushed a commit to naomiOvad/onnxruntime that referenced this pull request Nov 2, 2025
…Intel GPUs (microsoft#25908)

### Description
This PR improves the performance of `Conv-Transpose` by ~12x on Lunar
Lake.

For a specific shape: (3, 3, 2560, 1280), the default normalization
produced a dispatch group size of (679, 679, 1) resulted in extremely
slow performance on LNL (likely due to a driver issue). By manually
normalize the dispatch group size to (5, 640, 160), we achieve a
significant ~12x performance improvement on LNL.

### Motivation and Context
See above.

Co-authored-by: Yang, Wenqin <wenqin.yang@intel.com>
@daijh
daijh deleted the conv-opt branch November 19, 2025 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ep:WebGPU ort-web webgpu provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants