[ExecuTorch][WebGPU] Op-tests for q8ta_conv2d_pw#21200
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21200
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: ❌ 39 New Failures, 3 Unrelated FailuresAs of commit 59fb16f 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_pwint8 pointwise conv needs golden coverage of the full quantized-conv subgraph across channel / bias / batch regimes.Solution:
make_q8ta_conv2d_pw_moduleruns a plain 1x1nn.Conv2dthrough 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_pw -> dequantize_per_tensor(C0 + the new op) — no external model, no hand-written golden.Implementation:
cases.pyregistersbasic,ic8,no_bias, andbatch2(N=2) overW % 4 == 0shapes at atol=rtol=1e-3 (an off-by-one int8 level is 1.0, far above tol); calibration yields non-zero and negative activation zero-points, so the per-element zero-point-subtraction path is exercised.test_q8ta_conv2d_pw.pycarries the delegation smoke test (asserts theVulkanBackenddelegate containsq8ta_conv2d_pw).Differential Revision: D112257618