2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
7 #include <backendsCommon/Workload.hpp>
8 #include <aclCommon/ArmComputeTensorUtils.hpp>
9 #include <neon/NeonTensorHandle.hpp>
10 #include <neon/NeonTimer.hpp>
11 #include <backendsCommon/CpuTensorHandle.hpp>
12 #include <arm_compute/runtime/NEON/NEFunctions.h>
16 #define ARMNN_SCOPED_PROFILING_EVENT_NEON(name) \
17 ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::CpuAcc, \
20 armnn::WallClockTimer())
22 using namespace armnn::armcomputetensorutils;
28 void CopyArmComputeTensorData(arm_compute::Tensor& dstTensor, const T* srcData)
30 InitialiseArmComputeTensorEmpty(dstTensor);
31 CopyArmComputeITensorData(srcData, dstTensor);
34 inline void InitializeArmComputeTensorData(arm_compute::Tensor& tensor,
35 const ConstCpuTensorHandle* handle)
39 switch(handle->GetTensorInfo().GetDataType())
41 case DataType::Float16:
42 CopyArmComputeTensorData(tensor, handle->GetConstTensor<armnn::Half>());
44 case DataType::Float32:
45 CopyArmComputeTensorData(tensor, handle->GetConstTensor<float>());
47 case DataType::QuantisedAsymm8:
48 CopyArmComputeTensorData(tensor, handle->GetConstTensor<uint8_t>());
50 case DataType::Signed32:
51 CopyArmComputeTensorData(tensor, handle->GetConstTensor<int32_t>());
54 BOOST_ASSERT_MSG(false, "Unexpected tensor type.");