[ET-VK][qconv] Add dynamic PACKED_INT8_CONV2D memory layout for device-adaptive conv2d#17794
Conversation
…e-adaptive conv2d Performance testing of quantized int8 convolutions reveals that different algorithms perform better on different GPU architectures: im2col is faster on Mali while direct convolution is faster on Adreno. The optimal memory layout differs per algorithm (4C for im2col, 4C1W for direct convolution). This introduces a new "dynamic" memory layout PACKED_INT8_CONV2D that is serialized at export time and resolved to a concrete layout at runtime based on the device's GPU architecture. The resolution logic in ResolveLayouts.cpp mirrors the im2col vs direct convolution decision in Q8taConv2d.cpp. Differential Revision: [D94949134](https://our.internmc.facebook.com/intern/diff/D94949134/) [ghstack-poisoned]
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/17794
Note: Links to docs will display an error until the docs builds have been completed. ❌ 14 New Failures, 4 Unrelated FailuresAs of commit 31f1d0b with merge base ae41854 ( 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
|
968542d
into
gh/SS-JIA/455/base
…e-adaptive conv2d Performance testing of quantized int8 convolutions reveals that different algorithms perform better on different GPU architectures: im2col is faster on Mali while direct convolution is faster on Adreno. The optimal memory layout differs per algorithm (4C for im2col, 4C1W for direct convolution). This introduces a new "dynamic" memory layout PACKED_INT8_CONV2D that is serialized at export time and resolved to a concrete layout at runtime based on the device's GPU architecture. The resolution logic in ResolveLayouts.cpp mirrors the im2col vs direct convolution decision in Q8taConv2d.cpp. Differential Revision: [D94949134](https://our.internmc.facebook.com/intern/diff/D94949134/) ghstack-source-id: 346525918 Pull Request resolved: #17794
…e-adaptive conv2d Performance testing of quantized int8 convolutions reveals that different algorithms perform better on different GPU architectures: im2col is faster on Mali while direct convolution is faster on Adreno. The optimal memory layout differs per algorithm (4C for im2col, 4C1W for direct convolution). This introduces a new "dynamic" memory layout PACKED_INT8_CONV2D that is serialized at export time and resolved to a concrete layout at runtime based on the device's GPU architecture. The resolution logic in ResolveLayouts.cpp mirrors the im2col vs direct convolution decision in Q8taConv2d.cpp. Differential Revision: [D94949134](https://our.internmc.facebook.com/intern/diff/D94949134/) ghstack-source-id: 346525918 Pull Request resolved: #17794
…e-adaptive conv2d Performance testing of quantized int8 convolutions reveals that different algorithms perform better on different GPU architectures: im2col is faster on Mali while direct convolution is faster on Adreno. The optimal memory layout differs per algorithm (4C for im2col, 4C1W for direct convolution). This introduces a new "dynamic" memory layout PACKED_INT8_CONV2D that is serialized at export time and resolved to a concrete layout at runtime based on the device's GPU architecture. The resolution logic in ResolveLayouts.cpp mirrors the im2col vs direct convolution decision in Q8taConv2d.cpp. Differential Revision: [D94949134](https://our.internmc.facebook.com/intern/diff/D94949134/) ghstack-source-id: 346525918 Pull Request resolved: #17794
Stack from ghstack (oldest at bottom):
Performance testing of quantized int8 convolutions reveals that different
algorithms perform better on different GPU architectures: im2col is faster on
Mali while direct convolution is faster on Adreno. The optimal memory layout
differs per algorithm (4C for im2col, 4C1W for direct convolution).
This introduces a new "dynamic" memory layout PACKED_INT8_CONV2D that is
serialized at export time and resolved to a concrete layout at runtime based
on the device's GPU architecture. The resolution logic in ResolveLayouts.cpp
mirrors the im2col vs direct convolution decision in Q8taConv2d.cpp.
Differential Revision: D94949134