COMPUTE-10611: CL: Set config_id to enabling LWS tuning

Change-Id: Ie457ab751e1527841c3e2881a25eac889435a26e
Signed-off-by: Gary Antcliffe <gary.antcliffe@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1408
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/CL/kernels/CLIntegralImageKernel.cpp b/src/core/CL/kernels/CLIntegralImageKernel.cpp
index 6fb39ff..a1548a1 100644
--- a/src/core/CL/kernels/CLIntegralImageKernel.cpp
+++ b/src/core/CL/kernels/CLIntegralImageKernel.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018 ARM Limited.
+ * Copyright (c) 2016-2019 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -45,7 +45,8 @@
     _output = output;
 
     // Create kernel
-    _kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("integral_horizontal"));
+    const std::string kernel_name = std::string("integral_horizontal");
+    _kernel                       = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel(kernel_name));
 
     // Configure kernel window
     const unsigned int num_elems_processed_per_iteration = input->info()->dimension(0);
@@ -61,6 +62,19 @@
     output_access.set_valid_region(win, input->info()->valid_region());
 
     ICLKernel::configure_internal(win);
+
+    // Set config_id for enabling LWS tuning
+    _config_id = kernel_name;
+    _config_id += "_";
+    _config_id += lower_string(string_from_data_type(input->info()->data_type()));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(input->info()->dimension(0));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(input->info()->dimension(1));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(output->info()->dimension(0));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(output->info()->dimension(1));
 }
 
 CLIntegralImageVertKernel::CLIntegralImageVertKernel()
@@ -75,7 +89,8 @@
     _in_out = in_out;
 
     // Create kernel
-    _kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("integral_vertical"));
+    const std::string kernel_name = std::string("integral_vertical");
+    _kernel                       = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel(kernel_name));
 
     // Configure kernel window
     constexpr unsigned int num_elems_processed_per_iteration_x = 8;
@@ -90,6 +105,15 @@
     in_out_access.set_valid_region(win, in_out->info()->valid_region());
 
     ICLKernel::configure_internal(win);
+
+    // Set config_id for enabling LWS tuning
+    _config_id = kernel_name;
+    _config_id += "_";
+    _config_id += lower_string(string_from_data_type(in_out->info()->data_type()));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(in_out->info()->dimension(0));
+    _config_id += "_";
+    _config_id += support::cpp11::to_string(in_out->info()->dimension(1));
 }
 
 void CLIntegralImageVertKernel::run(const Window &window, cl::CommandQueue &queue)