Enable dynamic cl tuning for dynamically fused kernels
* Add new tune_kernel_dynamic interface
* Add generate_config_id
Resolves: COMPMID-5154
Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: I39870e59fceda875487970061ceb2048995c5a45
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7400
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
index e24c742..aa27572 100644
--- a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
+++ b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
@@ -316,6 +316,15 @@
return "";
}
+ /** Generate config id of the component
+ *
+ * @return std::string
+ */
+ virtual std::string generate_config_id() const
+ {
+ return "";
+ }
+
virtual CLBuildOptions generate_build_options() const
{
return CLBuildOptions{};
@@ -537,9 +546,21 @@
return code;
}
+ /** Generate config id of the entire kernel
+ *
+ * Format: kernel_name--comp0_config_id--comp1_config_id--...
+ *
+ * @return std::string
+ */
std::string build_config_id() const
{
- return "";
+ std::string config_id = build_kernel_name();
+ traverse([&](std::stack<ComponentID> stack)
+ {
+ config_id += "--" + _components.find(stack.top())->second->generate_config_id() + "--";
+ });
+
+ return config_id;
}
CLBuildOptions build_options() const