From 5d6635d9a72c5c5c2ccf96c4c1652e2e066aa259 Mon Sep 17 00:00:00 2001 From: Stephen Jia Date: Wed, 6 Aug 2025 07:53:09 -0700 Subject: [PATCH] [ET-VK][ez] Small optimization to `DynamicDispatchNode` ## Changes Update `DynamicDispatchNode` constructor so that `pick_global_wg_fn` does not need to be called multiple times. Differential Revision: [D79605482](https://our.internmc.facebook.com/intern/diff/D79605482/) [ghstack-poisoned] --- .../runtime/graph/ops/DynamicDispatchNode.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/backends/vulkan/runtime/graph/ops/DynamicDispatchNode.cpp b/backends/vulkan/runtime/graph/ops/DynamicDispatchNode.cpp index b8c0fcbbf79..ea2061d3d7c 100644 --- a/backends/vulkan/runtime/graph/ops/DynamicDispatchNode.cpp +++ b/backends/vulkan/runtime/graph/ops/DynamicDispatchNode.cpp @@ -57,13 +57,8 @@ DynamicDispatchNode::DynamicDispatchNode( : DispatchNode( graph, shader, - pick_global_wg_fn(&graph, shader, args, resize_args), - pick_local_wg_fn( - &graph, - shader, - pick_global_wg_fn(&graph, shader, args, resize_args), - args, - resize_args), + {1u, 1u, 1u}, + {8u, 8u, 1u}, args, params, push_constants, @@ -72,7 +67,12 @@ DynamicDispatchNode::DynamicDispatchNode( resize_fn), pick_shader_fn_{nullptr}, pick_global_wg_fn_(pick_global_wg_fn), - pick_local_wg_fn_(pick_local_wg_fn) {} + pick_local_wg_fn_(pick_local_wg_fn) { + global_workgroup_size_ = + pick_global_wg_fn(&graph, shader_, args, resize_args); + local_workgroup_size_ = utils::WorkgroupSize(pick_local_wg_fn( + &graph, shader_, global_workgroup_size_, args, resize_args)); +} void DynamicDispatchNode::encode(ComputeGraph* graph) { if (pick_shader_fn_) {