14 template<
typename T, std::
size_t n>
27 std::vector<int32_t> actualOutput(outputTensorInfo.
GetNumElements());
28 std::vector<int32_t> expectedOutput = { n };
30 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.
CreateTensorHandle(inputTensorInfo);
31 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputTensorInfo);
35 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
36 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
38 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.
CreateRank(data, info);
40 inputHandle->Allocate();
41 outputHandle->Allocate();
51 outputHandle->GetShape(),
55 template<armnn::DataType ArmnnType,
typename T>
62 auto input = ConvertToDataType<ArmnnType>({ -37.5f, -15.2f, -8.76f, -2.0f, -1.3f, -0.5f }, inputTensorInfo);
64 return RankTest<T, 1>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
67 template<armnn::DataType ArmnnType,
typename T>
74 auto input = ConvertToDataType<ArmnnType>({ -37.5f, -15.2f, -8.76f }, inputTensorInfo);
76 return RankTest<T, 2>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
79 template<armnn::DataType ArmnnType,
typename T>
86 auto input = ConvertToDataType<ArmnnType>({ -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f}, inputTensorInfo);
88 return RankTest<T, 3>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
91 template<armnn::DataType ArmnnType,
typename T>
98 auto input = 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, tensorHandleFactory);
107 RankDimSize4Test<armnn::DataType::Float16>(
113 RankDimSize4Test<armnn::DataType::Float32>(
119 RankDimSize4Test<armnn::DataType::QAsymmU8>(
125 RankDimSize4Test<armnn::DataType::Signed32>(
131 RankDimSize4Test<armnn::DataType::QSymmS16>(
137 RankDimSize4Test<armnn::DataType::QSymmS8>(
143 RankDimSize4Test<armnn::DataType::QAsymmS8>(
149 RankDimSize4Test<armnn::DataType::BFloat16>(
155 RankDimSize3Test<armnn::DataType::Float16>(
161 RankDimSize3Test<armnn::DataType::Float32>(
167 RankDimSize3Test<armnn::DataType::QAsymmU8>(
173 RankDimSize3Test<armnn::DataType::Signed32>(
179 RankDimSize3Test<armnn::DataType::QSymmS16>(
185 RankDimSize3Test<armnn::DataType::QSymmS8>(
191 RankDimSize3Test<armnn::DataType::QAsymmS8>(
197 RankDimSize3Test<armnn::DataType::BFloat16>(
203 RankDimSize2Test<armnn::DataType::Float16>(
209 RankDimSize2Test<armnn::DataType::Float32>(
215 RankDimSize2Test<armnn::DataType::QAsymmU8>(
221 RankDimSize2Test<armnn::DataType::Signed32>(
227 RankDimSize2Test<armnn::DataType::QSymmS16>(
233 RankDimSize2Test<armnn::DataType::QSymmS8>(
239 RankDimSize2Test<armnn::DataType::QAsymmS8>(
245 RankDimSize2Test<armnn::DataType::BFloat16>(
251 RankDimSize1Test<armnn::DataType::Float16>(
257 RankDimSize1Test<armnn::DataType::Float32>(
263 RankDimSize1Test<armnn::DataType::QAsymmU8>(
269 RankDimSize1Test<armnn::DataType::Signed32>(
275 RankDimSize1Test<armnn::DataType::QSymmS16>(
281 RankDimSize1Test<armnn::DataType::QSymmS8>(
287 RankDimSize1Test<armnn::DataType::QAsymmS8>(
293 RankDimSize1Test<armnn::DataType::BFloat16>(
const TensorShape & GetShape() const
LayerTestResult< int32_t, 1 > RankTest(armnn::TensorInfo inputTensorInfo, std::vector< T > input, armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void IgnoreUnused(Ts &&...)
virtual std::unique_ptr< IWorkload > CreateRank(const RankQueueDescriptor &descriptor, const WorkloadInfo &info) const
LayerTestResult< int32_t, 1 > RankDimSize4Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
void CopyDataFromITensorHandle(void *memory, const armnn::ITensorHandle *tensorHandle)
LayerTestResult< int32_t, 1 > RankDimSize2Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int32_t, 1 > RankDimSize3Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about TensorInfos of a layer.
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
unsigned int GetNumElements() const
LayerTestResult< int32_t, 1 > RankDimSize1Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)