aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/NeonInterceptorScheduler.hpp
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-10-12 13:00:55 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commit3b278e9261bd0de67c82f7d6c36731f118124f52 (patch)
tree3750ee01827809141752302e94d4d25a21f88492 /src/backends/neon/NeonInterceptorScheduler.hpp
parentd3360cd490eafc76ceddb6760054bd80444179c1 (diff)
downloadarmnn-3b278e9261bd0de67c82f7d6c36731f118124f52.tar.gz
IVGCVSW-1938: Move backend-specific source files to the corresponding backend
Change-Id: I558a9a007604afc55e536d877f8da7d0215cc9c3
Diffstat (limited to 'src/backends/neon/NeonInterceptorScheduler.hpp')
-rw-r--r--src/backends/neon/NeonInterceptorScheduler.hpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/backends/neon/NeonInterceptorScheduler.hpp b/src/backends/neon/NeonInterceptorScheduler.hpp
new file mode 100644
index 0000000000..f33b79a2da
--- /dev/null
+++ b/src/backends/neon/NeonInterceptorScheduler.hpp
@@ -0,0 +1,38 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "NeonTimer.hpp"
+#include "WallClockTimer.hpp"
+
+#include <arm_compute/runtime/IScheduler.h>
+#include <arm_compute/runtime/Scheduler.h>
+#include <arm_compute/core/CPP/ICPPKernel.h>
+
+namespace armnn
+{
+
+class NeonInterceptorScheduler : public arm_compute::IScheduler
+{
+public:
+ NeonInterceptorScheduler(arm_compute::IScheduler &realScheduler);
+ ~NeonInterceptorScheduler() = default;
+
+ void set_num_threads(unsigned int numThreads) override;
+
+ unsigned int num_threads() const override;
+
+ void schedule(arm_compute::ICPPKernel *kernel, const Hints &hints) override;
+
+ void run_workloads(std::vector<Workload> &workloads) override;
+
+ void SetKernels(NeonTimer::KernelMeasurements* kernels) { m_Kernels = kernels; }
+ NeonTimer::KernelMeasurements* GetKernels() { return m_Kernels; }
+private:
+ NeonTimer::KernelMeasurements* m_Kernels;
+ arm_compute::IScheduler& m_RealScheduler;
+};
+
+} // namespace armnn