[ET-VK] Changing texture access pattern for conv2d dw ops to improve performance.#7477
Merged
facebook-github-bot merged 3 commits intogh/trivedivivek/35/basefrom Jan 3, 2025
Merged
Conversation
…performance. This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) [ghstack-poisoned]
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/7477
Note: Links to docs will display an error until the docs builds have been completed. ✅ No FailuresAs of commit 09373ca with merge base 45bb2dd ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
Contributor
|
This pull request was exported from Phabricator. Differential Revision: D67770160 |
This was referenced Jan 2, 2025
trviv
added a commit
that referenced
this pull request
Jan 2, 2025
…performance. This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) ghstack-source-id: 260027836 Pull Request resolved: #7477
…to improve performance." This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) [ghstack-poisoned]
Contributor
|
This pull request was exported from Phabricator. Differential Revision: D67770160 |
SS-JIA
approved these changes
Jan 3, 2025
…to improve performance." This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) [ghstack-poisoned]
Contributor
|
This pull request was exported from Phabricator. Differential Revision: D67770160 |
trviv
added a commit
that referenced
this pull request
Jan 4, 2025
…performance. (#7505) * [ET-VK] Reduced int precision for all int storage in conv pw op to improve performance. Pull Request resolved: #7447 This diff reduces the precision of all int storage in the conv pw op to improve performance. The code changes include adding the extension GL_EXT_shader_explicit_arithmetic_types_int16 and changing the data type of ints to uint16. ghstack-source-id: 260166244 @exported-using-ghexport Differential Revision: [D67674212](https://our.internmc.facebook.com/intern/diff/D67674212/) * [ET-VK] Minor fix to conv 2d op using wg_size from create_conv2d_global_wg_size to determine local wg size. Pull Request resolved: #7450 This diff contains changes to the Convolution.cpp file in the Vulkan backend of Executorch. The changes involve updating the code to use the create_conv2d_global_wg_size function to determine the local workgroup size for the convolution operation. This is done to ensure that the correct workgroup size is used for the operation, which can improve performance. ghstack-source-id: 260166246 @exported-using-ghexport Differential Revision: [D67676422](https://our.internmc.facebook.com/intern/diff/D67676422/) * [ET-VK] Modify conv 2d pw op shader and dispatch settings to linearly dispatch work accounting for linearity texture to improve performance. Pull Request resolved: #7452 This diff modifies the convolution 2D pointwise op shader and dispatch settings to linearly dispatch work accounting for linearity texture to improve performance. ghstack-source-id: 260166247 @exported-using-ghexport Differential Revision: [D67683411](https://our.internmc.facebook.com/intern/diff/D67683411/) * [ET-VK] Using vec2 to store output positions to reudce shader register footprint. Pull Request resolved: #7474 The diff changes the use of `u16vec3` to `u16vec2` to store output positions in the conv2d_pw op. This change is made to reduce the shader register footprint and improve performance. ghstack-source-id: 260166245 @exported-using-ghexport Differential Revision: [D67726229](https://our.internmc.facebook.com/intern/diff/D67726229/) * [ET-VK] Using shared variable to store calculated output pose to free up registers and improve performance. Pull Request resolved: #7475 This diff introduces a shared variable to store calculated output pose in conv2d_pw op to free up registers and improve performance. The code changes include adding a shared variable to hold calculated positions and modifying the existing code to use the shared variable. ghstack-source-id: 260166242 Differential Revision: [D67742567](https://our.internmc.facebook.com/intern/diff/D67742567/) * [ET-VK] Changing texture access pattern for conv2d pw op to improve performance. Pull Request resolved: #7476 This diff changes the texture access pattern for conv2d pw op to iterate first on x axis then y and then z to improve performance. ghstack-source-id: 260166241 @exported-using-ghexport Differential Revision: [D67769100](https://our.internmc.facebook.com/intern/diff/D67769100/) * [ET-VK] Changing texture access pattern for conv2d dw op to improve performance. Pull Request resolved: #7477 This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. ghstack-source-id: 260166240 @exported-using-ghexport Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) --------- Co-authored-by: Vivek Trivedi <5340687+trivedivivek@users.noreply.github.com>
trviv
added a commit
that referenced
this pull request
Jan 4, 2025
…texel and kernel values for reuse. (#7506) * [ET-VK] Reduced int precision for all int storage in conv pw op to improve performance. Pull Request resolved: #7447 This diff reduces the precision of all int storage in the conv pw op to improve performance. The code changes include adding the extension GL_EXT_shader_explicit_arithmetic_types_int16 and changing the data type of ints to uint16. ghstack-source-id: 260166244 @exported-using-ghexport Differential Revision: [D67674212](https://our.internmc.facebook.com/intern/diff/D67674212/) * [ET-VK] Minor fix to conv 2d op using wg_size from create_conv2d_global_wg_size to determine local wg size. Pull Request resolved: #7450 This diff contains changes to the Convolution.cpp file in the Vulkan backend of Executorch. The changes involve updating the code to use the create_conv2d_global_wg_size function to determine the local workgroup size for the convolution operation. This is done to ensure that the correct workgroup size is used for the operation, which can improve performance. ghstack-source-id: 260166246 @exported-using-ghexport Differential Revision: [D67676422](https://our.internmc.facebook.com/intern/diff/D67676422/) * [ET-VK] Modify conv 2d pw op shader and dispatch settings to linearly dispatch work accounting for linearity texture to improve performance. Pull Request resolved: #7452 This diff modifies the convolution 2D pointwise op shader and dispatch settings to linearly dispatch work accounting for linearity texture to improve performance. ghstack-source-id: 260166247 @exported-using-ghexport Differential Revision: [D67683411](https://our.internmc.facebook.com/intern/diff/D67683411/) * [ET-VK] Using vec2 to store output positions to reudce shader register footprint. Pull Request resolved: #7474 The diff changes the use of `u16vec3` to `u16vec2` to store output positions in the conv2d_pw op. This change is made to reduce the shader register footprint and improve performance. ghstack-source-id: 260166245 @exported-using-ghexport Differential Revision: [D67726229](https://our.internmc.facebook.com/intern/diff/D67726229/) * [ET-VK] Using shared variable to store calculated output pose to free up registers and improve performance. Pull Request resolved: #7475 This diff introduces a shared variable to store calculated output pose in conv2d_pw op to free up registers and improve performance. The code changes include adding a shared variable to hold calculated positions and modifying the existing code to use the shared variable. ghstack-source-id: 260166242 Differential Revision: [D67742567](https://our.internmc.facebook.com/intern/diff/D67742567/) * [ET-VK] Changing texture access pattern for conv2d pw op to improve performance. Pull Request resolved: #7476 This diff changes the texture access pattern for conv2d pw op to iterate first on x axis then y and then z to improve performance. ghstack-source-id: 260166241 @exported-using-ghexport Differential Revision: [D67769100](https://our.internmc.facebook.com/intern/diff/D67769100/) * [ET-VK] Changing texture access pattern for conv2d dw op to improve performance. Pull Request resolved: #7477 This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance. ghstack-source-id: 260166240 @exported-using-ghexport Differential Revision: [D67770160](https://our.internmc.facebook.com/intern/diff/D67770160/) * [ET-VK] Adding batch processing to conv2d dw shader by caching input texel and kernel values for reuse. Pull Request resolved: #7485 This diff adds batch processing to the conv2d dw shader by caching input texel and kernel values for reuse. This optimization reduces the number of texture lookups and kernel computations, improving the performance of the convolution operation. ghstack-source-id: 260166243 @exported-using-ghexport Differential Revision: [D67774359](https://our.internmc.facebook.com/intern/diff/D67774359/) --------- Co-authored-by: Vivek Trivedi <5340687+trivedivivek@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack from ghstack (oldest at bottom):
This diff changes the texture access pattern for convolutional depthwise (DW) operations in Executorch's Vulkan backend to iterate first on x axis then y and then z to improve performance.
Differential Revision: D67770160