14 template<
typename T, std::
size_t n>
17 boost::multi_array<T, n> input,
28 ret.
outputExpected = MakeTensor<uint32_t, 1>(outputTensorInfo, { 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();
52 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, tensorHandleFactory);
66 template<armnn::DataType ArmnnType,
typename T>
73 auto input = MakeTensor<T, 2>(inputTensorInfo, ConvertToDataType<ArmnnType>(
74 { -37.5f, -15.2f, -8.76f },
77 return RankTest<T, 2>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
80 template<armnn::DataType ArmnnType,
typename T>
87 auto input = MakeTensor<T, 3>(inputTensorInfo, ConvertToDataType<ArmnnType>(
88 { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f},
91 return RankTest<T, 3>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
94 template<armnn::DataType ArmnnType,
typename T>
101 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
102 { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f, -0.5f, -0.4f, 0.0f,
103 1.0f, 0.4f, 0.5f, 1.3f, 1.5f, 2.0f, 8.76f, 15.2f, 37.5f },
106 return RankTest<T, 4>(inputTensorInfo, input, workloadFactory, memoryManager, tensorHandleFactory);
110 RankDimSize4Test<armnn::DataType::Float16>(
116 RankDimSize4Test<armnn::DataType::Float32>(
122 RankDimSize4Test<armnn::DataType::QAsymmU8>(
128 RankDimSize4Test<armnn::DataType::Signed32>(
134 RankDimSize4Test<armnn::DataType::QSymmS16>(
140 RankDimSize4Test<armnn::DataType::QSymmS8>(
146 RankDimSize4Test<armnn::DataType::QAsymmS8>(
152 RankDimSize4Test<armnn::DataType::BFloat16>(
158 RankDimSize3Test<armnn::DataType::Float16>(
164 RankDimSize3Test<armnn::DataType::Float32>(
170 RankDimSize3Test<armnn::DataType::QAsymmU8>(
176 RankDimSize3Test<armnn::DataType::Signed32>(
182 RankDimSize3Test<armnn::DataType::QSymmS16>(
188 RankDimSize3Test<armnn::DataType::QSymmS8>(
194 RankDimSize3Test<armnn::DataType::QAsymmS8>(
200 RankDimSize3Test<armnn::DataType::BFloat16>(
206 RankDimSize2Test<armnn::DataType::Float16>(
212 RankDimSize2Test<armnn::DataType::Float32>(
218 RankDimSize2Test<armnn::DataType::QAsymmU8>(
224 RankDimSize2Test<armnn::DataType::Signed32>(
230 RankDimSize2Test<armnn::DataType::QSymmS16>(
236 RankDimSize2Test<armnn::DataType::QSymmS8>(
242 RankDimSize2Test<armnn::DataType::QAsymmS8>(
248 RankDimSize2Test<armnn::DataType::BFloat16>(
254 RankDimSize1Test<armnn::DataType::Float16>(
260 RankDimSize1Test<armnn::DataType::Float32>(
266 RankDimSize1Test<armnn::DataType::QAsymmU8>(
272 RankDimSize1Test<armnn::DataType::Signed32>(
278 RankDimSize1Test<armnn::DataType::QSymmS16>(
284 RankDimSize1Test<armnn::DataType::QSymmS8>(
290 RankDimSize1Test<armnn::DataType::QAsymmS8>(
296 RankDimSize1Test<armnn::DataType::BFloat16>(
boost::multi_array< T, n > outputExpected
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)
boost::multi_array< T, n > output
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, const armnn::ITensorHandleFactory &tensorHandleFactory)
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
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)