14 template<
typename T, std::
size_t n>
17 boost::multi_array<T, n> input,
27 ret.
outputExpected = MakeTensor<uint32_t, 1>(outputTensorInfo, { n });
30 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.
CreateTensorHandle(inputTensorInfo);
31 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.
CreateTensorHandle(outputTensorInfo);
36 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
37 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
39 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateRank(data, info);
41 inputHandle->Allocate();
42 outputHandle->Allocate();
53 template<armnn::DataType ArmnnType,
typename T>
59 auto input = MakeTensor<T, 1>(inputTensorInfo, ConvertToDataType<ArmnnType>(
60 { -37.5f, -15.2f, -8.76f, -2.0f, -1.3f, -0.5f },
63 return RankTest<T, 1>(inputTensorInfo, input, workloadFactory, memoryManager);
66 template<armnn::DataType ArmnnType,
typename T>
72 auto input = MakeTensor<T, 2>(inputTensorInfo, ConvertToDataType<ArmnnType>(
73 { -37.5f, -15.2f, -8.76f },
76 return RankTest<T, 2>(inputTensorInfo, input, workloadFactory, memoryManager);
79 template<armnn::DataType ArmnnType,
typename T>
85 auto input = MakeTensor<T, 3>(inputTensorInfo, ConvertToDataType<ArmnnType>(
86 { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f},
89 return RankTest<T, 3>(inputTensorInfo, input, workloadFactory, memoryManager);
92 template<armnn::DataType ArmnnType,
typename T>
98 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
99 { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f, -0.5f, -0.4f, 0.0f,
100 1.0f, 0.4f, 0.5f, 1.3f, 1.5f, 2.0f, 8.76f, 15.2f, 37.5f },
103 return RankTest<T, 4>(inputTensorInfo, input, workloadFactory, memoryManager);
107 RankDimSize4Test<armnn::DataType::Float16>(
112 RankDimSize4Test<armnn::DataType::Float32>(
117 RankDimSize4Test<armnn::DataType::QAsymmU8>(
122 RankDimSize4Test<armnn::DataType::Signed32>(
127 RankDimSize4Test<armnn::DataType::QSymmS16>(
132 RankDimSize4Test<armnn::DataType::QSymmS8>(
137 RankDimSize4Test<armnn::DataType::QAsymmS8>(
142 RankDimSize4Test<armnn::DataType::BFloat16>(
147 RankDimSize3Test<armnn::DataType::Float16>(
152 RankDimSize3Test<armnn::DataType::Float32>(
157 RankDimSize3Test<armnn::DataType::QAsymmU8>(
162 RankDimSize3Test<armnn::DataType::Signed32>(
167 RankDimSize3Test<armnn::DataType::QSymmS16>(
172 RankDimSize3Test<armnn::DataType::QSymmS8>(
177 RankDimSize3Test<armnn::DataType::QAsymmS8>(
182 RankDimSize3Test<armnn::DataType::BFloat16>(
187 RankDimSize2Test<armnn::DataType::Float16>(
192 RankDimSize2Test<armnn::DataType::Float32>(
197 RankDimSize2Test<armnn::DataType::QAsymmU8>(
202 RankDimSize2Test<armnn::DataType::Signed32>(
207 RankDimSize2Test<armnn::DataType::QSymmS16>(
212 RankDimSize2Test<armnn::DataType::QSymmS8>(
217 RankDimSize2Test<armnn::DataType::QAsymmS8>(
222 RankDimSize2Test<armnn::DataType::BFloat16>(
227 RankDimSize1Test<armnn::DataType::Float16>(
232 RankDimSize1Test<armnn::DataType::Float32>(
237 RankDimSize1Test<armnn::DataType::QAsymmU8>(
242 RankDimSize1Test<armnn::DataType::Signed32>(
247 RankDimSize1Test<armnn::DataType::QSymmS16>(
252 RankDimSize1Test<armnn::DataType::QSymmS8>(
257 RankDimSize1Test<armnn::DataType::QAsymmS8>(
262 RankDimSize1Test<armnn::DataType::BFloat16>(
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
boost::multi_array< T, n > outputExpected
LayerTestResult< int32_t, 1 > RankDimSize1Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void IgnoreUnused(Ts &&...)
LayerTestResult< int32_t, 1 > RankDimSize3Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
virtual std::unique_ptr< IWorkload > CreateRank(const RankQueueDescriptor &descriptor, const WorkloadInfo &info) const
#define ARMNN_NO_DEPRECATE_WARN_END
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const =0
boost::multi_array< T, n > output
LayerTestResult< int32_t, 1 > RankDimSize4Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
Contains information about inputs and outputs to a layer.
LayerTestResult< int32_t, 1 > RankTest(armnn::TensorInfo inputTensorInfo, boost::multi_array< T, n > input, armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
LayerTestResult< int32_t, 1 > RankDimSize2Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)