From b3df9c67764e38c605b178c3f032303e66730131 Mon Sep 17 00:00:00 2001 From: Vivek Trivedi <5340687+trivedivivek@users.noreply.github.com> Date: Mon, 12 May 2025 08:44:34 -0700 Subject: [PATCH 1/3] [ET-VK] Removing un used push constants for conv2d pw. This change removes unused push constants from conv2d pw op to reduce memory usage. Differential Revision: [D74523769](https://our.internmc.facebook.com/intern/diff/D74523769/) [ghstack-poisoned] --- .../runtime/graph/ops/glsl/conv2d_pw.glsl | 4 ---- .../runtime/graph/ops/impl/Convolution.cpp | 22 ++++++++++++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/backends/vulkan/runtime/graph/ops/glsl/conv2d_pw.glsl b/backends/vulkan/runtime/graph/ops/glsl/conv2d_pw.glsl index a576a46d5b8..468b91f0535 100644 --- a/backends/vulkan/runtime/graph/ops/glsl/conv2d_pw.glsl +++ b/backends/vulkan/runtime/graph/ops/glsl/conv2d_pw.glsl @@ -29,12 +29,8 @@ ${layout_declare_tensor(3, "r", "t_bias", DTYPE, "texture2d")} layout(push_constant) uniform restrict Block { ivec4 out_limits; - ivec4 in_sizes; - ivec2 kernel_size; ivec2 stride; ivec2 padding; - ivec2 dilation; - ivec2 overlay_region; int in_group_size; int dummy_padding; float out_min; diff --git a/backends/vulkan/runtime/graph/ops/impl/Convolution.cpp b/backends/vulkan/runtime/graph/ops/impl/Convolution.cpp index 48256cb2996..381b9de0d6a 100644 --- a/backends/vulkan/runtime/graph/ops/impl/Convolution.cpp +++ b/backends/vulkan/runtime/graph/ops/impl/Convolution.cpp @@ -404,7 +404,27 @@ void add_conv2d_node( vkapi::ParamsBindList param_buffers; std::vector push_constants; - if (method == Conv2dMethod::Pointwise || method == Conv2dMethod::Depthwise) { + if (method == Conv2dMethod::Pointwise) { + const utils::ivec4 kernel_param_stride_pad = { + kernel_params.stride[0], + kernel_params.stride[1], + kernel_params.padding[0], + kernel_params.padding[1], + }; + + struct Conv2dPWParams final { + int in_group_size; + int dummy_padding; + OutputParams out_params; + } param{extra_params.in_group_size, 0, out_params}; + + push_constants = { + graph.logical_limits_pc_of(out), + PushConstantDataInfo( + &kernel_param_stride_pad, sizeof(kernel_param_stride_pad)), + PushConstantDataInfo(¶m, sizeof(param)), + }; + } else if (method == Conv2dMethod::Depthwise) { const utils::ivec4 kernel_param_size_stride = { kernel_params.kernel_size[0], kernel_params.kernel_size[1], From 4c1ab0c528754c6a05225f5660b6eb76e8106291 Mon Sep 17 00:00:00 2001 From: Vivek Trivedi <5340687+trivedivivek@users.noreply.github.com> Date: Mon, 12 May 2025 09:51:35 -0700 Subject: [PATCH 2/3] Update on "[ET-VK] Removing un used push constants for conv2d pw." This change removes unused push constants from conv2d pw op to reduce memory usage. Differential Revision: [D74523769](https://our.internmc.facebook.com/intern/diff/D74523769/) [ghstack-poisoned] From 345fa5ac06adf989fbd9567a0f7a4c64c8450a17 Mon Sep 17 00:00:00 2001 From: Vivek Trivedi <5340687+trivedivivek@users.noreply.github.com> Date: Mon, 12 May 2025 09:54:30 -0700 Subject: [PATCH 3/3] Update on "[ET-VK] Removing un used push constants for conv2d pw." This change removes unused push constants from conv2d pw op to reduce memory usage. Differential Revision: [D74523769](https://our.internmc.facebook.com/intern/diff/D74523769/) [ghstack-poisoned]