// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include #include #include #include #include #define ARMNN_SCOPED_PROFILING_EVENT_NEON(name) \ ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::CpuAcc, \ name, \ armnn::NeonTimer(), \ armnn::WallClockTimer()) using namespace armnn::armcomputetensorutils; namespace armnn { template void CopyArmComputeTensorData(arm_compute::Tensor& dstTensor, const T* srcData) { InitialiseArmComputeTensorEmpty(dstTensor); CopyArmComputeITensorData(srcData, dstTensor); } inline void InitializeArmComputeTensorData(arm_compute::Tensor& tensor, const ConstCpuTensorHandle* handle) { BOOST_ASSERT(handle); switch(handle->GetTensorInfo().GetDataType()) { case DataType::Float16: CopyArmComputeTensorData(tensor, handle->GetConstTensor()); break; case DataType::Float32: CopyArmComputeTensorData(tensor, handle->GetConstTensor()); break; case DataType::QuantisedAsymm8: CopyArmComputeTensorData(tensor, handle->GetConstTensor()); break; case DataType::Signed32: CopyArmComputeTensorData(tensor, handle->GetConstTensor()); break; default: BOOST_ASSERT_MSG(false, "Unexpected tensor type."); } }; } //namespace armnn