Release 18.08
[platform/upstream/armnn.git] / src / armnn / backends / NeonWorkloadUtils.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
4 //
5 #pragma once
6
7 #include "Workload.hpp"
8
9 #include "backends/NeonTensorHandle.hpp"
10 #include "NeonTimer.hpp"
11
12 #include "arm_compute/core/Types.h"
13 #include "arm_compute/core/Helpers.h"
14 #include "arm_compute/runtime/NEON/NEFunctions.h"
15 #include <arm_compute/runtime/SubTensor.h>
16
17 #include <boost/cast.hpp>
18
19 namespace armnn
20 {
21 class Layer;
22
23 template<typename T>
24 void InitialiseArmComputeTensorData(arm_compute::Tensor& tensor, const T* data);
25
26 void InitializeArmComputeTensorDataForFloatTypes(arm_compute::Tensor& tensor, const ConstCpuTensorHandle* handle);
27 } //namespace armnn
28
29
30 #define     ARMNN_SCOPED_PROFILING_EVENT_NEON(name) \
31     ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::CpuAcc, \
32                                                   name, \
33                                                   armnn::WallClockTimer(), \
34                                                   armnn::NeonTimer())