1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "Instrument.hpp" 9 10 #include <arm_compute/runtime/IScheduler.h> 11 #include <arm_compute/runtime/Scheduler.h> 12 #include <arm_compute/core/CPP/ICPPKernel.h> 13 14 #include <chrono> 15 #include <map> 16 #include <list> 17 18 namespace armnn 19 { 20 21 class NeonTimer : public Instrument 22 { 23 public: 24 using KernelMeasurements = std::vector<Measurement>; 25 26 NeonTimer() = default; 27 ~NeonTimer() = default; 28 29 void Start() override; 30 31 void Stop() override; 32 33 bool HasKernelMeasurements() const override; 34 35 std::vector<Measurement> GetMeasurements() const override; 36 37 const char* GetName() const override; 38 39 private: 40 KernelMeasurements m_Kernels; 41 arm_compute::IScheduler* m_RealScheduler; 42 arm_compute::Scheduler::Type m_RealSchedulerType; 43 }; 44 45 }