Fix WebGPU ConvTranspose bias validation in TypeScript and C++ implementations - #27213
Conversation
Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com>
…ndant check Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com>
Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com>
guschmue
left a comment
There was a problem hiding this comment.
you also need to make the change in onnxruntime/core/providers/webgpu/nn/conv_transpose.cc
Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com>
Added bias validation to the C++ implementation in commit 0d53e11. The validation checks that bias is 1D and has size equal to output channels (group * filter_shape[1]), matching the logic in the TypeScript implementation. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
guschmue
left a comment
There was a problem hiding this comment.
lint is failing:
Error: Following source files are not formatted: (did you run "npm run format"?)
js/web/lib/wasm/jsep/webgpu/ops/conv-transpose.ts
Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com>
Fixed formatting by running prettier in commit 7c55b81. The file now passes linting checks. |
|
/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 successfully started running 4 pipeline(s). |
This cherry-picks the following commits for the 1.24.2 release: - #27096 - #27077 - #26677 - #27238 - #27213 - #27256 - #27278 - #27275 - #27276 - #27216 - #27271 - #27299 - #27294 - #27266 - #27176 - #27126 - #27252 --------- Co-authored-by: Xiaofei Han <xiaofeihan@microsoft.com> Co-authored-by: Jiajia Qin <jiajiaqin@microsoft.com> Co-authored-by: Yulong Wang <7679871+fs-eire@users.noreply.github.com> Co-authored-by: qti-monumeen <monumeen@qti.qualcomm.com> Co-authored-by: Ankit Maheshkar <ankit.maheshkar@intel.com> Co-authored-by: Eric Crawford <eric.r.crawford@intel.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: guschmue <22941064+guschmue@users.noreply.github.com> Co-authored-by: Guenther Schmuelling <guschmue@microsoft.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: angelser <32746004+angelser@users.noreply.github.com> Co-authored-by: Angela Serrano Brummett <angelser@microsoft.com> Co-authored-by: Misha Chornyi <99709299+mc-nv@users.noreply.github.com> Co-authored-by: hariharans29 <9969784+hariharans29@users.noreply.github.com> Co-authored-by: eserscor <erscor@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Baiju Meswani <bmeswani@microsoft.com> Co-authored-by: Adrian Lizarraga <adlizarraga@microsoft.com> Co-authored-by: Ti-Tai Wang <titaiwang@microsoft.com> Co-authored-by: bmehta001 <bmehta001@users.noreply.github.com>
Description
WebGPU EP's ConvTranspose operator failed to properly validate bias tensor shape in both TypeScript and C++ implementations. Undefined
groupattribute caused NaN in validation checks, allowing invalid bias tensors to pass.TypeScript Changes (
js/web/lib/wasm/jsep/webgpu/ops/conv-transpose.ts):groupto 1 when undefined (line 135 inparseConvTransposeAttributes)validateInputs):C++ Changes (
onnxruntime/core/providers/webgpu/nn/conv_transpose.cc):ComputeInternal):Code Formatting:
Motivation and Context
Addresses issue where tests with intentionally invalid bias shapes were incorrectly passing in the WebGPU EP. The fix ensures:
groupattribute in TypeScriptNote: The C++ implementation already handles
groupattribute defaulting to 1 in the ConvAttributes base class, so only bias validation needed to be added.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.