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()
diff --git a/tests/framework/instruments/OpenCLTimer.h b/tests/framework/instruments/OpenCLTimer.h
index 059f449..c5f3bce 100644
--- a/tests/framework/instruments/OpenCLTimer.h
+++ b/tests/framework/instruments/OpenCLTimer.h
@@ -52,6 +52,7 @@
std::string id() const override;
void test_start() override;
void start() override;
+ void stop() override;
void test_stop() override;
MeasurementsMap measurements() const override;
@@ -66,6 +67,7 @@
std::function<decltype(clEnqueueNDRangeKernel)> _real_function;
std::function<decltype(graph::execute_task)> _real_graph_function;
std::string _prefix;
+ bool _timer_enabled;
#endif /* ARM_COMPUTE_CL */
private: