Skip to content

Fix WebGPU Conv auto_pad=SAME_UPPER padding calculation#27249

Open
ingyukoh wants to merge 1 commit intomicrosoft:mainfrom
ingyukoh:fix/webgpu-conv-same-upper-padding
Open

Fix WebGPU Conv auto_pad=SAME_UPPER padding calculation#27249
ingyukoh wants to merge 1 commit intomicrosoft:mainfrom
ingyukoh:fix/webgpu-conv-same-upper-padding

Conversation

@ingyukoh
Copy link

@ingyukoh ingyukoh commented Feb 5, 2026

The WebGPU Conv and ConvTranspose operators were producing incorrect results when using auto_pad=SAME_UPPER with strides > 1.

Root cause: The head padding values were being unnecessarily recalculated after InferPadsAndOutputShape() had already computed the correct values. The recalculation formula could produce incorrect results.

Fix: Simply use pads[0] and pads[1] directly, which already contain the correct head padding values computed upstream. This matches the behavior of the TypeScript implementation.

Fixes #26734

The WebGPU Conv and ConvTranspose operators were producing incorrect
results when using auto_pad=SAME_UPPER with strides > 1.

Root cause: The head padding values were being unnecessarily recalculated
after InferPadsAndOutputShape() had already computed the correct values.
The recalculation formula could produce incorrect results.

Fix: Simply use pads[0] and pads[1] directly, which already contain the
correct head padding values computed upstream. This matches the behavior
of the TypeScript implementation.

Fixes microsoft#26734
@fs-eire
Copy link
Contributor

fs-eire commented Feb 5, 2026

/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

Azure Pipelines successfully started running 4 pipeline(s).

@fs-eire
Copy link
Contributor

fs-eire commented Feb 5, 2026

The change itself looks good to me. Could you please add a test case in onnxruntime\test\providers\cpu\nn\conv_op_test.cc ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] [Web] [WebGPU] [WebGL] Conv with auto_pad=SAME_UPPER produces wrong values

2 participants