From ce58a9f8f8504c165ca4527bfd991a4029437cba Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Tue, 31 Oct 2017 17:59:17 +0000 Subject: COMPMID-622 Let the user choose the units for the instruments Change-Id: Ic6ac4cd6df6970593a5e2e6310b6d61951c88898 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/93887 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- tests/framework/instruments/OpenCLTimer.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'tests/framework/instruments/OpenCLTimer.cpp') diff --git a/tests/framework/instruments/OpenCLTimer.cpp b/tests/framework/instruments/OpenCLTimer.cpp index 819ecdb743..3de953fbe7 100644 --- a/tests/framework/instruments/OpenCLTimer.cpp +++ b/tests/framework/instruments/OpenCLTimer.cpp @@ -90,7 +90,7 @@ private: OpenCLTimer &_timer; }; -OpenCLTimer::OpenCLTimer() +OpenCLTimer::OpenCLTimer(ScaleFactor scale_factor) : real_function(CLSymbols::get().clEnqueueNDRangeKernel_ptr) { auto q = CLScheduler::get().queue(); @@ -99,6 +99,28 @@ OpenCLTimer::OpenCLTimer() { CLScheduler::get().set_queue(cl::CommandQueue(CLScheduler::get().context(), props | CL_QUEUE_PROFILING_ENABLE)); } + + switch(scale_factor) + { + case ScaleFactor::NONE: + _scale_factor = 1.f; + _unit = "ns"; + break; + case ScaleFactor::TIME_US: + _scale_factor = 1000.f; + _unit = "us"; + break; + case ScaleFactor::TIME_MS: + _scale_factor = 1000000.f; + _unit = "ms"; + break; + case ScaleFactor::TIME_S: + _scale_factor = 1000000000.f; + _unit = "s"; + break; + default: + ARM_COMPUTE_ERROR("Invalid scale"); + } } void OpenCLTimer::start() @@ -133,7 +155,7 @@ Instrument::MeasurementsMap OpenCLTimer::measurements() const "start", support::cpp11::to_string(start), "end", support::cpp11::to_string(end), }; - measurements.emplace(kernel.name + " #" + support::cpp11::to_string(kernel_number++), Measurement(end - start, "ns", raw_data)); + measurements.emplace(kernel.name + " #" + support::cpp11::to_string(kernel_number++), Measurement((end - start) / _scale_factor, _unit, raw_data)); } return measurements; -- cgit v1.2.1