[ExecuTorch][WebGPU] Op-tests for q8ta_conv2d_transposed#21206
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21206
Note: Links to docs will display an error until the docs builds have been completed. ❗ 1 Active SEVsThere are 1 currently active SEVs. If your PR is affected, please view them below: ❌ 46 New Failures, 3 Unrelated FailuresAs of commit c8aff67 with merge base 266e0dc ( NEW FAILURES - The following jobs have failed:
FLAKY - The following jobs failed but were likely due to flakiness present on trunk:
BROKEN TRUNK - The following job failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
psiddh
left a comment
There was a problem hiding this comment.
Approving full WebGPU stack
Stack from ghstack (oldest at bottom):
Problem: The new
q8ta_conv2d_transposedint8 transposed conv needs golden coverage across stride, kernel-geometry (incl. asymmetric), channel-count (incl. OC/IC not multiples of 4), bias, and batch regimes.Solution:
make_q8ta_conv2d_transposed_moduleruns annn.ConvTranspose2d(groups == 1, dilation == 1) through XNNPACK static PT2E (per-channel weight, static per-tensor activation) in-process and returns the converted module, so the op-test framework goldens the WebGPU output against the converted eager (fp32, the fake-quant reference) e2e throughquantize_per_tensor -> q8ta_conv2d_transposed -> dequantize_per_tensor(C0 + the new op) — no external model, no hand-written golden.Implementation:
cases.pyregisterss2(2x2, stride 2),no_bias,k3(3x3, stride 2, pad 1, output_padding 1),oc6(OC=6 — AOTOC-to-mult-4 scales/bias padding),ic3(IC=3 —Kh*Kw*ICweight-row align-width padding),batch2(N=2 — batch decomposition), andasym(3x2 kernel — the separateKh/Kwgather math) overW_out % 4 == 0shapes at atol=rtol=1e-3. XNNPACK-static calibration yields non-zero and negative activation zero-points, so the per-element zero-point / requant path is exercised.test_q8ta_conv2d_transposed.pycarries the delegation smoke test (asserts theVulkanBackenddelegate containsq8ta_conv2d_transposed).Differential Revision: D112257602