COMPMID-959: Only intercept clEnqueueNDRangeKernel when the timer is enabled
Otherwise we'll start intercepting the cl_tuner run, which we don't want
Change-Id: Ib3d835a02a6cec9617a715bfbeaed506792a00fc
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/131478
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
diff --git a/tests/framework/instruments/OpenCLTimer.cpp b/tests/framework/instruments/OpenCLTimer.cpp
index 4af6dae..4391c43 100644
--- a/tests/framework/instruments/OpenCLTimer.cpp
+++ b/tests/framework/instruments/OpenCLTimer.cpp
@@ -45,7 +45,7 @@
}
OpenCLTimer::OpenCLTimer(ScaleFactor scale_factor)
- : _kernels(), _real_function(nullptr), _real_graph_function(nullptr), _prefix()
+ : _kernels(), _real_function(nullptr), _real_graph_function(nullptr), _prefix(), _timer_enabled(false)
{
auto q = CLScheduler::get().queue();
cl_command_queue_properties props = q.getInfo<CL_QUEUE_PROPERTIES>();
@@ -95,27 +95,34 @@
const cl_event * event_wait_list,
cl_event * event)
{
- ARM_COMPUTE_ERROR_ON_MSG(event != nullptr, "Not supported");
- ARM_COMPUTE_UNUSED(event);
+ if(this->_timer_enabled)
+ {
+ ARM_COMPUTE_ERROR_ON_MSG(event != nullptr, "Not supported");
+ ARM_COMPUTE_UNUSED(event);
- OpenCLTimer::kernel_info info;
- cl::Kernel cpp_kernel(kernel, true);
- std::stringstream ss;
- ss << this->_prefix << cpp_kernel.getInfo<CL_KERNEL_FUNCTION_NAME>();
- if(gws != nullptr)
- {
- ss << " GWS[" << gws[0] << "," << gws[1] << "," << gws[2] << "]";
+ OpenCLTimer::kernel_info info;
+ cl::Kernel cpp_kernel(kernel, true);
+ std::stringstream ss;
+ ss << this->_prefix << cpp_kernel.getInfo<CL_KERNEL_FUNCTION_NAME>();
+ if(gws != nullptr)
+ {
+ ss << " GWS[" << gws[0] << "," << gws[1] << "," << gws[2] << "]";
+ }
+ if(lws != nullptr)
+ {
+ ss << " LWS[" << lws[0] << "," << lws[1] << "," << lws[2] << "]";
+ }
+ info.name = ss.str();
+ cl_event tmp;
+ cl_int retval = this->_real_function(command_queue, kernel, work_dim, gwo, gws, lws, num_events_in_wait_list, event_wait_list, &tmp);
+ info.event = tmp;
+ this->_kernels.push_back(std::move(info));
+ return retval;
}
- if(lws != nullptr)
+ else
{
- ss << " LWS[" << lws[0] << "," << lws[1] << "," << lws[2] << "]";
+ return this->_real_function(command_queue, kernel, work_dim, gwo, gws, lws, num_events_in_wait_list, event_wait_list, event);
}
- info.name = ss.str();
- cl_event tmp;
- cl_int retval = this->_real_function(command_queue, kernel, work_dim, gwo, gws, lws, num_events_in_wait_list, event_wait_list, &tmp);
- info.event = tmp;
- this->_kernels.push_back(std::move(info));
- return retval;
};
// Start intercepting tasks:
@@ -140,6 +147,11 @@
void OpenCLTimer::start()
{
_kernels.clear();
+ _timer_enabled = true;
+}
+void OpenCLTimer::stop()
+{
+ _timer_enabled = false;
}
void OpenCLTimer::test_stop()