blob: f2be7dc326dacc06f564ae24b92abce9e1476a61 [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
Kevin May251fd952022-10-05 14:42:55 +010033 bool HasKernelMeasurements() const override;
34
telsoa01c577f2c2018-08-31 09:22:23 +010035 std::vector<Measurement> GetMeasurements() const override;
36
37 const char* GetName() const override;
38
39private:
40 KernelMeasurements m_Kernels;
41 arm_compute::IScheduler* m_RealScheduler;
42 arm_compute::Scheduler::Type m_RealSchedulerType;
43};
44
45}