[ET-VK][testing] Create dedicated test binary for pointwise convolutions#17220
[ET-VK][testing] Create dedicated test binary for pointwise convolutions#17220SS-JIA wants to merge 1 commit intogh/SS-JIA/409/basefrom
Conversation
This commit creates a dedicated test binary for pointwise (1x1) convolutions
(test_q8ta_conv2d_pw), separating them from the general 2D convolution tests.
Here are the key changes:
What Changed
1. New Test Binary: test_q8ta_conv2d_pw.cpp (591 lines)
- Dedicated test file focusing exclusively on pointwise convolutions (kernel
size 1x1)
- Contains 9 test configurations ranging from accuracy tests to performance
cases:
- Accuracy tests: Various channel configurations (32→3, 64→32, 96→64, 13→7,
80→40) with different spatial dimensions
- Performance tests: Larger configurations (160→480, 22→48, 48→48, 128→128)
exceeding the 100-dim reference limit
- Tests all combinations of:
- Storage types: Texture3D, Buffer
- Int8 memory layouts: 4C1W, 4W4C, 4C
- Also tests legacy 4W4C implementation via impl_selector="legacy_4w4c"
- Includes full reference implementation for numerical correctness
verification
- Custom FLOP calculator for performance measurements
2. Removed from test_q8ta_conv2d.cpp (44 lines deleted)
- Removed 6 pointwise convolution configurations that are now covered by the
new dedicated binary
- General conv2d tests now focus solely on kernels > 1x1 (3x3, 5x5, etc.)
3. Build System Updates
- Added test_q8ta_conv2d_pw target to:
- targets.bzl (Buck2)
- CMakeLists.txt (CMake)
- Both fbcode and xplat paths updated (files are mirrored)
4. CI/Workflow Integration
- Updated executorch_vulkan_eureka_unit_tests.sky to include the new test
binary in on-device testing workflow
Why This Separation?
Pointwise convolutions (1x1 kernels) are a distinct optimization target with
different performance characteristics than general convolutions. Separating them
enables:
- Focused performance iteration on pointwise-specific shaders
- Cleaner test organization
- Faster test runs when only testing one convolution type
Differential Revision: [D92307251](https://our.internmc.facebook.com/intern/diff/D92307251/)
[ghstack-poisoned]
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/17220
Note: Links to docs will display an error until the docs builds have been completed. ❌ 4 New Failures, 5 Unrelated FailuresAs of commit 4752b4d with merge base 477867a ( 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 jobs 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
|
Stack from ghstack (oldest at bottom):
This commit creates a dedicated test binary for pointwise (1x1) convolutions
(test_q8ta_conv2d_pw), separating them from the general 2D convolution tests.
Here are the key changes:
What Changed
New Test Binary: test_q8ta_conv2d_pw.cpp (591 lines)
size 1x1)
cases:
80→40) with different spatial dimensions
exceeding the 100-dim reference limit
verification
Removed from test_q8ta_conv2d.cpp (44 lines deleted)
new dedicated binary
Build System Updates
CI/Workflow Integration
binary in on-device testing workflow
Why This Separation?
Pointwise convolutions (1x1 kernels) are a distinct optimization target with
different performance characteristics than general convolutions. Separating them
enables:
Differential Revision: D92307251