17 #define ARMNN_SCOPED_PROFILING_EVENT_NEON(name) \ 18 ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::CpuAcc, \ 19 armnn::EmptyOptional(), \ 22 armnn::WallClockTimer()) 24 #define ARMNN_SCOPED_PROFILING_EVENT_NEON_GUID(name, guid) \ 25 ARMNN_SCOPED_PROFILING_EVENT_WITH_INSTRUMENTS(armnn::Compute::CpuAcc, \ 29 armnn::WallClockTimer()) 38 switch (convolutionMethod)
40 case arm_compute::ConvolutionMethod::FFT:
42 case arm_compute::ConvolutionMethod::DIRECT:
44 case arm_compute::ConvolutionMethod::GEMM:
46 case arm_compute::ConvolutionMethod::WINOGRAD:
56 InitialiseArmComputeTensorEmpty(dstTensor);
57 CopyArmComputeITensorData(srcData, dstTensor);
96 const std::vector<int>& m_end,
97 const std::vector<int>& m_stride)
103 unsigned int num_dims =
static_cast<unsigned int>(m_begin.size());
105 for (
unsigned int i = 0; i < num_dims; i++)
107 unsigned int revertedIndex = num_dims - i - 1;
109 starts.set(i, static_cast<int>(m_begin[revertedIndex]));
110 ends.set(i, static_cast<int>(m_end[revertedIndex]));
111 strides.set(i, static_cast<int>(m_stride[revertedIndex]));
114 return std::make_tuple(starts, ends, strides);
118 const std::vector<unsigned int>& m_size)
125 unsigned int num_dims =
static_cast<unsigned int>(m_begin.size());
130 for (
unsigned int i = 0; i < num_dims; i++)
132 unsigned int revertedIndex = num_dims - i - 1;
134 starts.set(i, static_cast<int>(m_begin[revertedIndex]));
135 ends.set(i, static_cast<int>(m_begin[revertedIndex] + m_size[revertedIndex]));
138 return std::make_tuple(starts, ends);
141 template <
typename DataType,
typename PayloadType>
145 return reinterpret_cast<DataType*
>(tensorHandle->
Map());
std::string GetConvolutionMethodString(arm_compute::ConvolutionMethod &convolutionMethod)
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
std::array< unsigned int, MaxNumOfTensorDimensions > Coordinates
Copyright (c) 2021 ARM Limited and Contributors.
auto SetNeonStridedSliceData(const std::vector< int > &m_begin, const std::vector< int > &m_end, const std::vector< int > &m_stride)
const TensorInfo & GetTensorInfo() const
#define ARMNN_NO_DEPRECATE_WARN_END
#define ARMNN_ASSERT_MSG(COND, MSG)
DataType GetDataType() const
auto SetNeonSliceData(const std::vector< unsigned int > &m_begin, const std::vector< unsigned int > &m_size)
#define ARMNN_FALLTHROUGH
#define ARMNN_ASSERT(COND)
virtual const void * Map(bool blocking=true) const =0
Map the tensor data for access.
void CopyArmComputeTensorData(arm_compute::Tensor &dstTensor, const T *srcData)
DataType * GetOutputTensorData(unsigned int idx, const PayloadType &data)
void InitializeArmComputeTensorData(arm_compute::Tensor &tensor, const ConstTensorHandle *handle)
const T * GetConstTensor() const