Release 18.08
[platform/upstream/armnn.git] / src / armnn / NeonTimer.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
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     std::vector<Measurement> GetMeasurements() const override;
34
35     const char* GetName() const override;
36
37 private:
38     KernelMeasurements m_Kernels;
39     arm_compute::IScheduler* m_RealScheduler;
40     arm_compute::Scheduler::Type m_RealSchedulerType;
41 };
42
43 }