blob: d63cc04e999279975101381c44aa05e01f4a5abd [file] [log] [blame]
Nikhil Raj68c2c902019-09-19 11:21:11 +01001//
Teresa Charlinfbf0e5b2020-08-17 01:01:06 +01002// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
Nikhil Raj68c2c902019-09-19 11:21:11 +01003// SPDX-License-Identifier: MIT
4//
5
6#include "ArgMinMaxTestImpl.hpp"
7
Nikhil Raj68c2c902019-09-19 11:21:11 +01008
9#include <backendsCommon/test/DataTypeUtils.hpp>
10#include <backendsCommon/test/TensorCopyUtils.hpp>
11#include <backendsCommon/test/WorkloadTestUtils.hpp>
12
13#include <test/TensorHelpers.hpp>
14
15namespace
16{
17
18template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
19LayerTestResult<int32_t, 3> ArgMinMaxTestCommon(
20 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +010021 const armnn::IBackendInternal::IMemoryManagerSharedPtr&,
Sadik Armagan89de3b42020-08-28 10:38:53 +010022 const armnn::ITensorHandleFactory& tensorHandleFactory,
Nikhil Raj68c2c902019-09-19 11:21:11 +010023 armnn::ArgMinMaxFunction argMinMaxFunction,
24 const armnn::TensorInfo inputTensorInfo,
25 const armnn::TensorInfo outputTensorInfo,
26 const std::vector<float>& inputData,
27 const std::vector<int32_t>& outputData,
28 int axis = 3)
29{
30 auto inputTensor = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(inputData, inputTensorInfo));
31
32 LayerTestResult<int32_t, 3> result(outputTensorInfo);
Nikhil Raj68c2c902019-09-19 11:21:11 +010033 result.outputExpected = MakeTensor<int32_t, 3>(outputTensorInfo, outputData);
34
Sadik Armagan89de3b42020-08-28 10:38:53 +010035 std::unique_ptr<armnn::ITensorHandle> inputHandle = tensorHandleFactory.CreateTensorHandle(inputTensorInfo);
36 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.CreateTensorHandle(outputTensorInfo);
Nikhil Raj68c2c902019-09-19 11:21:11 +010037
38 armnn::ArgMinMaxQueueDescriptor descriptor;
39 descriptor.m_Parameters.m_Function = argMinMaxFunction;
40 descriptor.m_Parameters.m_Axis = axis;
41 armnn::WorkloadInfo info;
42
43 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
44 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
45
46 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateArgMinMax(descriptor, info);
47
48 inputHandle->Allocate();
49 outputHandle->Allocate();
50
51 CopyDataToITensorHandle(inputHandle.get(), &inputTensor[0][0][0][0]);
52
53 workload->PostAllocationConfigure();
54 workload->Execute();
55
56 CopyDataFromITensorHandle(&result.output[0][0][0], outputHandle.get());
57
58 return result;
Nikhil Raj68c2c902019-09-19 11:21:11 +010059}
60
61} // namespace
62
63template<armnn::DataType ArmnnType, typename T>
64LayerTestResult<int32_t, 3> ArgMaxSimpleTest(
65 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +010066 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +010067 const armnn::ITensorHandleFactory& tensorHandleFactory)
Nikhil Raj68c2c902019-09-19 11:21:11 +010068{
69 const armnn::TensorShape inputShape{ 1, 1, 1, 5 };
70 const armnn::TensorShape outputShape{ 1, 1, 1 };
71
72 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
73
Francis Murtagh52ec3462019-11-19 12:24:19 +000074 if (armnn::IsQuantizedType<T>())
Nikhil Raj68c2c902019-09-19 11:21:11 +010075 {
76 inputTensorInfo.SetQuantizationScale(1.0f);
77 inputTensorInfo.SetQuantizationOffset(0);
78 }
79
80 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
81
82 std::vector<float> inputValues({ 5.0f, 2.0f, 8.0f, 10.0f, 9.0f });
83 std::vector<int32_t> outputValues({ 3 });
84
Sadik Armagan43528ac2020-08-27 09:06:40 +010085 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
Nikhil Raj68c2c902019-09-19 11:21:11 +010086 armnn::ArgMinMaxFunction::Max,
87 inputTensorInfo, outputTensorInfo,
James Conroyd47a0642019-09-17 14:22:06 +010088 inputValues, outputValues, -1); // axis -1 === 3
Nikhil Raj68c2c902019-09-19 11:21:11 +010089}
90
91template<armnn::DataType ArmnnType, typename T>
92LayerTestResult<int32_t, 3> ArgMinSimpleTest(
93 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +010094 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +010095 const armnn::ITensorHandleFactory& tensorHandleFactory)
Nikhil Raj68c2c902019-09-19 11:21:11 +010096{
97 const armnn::TensorShape inputShape{ 1, 1, 1, 5 };
98 const armnn::TensorShape outputShape{ 1, 1, 1 };
99
100 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
101
Francis Murtagh52ec3462019-11-19 12:24:19 +0000102 if (armnn::IsQuantizedType<T>())
Nikhil Raj68c2c902019-09-19 11:21:11 +0100103 {
104 inputTensorInfo.SetQuantizationScale(1.0f);
105 inputTensorInfo.SetQuantizationOffset(0);
106 }
107
108 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
109
110 std::vector<float> inputValues({ 5.0f, 2.0f, 8.0f, 10.0f, 9.0f });
111 std::vector<int32_t> outputValues({ 1 });
112
Sadik Armagan43528ac2020-08-27 09:06:40 +0100113 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
Nikhil Raj68c2c902019-09-19 11:21:11 +0100114 armnn::ArgMinMaxFunction::Min,
115 inputTensorInfo, outputTensorInfo,
116 inputValues, outputValues, 3);
117}
118
119template<armnn::DataType ArmnnType, typename T>
James Conroyd47a0642019-09-17 14:22:06 +0100120LayerTestResult<int32_t, 3> ArgMinChannelTest(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100121 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100123 const armnn::ITensorHandleFactory& tensorHandleFactory)
Nikhil Raj68c2c902019-09-19 11:21:11 +0100124{
125 const armnn::TensorShape inputShape{ 1, 3, 2, 4};
126 const armnn::TensorShape outputShape{ 1, 2, 4 };
127
128 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
129
Francis Murtagh52ec3462019-11-19 12:24:19 +0000130 if (armnn::IsQuantizedType<T>())
Nikhil Raj68c2c902019-09-19 11:21:11 +0100131 {
132 inputTensorInfo.SetQuantizationScale(1.0f);
133 inputTensorInfo.SetQuantizationOffset(0);
134 }
135
136 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
137
James Conroyd47a0642019-09-17 14:22:06 +0100138 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
139 5.0f, 6.0f, 7.0f, 8.0f,
140
141 10.0f, 20.0f, 30.0f, 40.0f,
142 50.0f, 60.0f, 70.0f, 80.0f,
143
144 100.0f, 200.0f, 300.0f, 400.0f,
145 500.0f, 600.0f, 700.0f, 800.0f });
146 std::vector<int32_t> outputValues({ 0, 0, 0, 0,
147 0, 0, 0, 0 });
148
Sadik Armagan43528ac2020-08-27 09:06:40 +0100149 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
James Conroyd47a0642019-09-17 14:22:06 +0100150 armnn::ArgMinMaxFunction::Min,
151 inputTensorInfo, outputTensorInfo,
152 inputValues, outputValues, 1);
153}
154
155template<armnn::DataType ArmnnType, typename T>
156LayerTestResult<int32_t, 3> ArgMaxChannelTest(
157 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100158 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100159 const armnn::ITensorHandleFactory& tensorHandleFactory)
James Conroyd47a0642019-09-17 14:22:06 +0100160{
161 const armnn::TensorShape inputShape{ 1, 3, 2, 4};
162 const armnn::TensorShape outputShape{ 1, 2, 4 };
163
164 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
165
Francis Murtagh52ec3462019-11-19 12:24:19 +0000166 if (armnn::IsQuantizedType<T>())
James Conroyd47a0642019-09-17 14:22:06 +0100167 {
168 inputTensorInfo.SetQuantizationScale(1.0f);
169 inputTensorInfo.SetQuantizationOffset(0);
170 }
171
172 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
173
174 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
175 5.0f, 6.0f, 7.0f, 8.0f,
Nikhil Raj68c2c902019-09-19 11:21:11 +0100176
177 10.0f, 20.0f, 30.0f, 40.0f,
178 50.0f, 60.0f, 70.0f, 80.0f,
179
James Conroyd47a0642019-09-17 14:22:06 +0100180 100.0f, 200.0f, 300.0f, 400.0f,
181 500.0f, 600.0f, 700.0f, 800.0f });
Nikhil Raj68c2c902019-09-19 11:21:11 +0100182 std::vector<int32_t> outputValues({ 2, 2, 2, 2,
183 2, 2, 2, 2 });
184
Sadik Armagan43528ac2020-08-27 09:06:40 +0100185 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
Nikhil Raj68c2c902019-09-19 11:21:11 +0100186 armnn::ArgMinMaxFunction::Max,
187 inputTensorInfo, outputTensorInfo,
188 inputValues, outputValues, 1);
189}
190
James Conroyd47a0642019-09-17 14:22:06 +0100191template<armnn::DataType ArmnnType, typename T>
192LayerTestResult<int32_t, 3> ArgMaxHeightTest(
193 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100194 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100195 const armnn::ITensorHandleFactory& tensorHandleFactory)
James Conroyd47a0642019-09-17 14:22:06 +0100196{
197 const armnn::TensorShape inputShape{ 1, 3, 2, 4};
James Conroyc8724c72019-10-08 15:41:34 +0100198 const armnn::TensorShape outputShape{ 1, 3, 4 };
James Conroyd47a0642019-09-17 14:22:06 +0100199
200 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
201 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
202
Francis Murtagh52ec3462019-11-19 12:24:19 +0000203 if (armnn::IsQuantizedType<T>())
204 {
205 inputTensorInfo.SetQuantizationScale(1.0f);
206 inputTensorInfo.SetQuantizationOffset(0);
207 }
208
James Conroyd47a0642019-09-17 14:22:06 +0100209 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
210 5.0f, 6.0f, 7.0f, 8.0f,
211
212 10.0f, 20.0f, 30.0f, 40.0f,
213 50.0f, 60.0f, 70.0f, 80.0f,
214
215 100.0f, 200.0f, 300.0f, 400.0f,
216 500.0f, 600.0f, 700.0f, 800.0f });
217 std::vector<int32_t> outputValues({ 1, 1, 1, 1,
218 1, 1, 1, 1,
219 1, 1, 1, 1 });
220
Sadik Armagan43528ac2020-08-27 09:06:40 +0100221 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
James Conroyd47a0642019-09-17 14:22:06 +0100222 armnn::ArgMinMaxFunction::Max,
223 inputTensorInfo, outputTensorInfo,
224 inputValues, outputValues, 2);
225}
226
227template<armnn::DataType ArmnnType, typename T>
228LayerTestResult<int32_t, 3> ArgMinWidthTest(
229 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100231 const armnn::ITensorHandleFactory& tensorHandleFactory)
James Conroyd47a0642019-09-17 14:22:06 +0100232{
233 const armnn::TensorShape inputShape{ 1, 3, 2, 4};
James Conroyc8724c72019-10-08 15:41:34 +0100234 const armnn::TensorShape outputShape{ 1, 3, 2 };
James Conroyd47a0642019-09-17 14:22:06 +0100235
236 armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
237 armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Signed32);
238
Francis Murtagh52ec3462019-11-19 12:24:19 +0000239 if (armnn::IsQuantizedType<T>())
240 {
241 inputTensorInfo.SetQuantizationScale(1.0f);
242 inputTensorInfo.SetQuantizationOffset(0);
243 }
244
James Conroyd47a0642019-09-17 14:22:06 +0100245 std::vector<float> inputValues({ 1.0f, 2.0f, 3.0f, 4.0f,
246 5.0f, 6.0f, 7.0f, 8.0f,
247
248 10.0f, 20.0f, 30.0f, 40.0f,
249 50.0f, 60.0f, 70.0f, 80.0f,
250
251 100.0f, 200.0f, 300.0f, 400.0f,
252 500.0f, 600.0f, 700.0f, 800.0f });
253 std::vector<int32_t> outputValues({ 0, 0,
254 0, 0,
255 0, 0 });
256
Sadik Armagan43528ac2020-08-27 09:06:40 +0100257 return ArgMinMaxTestCommon<ArmnnType>(workloadFactory, memoryManager, tensorHandleFactory,
James Conroyd47a0642019-09-17 14:22:06 +0100258 armnn::ArgMinMaxFunction::Min,
259 inputTensorInfo, outputTensorInfo,
260 inputValues, outputValues, 3);
261}
262
Nikhil Raj68c2c902019-09-19 11:21:11 +0100263
264// Explicit template specializations
265
266template LayerTestResult<int32_t, 3>
267ArgMaxSimpleTest<armnn::DataType::Float32>(
268 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100269 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100270 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100271
272template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100273ArgMaxSimpleTest<armnn::DataType::Float16>(
274 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100276 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100277
278template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100279ArgMaxSimpleTest<armnn::DataType::QAsymmS8>(
280 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100281 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100282 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100283
284template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000285ArgMaxSimpleTest<armnn::DataType::QAsymmU8>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100286 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100288 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100289
290template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000291ArgMaxSimpleTest<armnn::DataType::QSymmS16>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100292 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100293 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100294 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100295
296template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000297ArgMaxSimpleTest<armnn::DataType::Signed32>(
298 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100300 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000301
302template LayerTestResult<int32_t, 3>
James Conroyd47a0642019-09-17 14:22:06 +0100303ArgMinSimpleTest<armnn::DataType::Float32>(
304 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100305 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100306 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyd47a0642019-09-17 14:22:06 +0100307
308template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100309ArgMinSimpleTest<armnn::DataType::Float16>(
310 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100311 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100312 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100313
314template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100315ArgMinSimpleTest<armnn::DataType::QAsymmS8>(
316 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100317 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100318 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100319
320template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000321ArgMinSimpleTest<armnn::DataType::QAsymmU8>(
James Conroyd47a0642019-09-17 14:22:06 +0100322 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100324 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyd47a0642019-09-17 14:22:06 +0100325
326template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000327ArgMinSimpleTest<armnn::DataType::QSymmS16>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100328 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100329 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100330 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100331
332template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000333ArgMinSimpleTest<armnn::DataType::Signed32>(
334 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100336 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000337
338template LayerTestResult<int32_t, 3>
James Conroyd47a0642019-09-17 14:22:06 +0100339ArgMinChannelTest<armnn::DataType::Float32>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100340 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100341 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100342 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100343
344template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100345ArgMinChannelTest<armnn::DataType::Float16>(
346 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100347 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100348 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100349
350template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100351ArgMinChannelTest<armnn::DataType::QAsymmS8>(
352 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100353 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100354 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100355
356template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000357ArgMinChannelTest<armnn::DataType::QAsymmU8>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100358 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100360 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100361
362template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000363ArgMinChannelTest<armnn::DataType::QSymmS16>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100364 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100366 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100367
368template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000369ArgMinChannelTest<armnn::DataType::Signed32>(
370 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100371 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100372 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000373
374template LayerTestResult<int32_t, 3>
James Conroyd47a0642019-09-17 14:22:06 +0100375ArgMaxChannelTest<armnn::DataType::Float32>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100376 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100377 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100378 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100379
380template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100381ArgMaxChannelTest<armnn::DataType::Float16>(
382 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100383 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100384 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100385
386template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100387ArgMaxChannelTest<armnn::DataType::QAsymmS8>(
388 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100390 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100391
392template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000393ArgMaxChannelTest<armnn::DataType::QAsymmU8>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100394 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100395 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100396 const armnn::ITensorHandleFactory& tensorHandleFactory);
Nikhil Raj68c2c902019-09-19 11:21:11 +0100397
398template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000399ArgMaxChannelTest<armnn::DataType::QSymmS16>(
Nikhil Raj68c2c902019-09-19 11:21:11 +0100400 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100401 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100402 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyd47a0642019-09-17 14:22:06 +0100403
404template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000405ArgMaxChannelTest<armnn::DataType::Signed32>(
406 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100408 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000409
410template LayerTestResult<int32_t, 3>
James Conroyd47a0642019-09-17 14:22:06 +0100411ArgMaxHeightTest<armnn::DataType::Float32>(
412 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100413 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100414 const armnn::ITensorHandleFactory& tensorHandleFactory);
James Conroyd47a0642019-09-17 14:22:06 +0100415
416template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100417ArgMaxHeightTest<armnn::DataType::Float16>(
418 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100420 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100421
422template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000423ArgMaxHeightTest<armnn::DataType::Signed32>(
424 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100425 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100426 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000427
428template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100429ArgMaxHeightTest<armnn::DataType::QAsymmS8>(
430 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100432 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100433
434template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000435ArgMaxHeightTest<armnn::DataType::QAsymmU8>(
Francis Murtagh52ec3462019-11-19 12:24:19 +0000436 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100437 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100438 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000439
440template LayerTestResult<int32_t, 3>
James Conroyd47a0642019-09-17 14:22:06 +0100441ArgMinWidthTest<armnn::DataType::Float32>(
442 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100444 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh1939df52019-11-13 15:21:09 +0000445
446template LayerTestResult<int32_t, 3>
Teresa Charline300b362020-05-25 10:01:03 +0100447ArgMinWidthTest<armnn::DataType::Float16>(
448 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100449 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100450 const armnn::ITensorHandleFactory& tensorHandleFactory);
Teresa Charline300b362020-05-25 10:01:03 +0100451
452template LayerTestResult<int32_t, 3>
Francis Murtagh1939df52019-11-13 15:21:09 +0000453ArgMinWidthTest<armnn::DataType::Signed32>(
454 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100455 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100456 const armnn::ITensorHandleFactory& tensorHandleFactory);
Francis Murtagh52ec3462019-11-19 12:24:19 +0000457
458template LayerTestResult<int32_t, 3>
Sadik Armagan303980c2020-04-17 12:45:14 +0100459ArgMinWidthTest<armnn::DataType::QAsymmS8>(
460 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100461 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100462 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan303980c2020-04-17 12:45:14 +0100463
464template LayerTestResult<int32_t, 3>
Derek Lambertif90c56d2020-01-10 17:14:08 +0000465ArgMinWidthTest<armnn::DataType::QAsymmU8>(
Francis Murtagh52ec3462019-11-19 12:24:19 +0000466 armnn::IWorkloadFactory& workloadFactory,
Sadik Armagan43528ac2020-08-27 09:06:40 +0100467 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Sadik Armagan89de3b42020-08-28 10:38:53 +0100468 const armnn::ITensorHandleFactory& tensorHandleFactory);