Skip to content

[ExecuTorch][Vulkan] Tests for et_vk.q4gsw_requant#21101

Merged
JCNTH merged 2 commits into
gh/JCNTH/84/origfrom
gh/JCNTH/85/orig
Jul 21, 2026
Merged

[ExecuTorch][Vulkan] Tests for et_vk.q4gsw_requant#21101
JCNTH merged 2 commits into
gh/JCNTH/84/origfrom
gh/JCNTH/85/orig

Conversation

@pytorchbot

@pytorchbot pytorchbot commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

This PR was created by the merge bot to help merge the original PR into the main branch.
ghstack PR number: #20946 by @JCNTH
^ Please use this as the source of truth for the PR details, comments, and reviews
ghstack PR base: https://github.com/pytorch/executorch/tree/gh/JCNTH/85/base
ghstack PR head: https://github.com/pytorch/executorch/tree/gh/JCNTH/85/head
Merge bot PR base: https://github.com/pytorch/executorch/tree/gh/JCNTH/84/orig
Merge bot PR head: https://github.com/pytorch/executorch/tree/gh/JCNTH/85/orig

@diff-train-skip-merge

cc @SS-JIA @manuelcandales @digantdesai @cbilgin

Pull Request resolved: #20946

**Correctness tests for the Vulkan `et_vk.q4gsw_requant` kernel** (stacked above the op diff).

**Coverage:** the golden codes are computed with ATen (`round`/`clamp`, zero-scale -> code 8), mirroring `quant_nibble`, then packed into the expected W_4X8 int buffer with a small bit-packing reference (data-reshaping only, no hand-rolled math). The kernel output is compared int-for-int against that buffer, which locks the exact byte layout the forward reads. The latent is built as `code * scale` so `round()` is unambiguous (no `.5` tie-break divergence).

Cases:
- `test_tile_aligned` — single group, tile-aligned N/K.
- `test_grouped` — multiple quantization groups along K.
- `test_odd_n4` — `N % 8 != 0` (odd N4 -> padded stride + bias-zero OOB tile).
- `test_zero_scale` — a zero scale must yield code 8, not a divide-by-zero.

Also wires `q4gsw_requant_test` into `targets.bzl` + `CMakeLists.txt`.
ghstack-source-id: 405059122
@exported-using-ghexport

Differential Revision: [D111797526](https://our.internmc.facebook.com/intern/diff/D111797526/)
@pytorch-bot pytorch-bot Bot added the module: vulkan Issues related to the Vulkan delegate and code under backends/vulkan/ label Jul 21, 2026
@pytorch-bot

pytorch-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/21101

Note: Links to docs will display an error until the docs builds have been completed.

❗ 1 Active SEVs

There are 1 currently active SEVs. If your PR is affected, please view them below:

This comment was automatically generated by Dr. CI and updates every 15 minutes.

Pull Request resolved: #21005

Replace the hand-maintained explicit `WEBGPU_SRCS` op-handler list with `file(GLOB WEBGPU_OP_SRCS CONFIGURE_DEPENDS runtime/ops/*/*.cpp)` so adding a new op no longer requires editing this file (addresses review feedback). The five `runtime/*.cpp` sources and `runtime/ops/OperatorRegistry.cpp` (which sits directly under `ops/`, not a per-op subdir) stay explicit. `CONFIGURE_DEPENDS` re-globs at build time when op sources are added or removed.

The glob resolves to exactly the 40 op handlers the explicit list enumerated (verified set-equal) — no op added or dropped, and static-init registration is order-independent under `--whole-archive`.

Co-authored-with: Claude Code.
ghstack-source-id: 405059133
@exported-using-ghexport

Differential Revision: [D112482039](https://our.internmc.facebook.com/intern/diff/D112482039/)
@JCNTH
JCNTH merged commit 9fd93d9 into gh/JCNTH/84/orig Jul 21, 2026
15 of 16 checks passed
@JCNTH
JCNTH deleted the gh/JCNTH/85/orig branch July 21, 2026 16:39
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. module: vulkan Issues related to the Vulkan delegate and code under backends/vulkan/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants