From 69851b525b9040ee7bf4b796efe74d473bc4e321 Mon Sep 17 00:00:00 2001 From: Nina Drozd Date: Fri, 21 Sep 2018 18:42:09 +0100 Subject: IVGCVSW-1821 - update NEON workload utils to use timers in correct order, updated units used in NeonTimer Change-Id: I593af42bd2930dd9d147354b706087e3ac260fe9 --- src/armnn/WallClockTimer.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/armnn/WallClockTimer.cpp') diff --git a/src/armnn/WallClockTimer.cpp b/src/armnn/WallClockTimer.cpp index 882b7eb6ef..911b0147e0 100644 --- a/src/armnn/WallClockTimer.cpp +++ b/src/armnn/WallClockTimer.cpp @@ -4,6 +4,7 @@ // #include "WallClockTimer.hpp" +#include "armnn/Exceptions.hpp" namespace armnn { @@ -27,15 +28,34 @@ void WallClockTimer::Stop() m_Stop = clock::now(); } +void WallClockTimer::SetScaleFactor(Measurement::Unit measurementUnit) +{ + switch(measurementUnit) + { + case Measurement::TIME_MS: + m_ScaleFactor = 1.f; + break; + case Measurement::TIME_US: + m_ScaleFactor = 1000.f; + break; + case Measurement::TIME_NS: + m_ScaleFactor = 1000000.f; + break; + default: + throw InvalidArgumentException("Invalid scale used"); + } + m_Unit = measurementUnit; +} + std::vector WallClockTimer::GetMeasurements() const { const auto delta = std::chrono::duration(m_Stop - m_Start); const auto startTimeMs = std::chrono::duration(m_Start.time_since_epoch()); const auto stopTimeMs = std::chrono::duration(m_Stop.time_since_epoch()); - return { { WALL_CLOCK_TIME, delta.count(), Measurement::Unit::TIME_MS }, - { WALL_CLOCK_TIME_START, startTimeMs.count(), Measurement::Unit::TIME_MS }, - { WALL_CLOCK_TIME_STOP, stopTimeMs.count(), Measurement::Unit::TIME_MS } }; + return { { WALL_CLOCK_TIME, delta.count() * m_ScaleFactor, m_Unit }, + { WALL_CLOCK_TIME_START, startTimeMs.count() * m_ScaleFactor, m_Unit }, + { WALL_CLOCK_TIME_STOP, stopTimeMs.count() * m_ScaleFactor, m_Unit } }; } } //namespace armnn -- cgit v1.2.1