blob: 31d3e85a7c0eef43c932477df341e0398bb688a8 [file] [log] [blame]
telsoa01c577f2c2018-08-31 09:22:23 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa01c577f2c2018-08-31 09:22:23 +01004//
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
18namespace armnn
19{
20
21class NeonTimer : public Instrument
22{
23public:
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 std::vector<Measurement> GetMeasurements() const override;
34
35 const char* GetName() const override;
36
37private:
38 KernelMeasurements m_Kernels;
39 arm_compute::IScheduler* m_RealScheduler;
40 arm_compute::Scheduler::Type m_RealSchedulerType;
41};
42
43}