blob: f8f50366eb131e3bbd9f517fe9babacadfa92a7d [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa014fcda012018-03-09 14:13:49 +00004//
5#pragma once
6
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00007#include <armnn/ArmNN.hpp>
8#include <armnn/Tensor.hpp>
9
10#include <Half.hpp>
Francis Murtagh46c09d02019-05-28 08:15:28 +010011#include "TensorCopyUtils.hpp"
12#include "WorkloadTestUtils.hpp"
telsoa014fcda012018-03-09 14:13:49 +000013
Francis Murtagh46c09d02019-05-28 08:15:28 +010014#include <backendsCommon/CpuTensorHandle.hpp>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000015#include <backendsCommon/IBackendInternal.hpp>
16#include <backendsCommon/IMemoryManager.hpp>
Francis Murtagh46c09d02019-05-28 08:15:28 +010017#include <reference/workloads/Decoders.hpp>
18#include <reference/workloads/Encoders.hpp>
19#include <test/TensorHelpers.hpp>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000020
telsoa014fcda012018-03-09 14:13:49 +000021#include <boost/multi_array.hpp>
22#include <boost/assert.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000023
telsoa014fcda012018-03-09 14:13:49 +000024#include <array>
25
telsoa01c577f2c2018-08-31 09:22:23 +010026// Layer callables.
telsoa014fcda012018-03-09 14:13:49 +000027
28namespace armnn
29{
30class IWorkloadFactory;
31}
32
33template <std::size_t n>
34boost::array<unsigned int, n> GetTensorShapeAsArray(const armnn::TensorInfo& tensorInfo)
35{
36 BOOST_ASSERT_MSG(n == tensorInfo.GetNumDimensions(),
37 "Attempting to construct a shape array of mismatching size");
38
39 boost::array<unsigned int, n> shape;
40 for (unsigned int i = 0; i < n; i++)
41 {
42 shape[i] = tensorInfo.GetShape()[i];
43 }
44 return shape;
45}
46
47template <typename T, std::size_t n>
48struct LayerTestResult
49{
50 LayerTestResult(const armnn::TensorInfo& outputInfo)
51 {
52 auto shape( GetTensorShapeAsArray<n>(outputInfo) );
53 output.resize(shape);
54 outputExpected.resize(shape);
55 supported = true;
kevmay012b4d88e2019-01-24 14:05:09 +000056 compareBoolean = false;
telsoa014fcda012018-03-09 14:13:49 +000057 }
58
59 boost::multi_array<T, n> output;
60 boost::multi_array<T, n> outputExpected;
61 bool supported;
kevmay012b4d88e2019-01-24 14:05:09 +000062 bool compareBoolean;
telsoa014fcda012018-03-09 14:13:49 +000063};
64
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000065LayerTestResult<float, 4> SimpleConvolution2d3x5Test(
66 armnn::IWorkloadFactory& workloadFactory,
67 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
68 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +000069 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000070
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000071LayerTestResult<float, 4> SimpleConvolution2d3x3Test(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +000075 const armnn::DataLayout layout);
Francis Murtaghd59116e2018-10-04 16:03:07 +010076
Mike Kelly7332ed82018-12-20 17:03:06 +000077LayerTestResult<float, 4> SimpleConvolution2d3x3Stride2x2Test(
78 armnn::IWorkloadFactory& workloadFactory,
79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
80 bool biasEnabled,
81 const armnn::DataLayout layout);
82
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000083LayerTestResult<float, 4> SimpleConvolution2d3x3NhwcTest(
84 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
86 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +000087
88LayerTestResult<float, 4>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000089Convolution2dAsymmetricPaddingLargerThanHalfKernelSizeTest(
90 armnn::IWorkloadFactory& workloadFactory,
91 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000092 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000093
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000094LayerTestResult<float, 4> Convolution2dAsymmetricPaddingTest(
95 armnn::IWorkloadFactory& workloadFactory,
96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000097 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000098
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000099LayerTestResult<float, 4> Convolution1dTest(
100 armnn::IWorkloadFactory& workloadFactory,
101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
102 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000103
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000104LayerTestResult<uint8_t, 4> Convolution1dUint8Test(
105 armnn::IWorkloadFactory& workloadFactory,
106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
107 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000108
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000109LayerTestResult<float, 4> DepthwiseConvolution2dTest(
110 armnn::IWorkloadFactory& workloadFactory,
111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000113 const armnn::DataLayout layout);
Nikhil Rajcec6b652018-10-12 13:51:57 +0100114
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000115LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
116 armnn::IWorkloadFactory& workloadFactory,
117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
118 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000119
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000120LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
121 armnn::IWorkloadFactory& workloadFactory,
122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
123 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000124 const armnn::DataLayout layout);
surmeh013537c2c2018-05-18 16:31:43 +0100125
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000126LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
127 armnn::IWorkloadFactory& workloadFactory,
128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000130 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000131
Bruno Goncalves22972f02019-04-26 21:03:24 -0300132LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
134
Nattapat Chaimanowong649dd952019-01-22 16:10:44 +0000135LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
136 armnn::IWorkloadFactory& workloadFactory,
137 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
138 armnn::IWorkloadFactory& refWorkloadFactory,
139 const armnn::DataLayout layout);
140
141LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
142 armnn::IWorkloadFactory& workloadFactory,
143 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
144 armnn::IWorkloadFactory& refWorkloadFactory,
145 const armnn::DataLayout layout);
146
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000147LayerTestResult<float, 4> SimpleMaxPooling2dSize2x2Stride2x2Test(
148 armnn::IWorkloadFactory& workloadFactory,
149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000151
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000152LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Uint8Test(
153 armnn::IWorkloadFactory& workloadFactory,
154 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000156
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000157LayerTestResult<float, 4> SimpleMaxPooling2dSize3x3Stride2x4Test(
158 armnn::IWorkloadFactory& workloadFactory,
159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
160 bool forceNoPadding);
161
162LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
163 armnn::IWorkloadFactory& workloadFactory,
164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
165 bool forceNoPadding );
166
167LayerTestResult<float, 4> IgnorePaddingSimpleMaxPooling2dTest(
168 armnn::IWorkloadFactory& workloadFactory,
169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
170
171LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
172 armnn::IWorkloadFactory& workloadFactory,
173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
174
175LayerTestResult<float, 4> IgnorePaddingMaxPooling2dSize3Test(
176 armnn::IWorkloadFactory& workloadFactory,
177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
178
179LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
180 armnn::IWorkloadFactory& workloadFactory,
181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
182
183LayerTestResult<float, 4> SimpleMaxPooling2dTest(
184 armnn::IWorkloadFactory& workloadFactory,
185 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000186 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000187
188LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
189 armnn::IWorkloadFactory& workloadFactory,
190 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000191 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000192
193LayerTestResult<float, 4> SimpleAveragePooling2dTest(
194 armnn::IWorkloadFactory& workloadFactory,
195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000196 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000197
198LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
199 armnn::IWorkloadFactory& workloadFactory,
200 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000201 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000202
203LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
204 armnn::IWorkloadFactory& workloadFactory,
205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
206 bool forceNoPadding);
207
208LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dTest(
209 armnn::IWorkloadFactory& workloadFactory,
210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
211
212LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
213 armnn::IWorkloadFactory& workloadFactory,
214 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
215
216LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
217 armnn::IWorkloadFactory& workloadFactory,
218 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
219
telsoa014fcda012018-03-09 14:13:49 +0000220LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000221 armnn::IWorkloadFactory& workloadFactory,
222 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000223
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000224LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3Test(
225 armnn::IWorkloadFactory& workloadFactory,
226 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000227
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000228LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
229 armnn::IWorkloadFactory& workloadFactory,
230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000231
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000232LayerTestResult<float, 4> SimpleL2Pooling2dTest(
233 armnn::IWorkloadFactory& workloadFactory,
234 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000235 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000236
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000237LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
238 armnn::IWorkloadFactory& workloadFactory,
239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000240 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000241
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000242LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(
243 armnn::IWorkloadFactory& workloadFactory,
244 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000245
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000246LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
247 armnn::IWorkloadFactory& workloadFactory,
248 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000249
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000250LayerTestResult<float, 4> L2Pooling2dSize3Stride3Test(
251 armnn::IWorkloadFactory& workloadFactory,
252 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000253
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000254LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
255 armnn::IWorkloadFactory& workloadFactory,
256 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000257
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000258LayerTestResult<float, 4> L2Pooling2dSize3Stride4Test(
259 armnn::IWorkloadFactory& workloadFactory,
260 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000261
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000262LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
263 armnn::IWorkloadFactory& workloadFactory,
264 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000265
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000266LayerTestResult<float, 4> L2Pooling2dSize7Test(
267 armnn::IWorkloadFactory& workloadFactory,
268 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000269
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000270LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
271 armnn::IWorkloadFactory& workloadFactory,
272 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000273
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000274LayerTestResult<float, 4> L2Pooling2dSize9Test(
275 armnn::IWorkloadFactory& workloadFactory,
276 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000277
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000278LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
279 armnn::IWorkloadFactory& workloadFactory,
280 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
281
282LayerTestResult<float, 4> LargeTensorsAveragePooling2dTest(
283 armnn::IWorkloadFactory& workloadFactory,
284 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
285
286LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
287 armnn::IWorkloadFactory& workloadFactory,
288 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
289
290LayerTestResult<float, 4> IgnorePaddingSimpleL2Pooling2dTest(
291 armnn::IWorkloadFactory& workloadFactory,
292 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
293
294LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
295 armnn::IWorkloadFactory& workloadFactory,
296 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
297
298LayerTestResult<float, 4> IgnorePaddingL2Pooling2dSize3Test(
299 armnn::IWorkloadFactory& workloadFactory,
300 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
301
302LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
303 armnn::IWorkloadFactory& workloadFactory,
304 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
305
306LayerTestResult<float, 4> AsymmetricNonSquarePooling2dTest(
307 armnn::IWorkloadFactory& workloadFactory,
308 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
309
310LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
311 armnn::IWorkloadFactory& workloadFactory,
312 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
313
314LayerTestResult<float, 4> ComparePooling2dTest(
315 armnn::IWorkloadFactory& workloadFactory,
316 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
317 armnn::IWorkloadFactory& refWorkloadFactory,
318 armnn::PoolingAlgorithm poolingType);
319
320LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
321 armnn::IWorkloadFactory& workloadFactory,
322 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
323 armnn::IWorkloadFactory& refWorkloadFactory,
324 armnn::PoolingAlgorithm poolingType);
325
326LayerTestResult<float, 4> ConstantLinearActivationTest(
327 armnn::IWorkloadFactory& workloadFactory,
328 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
329
330LayerTestResult<float, 4> SimpleNormalizationAcrossTest(
331 armnn::IWorkloadFactory& workloadFactory,
332 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
333
334LayerTestResult<float, 4> SimpleNormalizationWithinTest(
335 armnn::IWorkloadFactory& workloadFactory,
336 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
337
338LayerTestResult<float,4> SimpleNormalizationAcrossNhwcTest(
339 armnn::IWorkloadFactory& workloadFactory,
340 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
341
342LayerTestResult<float, 2> SimpleSoftmaxTest(
343 armnn::IWorkloadFactory& workloadFactory,
344 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
345 float beta);
346
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000347LayerTestResult<float, 3> Simple3dSoftmaxTest(
348 armnn::IWorkloadFactory& workloadFactory,
349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
350 float beta);
351
352LayerTestResult<float, 4> Simple4dSoftmaxTest(
353 armnn::IWorkloadFactory& workloadFactory,
354 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
355 float beta);
356
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000357LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
358 armnn::IWorkloadFactory& workloadFactory,
359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
360 float beta);
361
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000362LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test(
363 armnn::IWorkloadFactory& workloadFactory,
364 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
365 float beta);
366
367LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
370 float beta);
371
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000372LayerTestResult<float, 4> SimpleSigmoidTest(
373 armnn::IWorkloadFactory& workloadFactory,
374 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
375
376LayerTestResult<float, 4> SimpleReshapeFloat32Test(
377 armnn::IWorkloadFactory& workloadFactory,
378 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
379
380LayerTestResult<uint8_t, 4> SimpleReshapeUint8Test(
381 armnn::IWorkloadFactory& workloadFactory,
382 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
383
384LayerTestResult<float, 4> SimpleFloorTest(
385 armnn::IWorkloadFactory& workloadFactory,
386 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
387
388LayerTestResult<float, 1> Concatenation1dTest(
389 armnn::IWorkloadFactory& workloadFactory,
390 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
391
392LayerTestResult<float, 2> Concatenation2dDim0Test(
393 armnn::IWorkloadFactory& workloadFactory,
394 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
395
396LayerTestResult<float, 2> Concatenation2dDim1Test(
397 armnn::IWorkloadFactory& workloadFactory,
398 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
399
400LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
401 armnn::IWorkloadFactory& workloadFactory,
402 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
403
404LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
405 armnn::IWorkloadFactory& workloadFactory,
406 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
407
408LayerTestResult<float, 3> Concatenation3dDim0Test(
409 armnn::IWorkloadFactory& workloadFactory,
410 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
411
412LayerTestResult<float, 3> Concatenation3dDim1Test(
413 armnn::IWorkloadFactory& workloadFactory,
414 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
415
416LayerTestResult<float, 3> Concatenation3dDim2Test(
417 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000418 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
419 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000420
421LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
422 armnn::IWorkloadFactory& workloadFactory,
423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
424
425LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
426 armnn::IWorkloadFactory& workloadFactory,
427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
428
429LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
430 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
432 bool useSubtensor);
433
434LayerTestResult<float, 4> Concatenation4dDim0Test(
435 armnn::IWorkloadFactory& workloadFactory,
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000436 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
437
narpra015cdda352018-11-19 15:30:27 +0000438LayerTestResult<float, 4> Concatenation4dDim1Test(
439 armnn::IWorkloadFactory& workloadFactory,
440 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
441
442LayerTestResult<float, 4> Concatenation4dDim2Test(
443 armnn::IWorkloadFactory& workloadFactory,
444 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
445
446LayerTestResult<float, 4> Concatenation4dDim3Test(
447 armnn::IWorkloadFactory& workloadFactory,
448 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
449 bool useSubtensor);
450
451LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
452 armnn::IWorkloadFactory& workloadFactory,
453 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
454
455LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
456 armnn::IWorkloadFactory& workloadFactory,
457 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
458
459LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
460 armnn::IWorkloadFactory& workloadFactory,
461 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
462
463LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
464 armnn::IWorkloadFactory& workloadFactory,
465 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
466 bool useSubtensor);
467
468LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
469 armnn::IWorkloadFactory& workloadFactory,
470 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
471
472LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
473 armnn::IWorkloadFactory& workloadFactory,
474 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
475
476LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
477 armnn::IWorkloadFactory& workloadFactory,
478 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
479
480LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
481 armnn::IWorkloadFactory& workloadFactory,
482 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
483 bool useSubtensor);
484
485LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
486 armnn::IWorkloadFactory& workloadFactory,
487 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
488
489LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
490 armnn::IWorkloadFactory& workloadFactory,
491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
492
493LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
494 armnn::IWorkloadFactory& workloadFactory,
495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
496
497LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
498 armnn::IWorkloadFactory& workloadFactory,
499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
500 bool useSubtensor);
501
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000502LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
503 armnn::IWorkloadFactory& workloadFactory,
504 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
505
Teresa Charlin18515e22019-04-24 10:17:46 +0100506LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
507 armnn::IWorkloadFactory& workloadFactory,
508 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
509
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000510LayerTestResult<float, 4> CompareConvolution2dTest(
511 armnn::IWorkloadFactory& workloadFactory,
512 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000513 armnn::IWorkloadFactory& refWorkloadFactory);
514
515template<typename T>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000516LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
517 armnn::IWorkloadFactory& workloadFactory,
518 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
519 armnn::IWorkloadFactory& refWorkloadFactory,
Matthew Bentham8800c002018-11-19 13:19:28 +0000520 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000521
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000522LayerTestResult<float, 4> CompareNormalizationTest(
523 armnn::IWorkloadFactory& workloadFactory,
524 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
525 armnn::IWorkloadFactory& refWorkloadFactory,
526 armnn::NormalizationAlgorithmChannel normChannel,
527 armnn::NormalizationAlgorithmMethod normMethod);
telsoa014fcda012018-03-09 14:13:49 +0000528
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000529LayerTestResult<float, 2> CompareSoftmaxTest(
530 armnn::IWorkloadFactory& workloadFactory,
531 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000532 armnn::IWorkloadFactory& refWorkloadFactory,
533 float beta);
534
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000535LayerTestResult<float, 2> FullyConnectedFloat32Test(
536 armnn::IWorkloadFactory& workloadFactory,
537 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
538 bool biasEnabled,
539 bool transposeWeights);
telsoa014fcda012018-03-09 14:13:49 +0000540
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000541std::vector<LayerTestResult<float, 3>> SplitterTest(
542 armnn::IWorkloadFactory& workloadFactory,
543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
David Beck5cd01f32018-09-12 16:00:08 +0100544
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000545LayerTestResult<float, 3> CopyViaSplitterTest(
546 armnn::IWorkloadFactory& workloadFactory,
547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000548
Jim Flynn4ed6c832019-05-20 11:02:46 +0100549LayerTestResult<float, 3> ConcatTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000550 armnn::IWorkloadFactory& workloadFactory,
551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000552
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000553LayerTestResult<float, 4> AdditionTest(
554 armnn::IWorkloadFactory& workloadFactory,
555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000556
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000557LayerTestResult<float, 4> AdditionBroadcast1ElementTest(
558 armnn::IWorkloadFactory& workloadFactory,
559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000560
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000561LayerTestResult<float, 4> AdditionBroadcastTest(
562 armnn::IWorkloadFactory& workloadFactory,
563 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000564
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000565LayerTestResult<float, 4> CompareAdditionTest(
566 armnn::IWorkloadFactory& workloadFactory,
567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
568 armnn::IWorkloadFactory& refWorkloadFactory);
telsoa014fcda012018-03-09 14:13:49 +0000569
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000570LayerTestResult<float, 4> SubtractionTest(
571 armnn::IWorkloadFactory& workloadFactory,
572 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000573
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000574LayerTestResult<float, 4> SubtractionBroadcast1ElementTest(
575 armnn::IWorkloadFactory& workloadFactory,
576 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000577
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000578LayerTestResult<float, 4> SubtractionBroadcastTest(
579 armnn::IWorkloadFactory& workloadFactory,
580 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000581
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000582LayerTestResult<float, 4> CompareActivationTest(
583 armnn::IWorkloadFactory& workloadFactory,
584 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
585 armnn::IWorkloadFactory& refWorkloadFactory,
586 armnn::ActivationFunction f,
587 unsigned int batchSize);
telsoa014fcda012018-03-09 14:13:49 +0000588
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000589LayerTestResult<float, 4> DivisionTest(
590 armnn::IWorkloadFactory& workloadFactory,
591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000592
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000593LayerTestResult<float, 4> DivisionByZeroTest(
594 armnn::IWorkloadFactory& workloadFactory,
595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100596
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000597LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
598 armnn::IWorkloadFactory& workloadFactory,
599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100600
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000601LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
602 armnn::IWorkloadFactory& workloadFactory,
603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100604
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000605LayerTestResult<float, 4> MultiplicationTest(
606 armnn::IWorkloadFactory& workloadFactory,
607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100608
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000609LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
610 armnn::IWorkloadFactory& workloadFactory,
611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100612
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000613LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
614 armnn::IWorkloadFactory& workloadFactory,
615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100616
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000617LayerTestResult<float, 4> CompareMultiplicationTest(
618 armnn::IWorkloadFactory& workloadFactory,
619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
620 armnn::IWorkloadFactory& refWorkloadFactory);
Matteo Martincigh28dcab62018-10-19 16:40:03 +0100621
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000622LayerTestResult<float, 4> BatchNormTest(
623 armnn::IWorkloadFactory& workloadFactory,
624 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000625
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000626LayerTestResult<float, 4> BatchNormNhwcTest(
627 armnn::IWorkloadFactory& workloadFactory,
628 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000629
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000630LayerTestResult<float, 4> CompareBatchNormTest(
631 armnn::IWorkloadFactory& workloadFactory,
632 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
633 armnn::IWorkloadFactory& refWorkloadFactory);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000634
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000635LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
636 armnn::IWorkloadFactory& workloadFactory,
637 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000638
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000639LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
640 armnn::IWorkloadFactory& workloadFactor,
641 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000642
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000643LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
644 armnn::IWorkloadFactory& workloadFactory,
645 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000646
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000647LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
648 armnn::IWorkloadFactory& workloadFactory,
649 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin262553e2018-11-14 11:26:23 +0000650
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000651LayerTestResult<float, 4> CompareBoundedReLuTest(
652 armnn::IWorkloadFactory& workloadFactory,
653 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
654 armnn::IWorkloadFactory& refWorkloadFactory,
655 float upperBound,
656 float lowerBound);
657
Teresa Charlin18515e22019-04-24 10:17:46 +0100658
659LayerTestResult<int16_t, 4> ReLuInt16Test(
660 armnn::IWorkloadFactory& workloadFactory,
661 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
662
663LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
664 armnn::IWorkloadFactory& workloadFactory,
665 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
666
667LayerTestResult<int16_t, 4> SoftReLuInt16Test(
668 armnn::IWorkloadFactory& workloadFactory,
669 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
670
671LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
672 armnn::IWorkloadFactory& workloadFactory,
673 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
674
675LayerTestResult<int16_t, 4> AbsInt16Test(
676 armnn::IWorkloadFactory& workloadFactory,
677 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
678
679LayerTestResult<int16_t, 4> SqrtInt16Test(
680 armnn::IWorkloadFactory& workloadFactory,
681 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
682
683LayerTestResult<int16_t, 4> SquareInt16Test(
684 armnn::IWorkloadFactory& workloadFactory,
685 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
686
687LayerTestResult<int16_t, 4> TanhInt16Test(
688 armnn::IWorkloadFactory& workloadFactory,
689 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
690
691
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000692// Tests that the output should be identical to the input when the output dimensions match the input ones.
693LayerTestResult<float, 4> ResizeBilinearNopTest(
694 armnn::IWorkloadFactory& workloadFactory,
695 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000696 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000697
698// Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
699LayerTestResult<float, 4> SimpleResizeBilinearTest(
700 armnn::IWorkloadFactory& workloadFactory,
701 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000702 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000703
704// Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
705// multiple of output dimensions).
706LayerTestResult<float, 4> ResizeBilinearSqMinTest(
707 armnn::IWorkloadFactory& workloadFactory,
708 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000709 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000710
711// Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
712LayerTestResult<float, 4> ResizeBilinearMinTest(
713 armnn::IWorkloadFactory& workloadFactory,
714 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000715 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000716
717// Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
718LayerTestResult<float, 4> ResizeBilinearMagTest(
719 armnn::IWorkloadFactory& workloadFactory,
720 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000721 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000722
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000723LayerTestResult<float, 2> Rsqrt2dTestCommon(
724 armnn::IWorkloadFactory& workloadFactory,
725 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
726 const armnn::TensorInfo inputTensorInfo,
727 const armnn::TensorInfo outputTensorInfo,
728 std::vector<float> inputValues,
729 std::vector<float> expectedOutputValues);
730
731LayerTestResult<float, 2> Rsqrt2dTest(
732 armnn::IWorkloadFactory& workloadFactory,
733 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
734
735LayerTestResult<float, 3> Rsqrt3dTest(
736 armnn::IWorkloadFactory& workloadFactory,
737 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
738
739LayerTestResult<float, 2> RsqrtZeroTest(
740 armnn::IWorkloadFactory& workloadFactory,
741 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
742
743LayerTestResult<float, 2> RsqrtNegativeTest(
744 armnn::IWorkloadFactory& workloadFactory,
745 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
746
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000747LayerTestResult<float, 4> BatchNormTest(
748 armnn::IWorkloadFactory& workloadFactory,
749 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
750
751LayerTestResult<float, 4> BatchNormNhwcTest(
752 armnn::IWorkloadFactory& workloadFactory,
753 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
754
755LayerTestResult<float, 2> FakeQuantizationTest(
756 armnn::IWorkloadFactory& workloadFactory,
757 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
758
759LayerTestResult<float, 4> L2Normalization1dTest(
760 armnn::IWorkloadFactory& workloadFactory,
761 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000762 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000763
764LayerTestResult<float, 4> L2Normalization2dTest(
765 armnn::IWorkloadFactory& workloadFactory,
766 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000767 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000768
769LayerTestResult<float, 4> L2Normalization3dTest(
770 armnn::IWorkloadFactory& workloadFactory,
771 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000772 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000773
774LayerTestResult<float, 4> L2Normalization4dTest(
775 armnn::IWorkloadFactory& workloadFactory,
776 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000777 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000778
779LayerTestResult<float, 4> ConstantTest(
780 armnn::IWorkloadFactory& workloadFactory,
781 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
782
Nina Drozd58ef2c62019-05-16 12:09:18 +0100783LayerTestResult<uint8_t, 4> ConstantUint8SimpleQuantizationScaleNoOffsetTest(
784 armnn::IWorkloadFactory& workloadFactory,
785 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
786
787LayerTestResult<int16_t, 4> ConstantInt16SimpleQuantizationScaleNoOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000788 armnn::IWorkloadFactory& workloadFactory,
789 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
790
791LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
792 armnn::IWorkloadFactory& workloadFactory,
793 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
794 float upperBound);
795
796LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
797 armnn::IWorkloadFactory& workloadFactory,
798 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
799 float upperBound,
800 float lowerBound);
801
Francis Murtagh46c09d02019-05-28 08:15:28 +0100802template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
803LayerTestResult<T, 2> FullyConnectedTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000804 armnn::IWorkloadFactory& workloadFactory,
805 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
806 bool biasEnabled);
807
808std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
809 armnn::IWorkloadFactory& workloadFactory,
810 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
811
812LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
813 armnn::IWorkloadFactory& workloadFactory,
814 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
815
Jim Flynn4ed6c832019-05-20 11:02:46 +0100816LayerTestResult<uint8_t, 3> ConcatUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000817 armnn::IWorkloadFactory& workloadFactory,
818 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
819
Jim Flynn4ed6c832019-05-20 11:02:46 +0100820LayerTestResult<uint16_t, 3> ConcatUint16Test(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100821 armnn::IWorkloadFactory& workloadFactory,
822 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
823
Jim Flynn4ed6c832019-05-20 11:02:46 +0100824LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100825 armnn::IWorkloadFactory& workloadFactory,
826 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Ferran Balaguerb2845652019-02-27 09:42:06 +0000827
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000828LayerTestResult<uint8_t, 4> AdditionUint8Test(
829 armnn::IWorkloadFactory& workloadFactory,
830 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
831
832LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
833 armnn::IWorkloadFactory& workloadFactory,
834 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
835
836LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
837 armnn::IWorkloadFactory& workloadFactory,
838 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
839
Sadik Armagan2999a022019-04-09 14:20:12 +0100840LayerTestResult<int16_t, 4> AdditionInt16Test(
841 armnn::IWorkloadFactory& workloadFactory,
842 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
843
844LayerTestResult<int16_t, 4> AdditionBroadcastInt16Test(
845 armnn::IWorkloadFactory& workloadFactory,
846 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
847
848LayerTestResult<int16_t, 4> AdditionBroadcast1ElementInt16Test(
849 armnn::IWorkloadFactory& workloadFactory,
850 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
851
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000852LayerTestResult<uint8_t, 4> SubtractionUint8Test(
853 armnn::IWorkloadFactory& workloadFactory,
854 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
855
856LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
857 armnn::IWorkloadFactory& workloadFactory,
858 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
859
860LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
861 armnn::IWorkloadFactory& workloadFactory,
862 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
863
Sadik Armagan2999a022019-04-09 14:20:12 +0100864LayerTestResult<int16_t, 4> SubtractionInt16Test(
865 armnn::IWorkloadFactory& workloadFactory,
866 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
867
868LayerTestResult<int16_t, 4> SubtractionBroadcast1ElementInt16Test(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
871
872LayerTestResult<int16_t, 4> SubtractionBroadcastInt16Test(
873 armnn::IWorkloadFactory& workloadFactory,
874 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
875
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000876LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
877 armnn::IWorkloadFactory& workloadFactory,
878 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
879 armnn::IWorkloadFactory& refWorkloadFactory,
880 armnn::ActivationFunction f);
881
Teresa Charlin18515e22019-04-24 10:17:46 +0100882LayerTestResult<int16_t, 4> CompareActivationInt16Test(
883 armnn::IWorkloadFactory& workloadFactory,
884 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
885 armnn::IWorkloadFactory& refWorkloadFactory,
886 armnn::ActivationFunction f);
887
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000888LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
889 armnn::IWorkloadFactory& workloadFactory,
890 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
891 armnn::IWorkloadFactory& refWorkloadFactory,
892 float beta);
893
894LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
895 armnn::IWorkloadFactory& workloadFactory,
896 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
897
898LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
899 armnn::IWorkloadFactory& workloadFactory,
900 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
901
902LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
903 armnn::IWorkloadFactory& workloadFactory,
904 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
905
Sadik Armagan2999a022019-04-09 14:20:12 +0100906LayerTestResult<int16_t, 4> MultiplicationInt16Test(
907 armnn::IWorkloadFactory& workloadFactory,
908 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
909
910LayerTestResult<int16_t, 4> MultiplicationBroadcast1ElementInt16Test(
911 armnn::IWorkloadFactory& workloadFactory,
912 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
913
914LayerTestResult<int16_t, 4> MultiplicationBroadcast1DVectorInt16Test(
915 armnn::IWorkloadFactory& workloadFactory,
916 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
917
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000918LayerTestResult<uint8_t, 4> DivisionUint8Test(
919 armnn::IWorkloadFactory& workloadFactory,
920 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
921
922LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
923 armnn::IWorkloadFactory& workloadFactory,
924 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
925
926LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
927 armnn::IWorkloadFactory& workloadFactory,
928 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
929
Sadik Armagan2999a022019-04-09 14:20:12 +0100930LayerTestResult<int16_t, 4> DivisionInt16Test(
931 armnn::IWorkloadFactory& workloadFactory,
932 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
933
934LayerTestResult<int16_t, 4> DivisionBroadcast1ElementInt16Test(
935 armnn::IWorkloadFactory& workloadFactory,
936 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
937
938LayerTestResult<int16_t, 4> DivisionBroadcast1DVectorInt16Test(
939 armnn::IWorkloadFactory& workloadFactory,
940 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
941
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000942LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
943 armnn::IWorkloadFactory& workloadFactory,
944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
945 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000946 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000947
948LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
949 armnn::IWorkloadFactory& workloadFactory,
950 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
951 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000952 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000953
Mike Kelly2f80f6e2019-05-16 12:41:34 +0100954LayerTestResult<int16_t, 4> SimpleConvolution2d3x5QSymm16Test(
955 armnn::IWorkloadFactory& workloadFactory,
956 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
957 bool biasEnabled,
958 const armnn::DataLayout layout);
959
960LayerTestResult<int16_t, 4> SimpleConvolution2d3x3QSymm16Test(
961 armnn::IWorkloadFactory& workloadFactory,
962 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
963 bool biasEnabled,
964 const armnn::DataLayout layout);
965
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000966LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
967 armnn::IWorkloadFactory& workloadFactory,
968 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
969 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000970 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000971
972LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
973 armnn::IWorkloadFactory& workloadFactory,
974 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
975 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000976 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000977
Ruomei Yan88d44b82019-05-23 14:29:06 +0100978LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
979 armnn::IWorkloadFactory& workloadFactory,
980 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
981 bool biasEnabled,
982 const armnn::DataLayout layout);
983
984LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
985 armnn::IWorkloadFactory& workloadFactory,
986 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
987 bool biasEnabled,
988 const armnn::DataLayout layout);
989
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000990LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
991 armnn::IWorkloadFactory& workloadFactory,
992 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
993
Teresa Charlin18515e22019-04-24 10:17:46 +0100994LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
995 armnn::IWorkloadFactory& workloadFactory,
996 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
997
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000998LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
999 armnn::IWorkloadFactory& workloadFactory,
1000 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1001
1002LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
1003 armnn::IWorkloadFactory& workloadFactory,
1004 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1005
1006LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
1007 armnn::IWorkloadFactory& workloadFactory,
1008 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1009
1010LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
1011 armnn::IWorkloadFactory& workloadFactory,
1012 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1013
1014LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
1015 armnn::IWorkloadFactory& workloadFactory,
1016 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1017
1018LayerTestResult<uint8_t, 4> BatchNormUint8Test(
1019 armnn::IWorkloadFactory& workloadFactory,
1020 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1021
1022LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
1023 armnn::IWorkloadFactory& workloadFactory,
1024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1025
Nina Drozd58ef2c62019-05-16 12:09:18 +01001026LayerTestResult<uint8_t, 4> ConstantUint8CustomQuantizationScaleAndOffsetTest(
1027 armnn::IWorkloadFactory& workloadFactory,
1028 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1029
1030LayerTestResult<int16_t, 4> ConstantInt16CustomQuantizationScaleAndOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001031 armnn::IWorkloadFactory& workloadFactory,
1032 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1033
1034LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
1035 armnn::IWorkloadFactory& workloadFactory,
1036 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1037
1038LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
1039 armnn::IWorkloadFactory& workloadFactory,
1040 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1041
1042LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
1043 armnn::IWorkloadFactory& workloadFactory,
1044 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1045
1046LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
1047 armnn::IWorkloadFactory& workloadFactory,
1048 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1049
1050LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
1051 armnn::IWorkloadFactory& workloadFactory,
1052 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1053
1054LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
1055 armnn::IWorkloadFactory& workloadFactory,
1056 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1057
1058LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
1059 armnn::IWorkloadFactory& workloadFactory,
1060 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1061
1062LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
1063 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001064 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1065 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001066
1067LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
1068 armnn::IWorkloadFactory& workloadFactory,
1069 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1070
1071LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
1072 armnn::IWorkloadFactory& workloadFactory,
1073 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1074
1075LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
1076 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001077 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1078 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001079
kevmay012b4d88e2019-01-24 14:05:09 +00001080LayerTestResult<uint8_t, 4> EqualSimpleTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001081 armnn::IWorkloadFactory& workloadFactory,
1082 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1083
kevmay012b4d88e2019-01-24 14:05:09 +00001084LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001085 armnn::IWorkloadFactory& workloadFactory,
1086 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1087
kevmay012b4d88e2019-01-24 14:05:09 +00001088LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001089 armnn::IWorkloadFactory& workloadFactory,
1090 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1091
1092LayerTestResult<uint8_t, 4> EqualUint8Test(
1093 armnn::IWorkloadFactory& workloadFactory,
1094 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1095
1096LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
1097 armnn::IWorkloadFactory& workloadFactory,
1098 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1099
1100LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
1101 armnn::IWorkloadFactory& workloadFactory,
1102 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1103
kevmay012b4d88e2019-01-24 14:05:09 +00001104LayerTestResult<uint8_t, 4> GreaterSimpleTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001105 armnn::IWorkloadFactory& workloadFactory,
1106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1107
kevmay012b4d88e2019-01-24 14:05:09 +00001108LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001109 armnn::IWorkloadFactory& workloadFactory,
1110 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1111
kevmay012b4d88e2019-01-24 14:05:09 +00001112LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001113 armnn::IWorkloadFactory& workloadFactory,
1114 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1115
1116LayerTestResult<uint8_t, 4> GreaterUint8Test(
1117 armnn::IWorkloadFactory& workloadFactory,
1118 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1119
1120LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
1121 armnn::IWorkloadFactory& workloadFactory,
1122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1123
1124LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
1125 armnn::IWorkloadFactory& workloadFactory,
1126 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1127
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001128LayerTestResult<float, 2> FullyConnectedLargeTest(
1129 armnn::IWorkloadFactory& workloadFactory,
1130 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1131 bool transposeWeights);
1132
1133LayerTestResult<float, 4> SimplePermuteFloat32Test(
1134 armnn::IWorkloadFactory& workloadFactory,
1135 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1136
1137LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
1138 armnn::IWorkloadFactory& workloadFactory,
1139 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1140
1141LayerTestResult<uint8_t, 2> PadUint82dTest(
1142 armnn::IWorkloadFactory& workloadFactory,
1143 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1144
1145LayerTestResult<uint8_t, 3> PadUint83dTest(
1146 armnn::IWorkloadFactory& workloadFactory,
1147 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1148
1149LayerTestResult<uint8_t, 4> PadUint84dTest(
1150 armnn::IWorkloadFactory& workloadFactory,
1151 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1152
1153LayerTestResult<float, 2> PadFloat322dTest(
1154 armnn::IWorkloadFactory& workloadFactory,
1155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1156
1157LayerTestResult<float, 3> PadFloat323dTest(
1158 armnn::IWorkloadFactory& workloadFactory,
1159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1160
1161LayerTestResult<float, 4> PadFloat324dTest(
1162 armnn::IWorkloadFactory& workloadFactory,
1163 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1164
1165LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1166 armnn::IWorkloadFactory& workloadFactory,
1167 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1168
1169LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1170 armnn::IWorkloadFactory& workloadFactory,
1171 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1172
1173LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1174 armnn::IWorkloadFactory& workloadFactory,
1175 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1176
1177LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1178 armnn::IWorkloadFactory& workloadFactory,
1179 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1180
1181LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1182 armnn::IWorkloadFactory& workloadFactory,
1183 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1184
1185LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1186 armnn::IWorkloadFactory& workloadFactory,
1187 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1188
Conor Kennedyb9971c92019-05-07 07:14:23 +01001189LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
1190 armnn::IWorkloadFactory& workloadFactory,
1191 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1192
1193LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
1194 armnn::IWorkloadFactory& workloadFactory,
1195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1196
1197LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
1198 armnn::IWorkloadFactory& workloadFactory,
1199 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1200
1201LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
1202 armnn::IWorkloadFactory& workloadFactory,
1203 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1204
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001205LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1206 armnn::IWorkloadFactory& workloadFactory,
1207 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1208
1209LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1210 armnn::IWorkloadFactory& workloadFactory,
1211 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1212
Éanna Ó Catháinde705582018-12-03 13:04:22 +00001213LayerTestResult<float, 4> MaximumSimpleTest(
1214 armnn::IWorkloadFactory& workloadFactory,
1215 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1216
1217LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1218 armnn::IWorkloadFactory& workloadFactory,
1219 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1220
1221LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1222 armnn::IWorkloadFactory& workloadFactory,
1223 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1224
1225LayerTestResult<uint8_t , 4> MaximumUint8Test(
1226 armnn::IWorkloadFactory& workloadFactory,
1227 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1228
1229LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1230 armnn::IWorkloadFactory& workloadFactory,
1231 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1232
1233LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1234 armnn::IWorkloadFactory& workloadFactory,
1235 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1236
Sadik Armagan2999a022019-04-09 14:20:12 +01001237LayerTestResult<int16_t , 4> MaximumInt16Test(
1238 armnn::IWorkloadFactory& workloadFactory,
1239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1240
1241LayerTestResult<int16_t, 4> MaximumBroadcast1ElementInt16Test(
1242 armnn::IWorkloadFactory& workloadFactory,
1243 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1244
1245LayerTestResult<int16_t, 4> MaximumBroadcast1DVectorInt16Test(
1246 armnn::IWorkloadFactory& workloadFactory,
1247 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1248
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001249LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1250 armnn::IWorkloadFactory& workloadFactory,
1251 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1252
1253LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1254 armnn::IWorkloadFactory& workloadFactory,
1255 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1256
1257LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1258 armnn::IWorkloadFactory& workloadFactory,
1259 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1260
1261LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1262 armnn::IWorkloadFactory& workloadFactory,
1263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1264
1265LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1266 armnn::IWorkloadFactory& workloadFactory,
1267 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1268
1269LayerTestResult<float, 1> MeanFloatSimpleTest(
1270 armnn::IWorkloadFactory& workloadFactory,
1271 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1272
1273LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1274 armnn::IWorkloadFactory& workloadFactory,
1275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1276
1277LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1278 armnn::IWorkloadFactory& workloadFactory,
1279 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1280
1281LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1282 armnn::IWorkloadFactory& workloadFactory,
1283 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1284
1285LayerTestResult<float, 1> MeanVtsFloat1Test(
1286 armnn::IWorkloadFactory& workloadFactory,
1287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1288
1289LayerTestResult<float, 3> MeanVtsFloat2Test(
1290 armnn::IWorkloadFactory& workloadFactory,
1291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1292
1293LayerTestResult<float, 3> MeanVtsFloat3Test(
1294 armnn::IWorkloadFactory& workloadFactory,
1295 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1296
Éanna Ó Catháin20e58802018-12-04 10:29:06 +00001297LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1298 armnn::IWorkloadFactory& workloadFactory,
1299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1300
1301LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1302 armnn::IWorkloadFactory& workloadFactory,
1303 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1304
1305LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1306 armnn::IWorkloadFactory & workloadFactory,
1307 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1308
Sadik Armagan2999a022019-04-09 14:20:12 +01001309LayerTestResult<int16_t , 4> MinimumInt16Test(
1310 armnn::IWorkloadFactory& workloadFactory,
1311 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1312
1313LayerTestResult<int16_t, 4> MinimumBroadcast1ElementInt16Test(
1314 armnn::IWorkloadFactory& workloadFactory,
1315 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1316
1317LayerTestResult<int16_t, 4> MinimumBroadcast1DVectorInt16Test(
1318 armnn::IWorkloadFactory& workloadFactory,
1319 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1320
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001321LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1322 armnn::IWorkloadFactory& workloadFactory,
1323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1324
1325LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1326 armnn::IWorkloadFactory& workloadFactory,
1327 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1328
1329LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1330 armnn::IWorkloadFactory& workloadFactory,
1331 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1332
1333LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1334 armnn::IWorkloadFactory& workloadFactory,
1335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1336
1337LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1338 armnn::IWorkloadFactory& workloadFactory,
1339 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1340
1341LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1342 armnn::IWorkloadFactory& workloadFactory,
1343 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1344
1345LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1346 armnn::IWorkloadFactory& workloadFactory,
1347 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1348
1349LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1350 armnn::IWorkloadFactory& workloadFactory,
1351 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1352
1353LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1354 armnn::IWorkloadFactory& workloadFactory,
1355 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1356
1357LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1358 armnn::IWorkloadFactory& workloadFactory,
1359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1360
1361LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1362 armnn::IWorkloadFactory& workloadFactory,
1363 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1364
1365LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1366 armnn::IWorkloadFactory& workloadFactory,
1367 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1368
1369LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1370 armnn::IWorkloadFactory& workloadFactory,
1371 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1372
1373LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1374 armnn::IWorkloadFactory& workloadFactory,
1375 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1376
1377LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1378 armnn::IWorkloadFactory& workloadFactory,
1379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1380
1381LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1382 armnn::IWorkloadFactory& workloadFactory,
1383 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1384
1385LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1386 armnn::IWorkloadFactory& workloadFactory,
1387 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1388
1389LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1390 armnn::IWorkloadFactory& workloadFactory,
1391 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1392
1393LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1394 armnn::IWorkloadFactory& workloadFactory,
1395 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1396
1397LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1398 armnn::IWorkloadFactory& workloadFactory,
1399 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1400
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001401LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test4(
1402 armnn::IWorkloadFactory& workloadFactory,
1403 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1404
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001405LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1406 armnn::IWorkloadFactory &workloadFactory,
1407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1408
Mike Kelly831faed2018-11-28 11:52:08 +00001409LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001410 armnn::IWorkloadFactory &workloadFactory,
1411 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001412
1413LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001414 armnn::IWorkloadFactory &workloadFactory,
1415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001416
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001417LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1418 armnn::IWorkloadFactory &workloadFactory,
1419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001420
Mike Kelly831faed2018-11-28 11:52:08 +00001421LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001422 armnn::IWorkloadFactory &workloadFactory,
1423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001424
1425LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001426 armnn::IWorkloadFactory &workloadFactory,
1427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001428
1429LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001430 armnn::IWorkloadFactory &workloadFactory,
1431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001432
1433LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001434 armnn::IWorkloadFactory &workloadFactory,
1435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001436
1437LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001438 armnn::IWorkloadFactory &workloadFactory,
1439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1440
1441LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest4(
1442 armnn::IWorkloadFactory &workloadFactory,
1443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001444
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001445LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1446 armnn::IWorkloadFactory& workloadFactory,
1447 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001448
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001449LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1450 armnn::IWorkloadFactory& workloadFactory,
1451 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1452
1453LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1454 armnn::IWorkloadFactory& workloadFactory,
1455 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1456
1457LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1458 armnn::IWorkloadFactory& workloadFactory,
1459 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1460
1461LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1462 armnn::IWorkloadFactory& workloadFactory,
1463 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1464
1465LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1466 armnn::IWorkloadFactory& workloadFactory,
1467 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1468
1469LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1470 armnn::IWorkloadFactory& workloadFactory,
1471 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1472
1473LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1474 armnn::IWorkloadFactory& workloadFactory,
1475 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1476
1477LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1478 armnn::IWorkloadFactory& workloadFactory,
1479 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1480
1481LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1482 armnn::IWorkloadFactory& workloadFactory,
1483 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1484
1485LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1486 armnn::IWorkloadFactory& workloadFactory,
1487 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1488
1489LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1490 armnn::IWorkloadFactory& workloadFactory,
1491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1492
1493LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1494 armnn::IWorkloadFactory& workloadFactory,
1495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1496
1497LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1498 armnn::IWorkloadFactory& workloadFactory,
1499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1500
1501LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1502 armnn::IWorkloadFactory& workloadFactory,
1503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1504
1505LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1506 armnn::IWorkloadFactory& workloadFactory,
1507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1508
1509LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1510 armnn::IWorkloadFactory& workloadFactory,
1511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1512
1513LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1514 armnn::IWorkloadFactory& workloadFactory,
1515 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001516
1517LayerTestResult<float, 4> Debug4DFloat32Test(
1518 armnn::IWorkloadFactory& workloadFactory,
1519 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1520
1521LayerTestResult<float, 3> Debug3DFloat32Test(
1522 armnn::IWorkloadFactory& workloadFactory,
1523 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1524
1525LayerTestResult<float, 2> Debug2DFloat32Test(
1526 armnn::IWorkloadFactory& workloadFactory,
1527 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1528
1529LayerTestResult<float, 1> Debug1DFloat32Test(
1530 armnn::IWorkloadFactory& workloadFactory,
1531 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1532
1533LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1534 armnn::IWorkloadFactory& workloadFactory,
1535 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1536
1537LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1538 armnn::IWorkloadFactory& workloadFactory,
1539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1540
1541LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1542 armnn::IWorkloadFactory& workloadFactory,
1543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1544
1545LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1546 armnn::IWorkloadFactory& workloadFactory,
1547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Matteo Martincigh49124022019-01-11 13:25:59 +00001548
1549LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1550 armnn::IWorkloadFactory& workloadFactory,
1551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1552
1553LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1554 armnn::IWorkloadFactory& workloadFactory,
1555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1556
1557LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1558 armnn::IWorkloadFactory & workloadFactory,
1559 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1560
1561LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1562 armnn::IWorkloadFactory & workloadFactory,
1563 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1564
1565LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1566 armnn::IWorkloadFactory& workloadFactory,
1567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1568
1569LayerTestResult<float, 4> Debug4DFloat32Test(
1570 armnn::IWorkloadFactory& workloadFactory,
1571 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1572
1573LayerTestResult<float, 3> Debug3DFloat32Test(
1574 armnn::IWorkloadFactory& workloadFactory,
1575 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1576
1577LayerTestResult<float, 2> Debug2DFloat32Test(
1578 armnn::IWorkloadFactory& workloadFactory,
1579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1580
1581LayerTestResult<float, 1> Debug1DFloat32Test(
1582 armnn::IWorkloadFactory& workloadFactory,
1583 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1584
1585LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1586 armnn::IWorkloadFactory& workloadFactory,
1587 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1588
1589LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1590 armnn::IWorkloadFactory& workloadFactory,
1591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1592
1593LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1594 armnn::IWorkloadFactory& workloadFactory,
1595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1596
1597LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1598 armnn::IWorkloadFactory& workloadFactory,
1599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra014951d842019-01-18 16:53:53 +00001600
1601LayerTestResult<float, 1> Gather1DParamsFloatTest(
1602 armnn::IWorkloadFactory& workloadFactory,
1603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1604
1605LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1606 armnn::IWorkloadFactory& workloadFactory,
1607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1608
1609LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1610 armnn::IWorkloadFactory& workloadFactory,
1611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1612
1613LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1614 armnn::IWorkloadFactory& workloadFactory,
1615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1616
1617LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1618 armnn::IWorkloadFactory& workloadFactory,
1619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1620
1621LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1622 armnn::IWorkloadFactory& workloadFactory,
1623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001624
Nattapat Chaimanowongafa4e3a2019-04-02 11:41:45 +01001625LayerTestResult<float, 4> DequantizeSimpleUint8Test(
1626 armnn::IWorkloadFactory& workloadFactory,
1627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1628
1629LayerTestResult<float, 4> DequantizeOffsetUint8Test(
1630 armnn::IWorkloadFactory& workloadFactory,
1631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1632
1633LayerTestResult<float, 4> DequantizeSimpleInt16Test(
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001634 armnn::IWorkloadFactory& workloadFactory,
1635 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowonga0beb3b2019-04-01 17:04:53 +01001636
1637LayerTestResult<uint8_t, 4> QuantizeSimpleUint8Test(
1638 armnn::IWorkloadFactory& workloadFactory,
1639 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1640
1641LayerTestResult<uint8_t, 4> QuantizeClampUint8Test(
1642 armnn::IWorkloadFactory& workloadFactory,
1643 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1644
1645LayerTestResult<int16_t, 4> QuantizeClampInt16Test(
1646 armnn::IWorkloadFactory& workloadFactory,
1647 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Francis Murtagh46c09d02019-05-28 08:15:28 +01001648
1649template<typename T, typename B>
1650LayerTestResult<T, 2> SimpleFullyConnectedTestImpl(
1651 armnn::IWorkloadFactory& workloadFactory,
1652 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1653 armnn::TensorInfo inputTensorInfo,
1654 armnn::TensorInfo outputTensorInfo,
1655 armnn::TensorInfo weightsDesc,
1656 armnn::TensorInfo biasesDesc,
1657 boost::multi_array<T, 2>& weights,
1658 boost::multi_array<B, 1>& bias,
1659 boost::multi_array<T, 4>& input,
1660 bool biasEnabled,
1661 bool transposeWeights)
1662{
1663 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1664 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1665
1666 armnn::FullyConnectedQueueDescriptor data;
1667 armnn::WorkloadInfo info;
1668 armnn::ScopedCpuTensorHandle weightsTensor(weightsDesc);
1669 armnn::ScopedCpuTensorHandle biasTensor(biasesDesc);
1670
1671 AllocateAndCopyDataToITensorHandle(&weightsTensor, &weights[0][0]);
1672 AllocateAndCopyDataToITensorHandle(&biasTensor, &bias[0]);
1673
1674 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1675 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1676 data.m_Weight = &weightsTensor;
1677 data.m_Bias = &biasTensor;
1678 data.m_Parameters.m_BiasEnabled = biasEnabled;
1679 data.m_Parameters.m_TransposeWeightMatrix = transposeWeights;
1680
1681 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFullyConnected(data, info);
1682 LayerTestResult<T, 2> result(outputTensorInfo);
1683
1684 inputHandle->Allocate();
1685 outputHandle->Allocate();
1686 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1687
1688 ExecuteWorkload(*workload, memoryManager);
1689
1690 CopyDataFromITensorHandle(&result.output[0][0], outputHandle.get());
1691
1692 return result;
1693}
1694
1695template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
1696std::vector<T> ConvertToDataType(const std::vector<float>& input,
1697 const armnn::TensorInfo& inputTensorInfo)
1698{
1699 std::vector<T> output(input.size());
1700 auto outputTensorInfo = inputTensorInfo;
1701 outputTensorInfo.SetDataType(ArmnnType);
1702
1703 std::unique_ptr<armnn::Encoder<float>> pOutputEncoder = armnn::MakeEncoder<float>(outputTensorInfo, output.data());
1704 armnn::Encoder<float>& rOutputEncoder = *pOutputEncoder;
1705
1706 for (auto it = input.begin(); it != input.end(); ++it)
1707 {
1708 rOutputEncoder.Set(*it);
1709 ++rOutputEncoder;
1710 }
1711 return output;
1712}
1713
1714template<armnn::DataType ArmnnType, typename T>
1715LayerTestResult<T, 2> FullyConnectedTest(
1716 armnn::IWorkloadFactory& workloadFactory,
1717 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1718 bool biasEnabled)
1719{
1720 constexpr static unsigned int inputWidth = 3u;
1721 constexpr static unsigned int inputHeight = 2u;
1722 constexpr static unsigned int inputChannels = 1u;
1723
1724 constexpr static unsigned int inputSize = inputWidth * inputHeight * inputChannels;
1725
1726 constexpr static unsigned int outputChannels = 2u;
1727
1728 armnn::TensorInfo inputTensorInfo({ 1, inputChannels, inputHeight, inputWidth }, ArmnnType);
1729 inputTensorInfo.SetQuantizationScale(0.1f);
1730 inputTensorInfo.SetQuantizationOffset(63);
1731
1732 armnn::TensorInfo outputTensorInfo({ 1, outputChannels }, ArmnnType);
1733 outputTensorInfo.SetQuantizationScale(5.f);
1734 outputTensorInfo.SetQuantizationOffset(biasEnabled ? -50 : 10);
1735
1736 armnn::TensorInfo weightsDesc({ outputChannels, inputSize }, ArmnnType);
1737 weightsDesc.SetQuantizationScale(0.2f);
1738 weightsDesc.SetQuantizationOffset(93);
1739
1740 armnn::TensorInfo biasesDesc({ outputChannels }, GetBiasTypeFromWeightsType(weightsDesc.GetDataType()).value());
1741 biasesDesc.SetQuantizationScale(inputTensorInfo.GetQuantizationScale() * weightsDesc.GetQuantizationScale());
1742 biasesDesc.SetQuantizationOffset(0);
1743
1744 LayerTestResult<T, 2> result(outputTensorInfo);
1745
1746 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
1747 {
1748 -1.2f, 6.1f, -3.5f,
1749 18.8f, -5.5f, 2.9f
1750 },
1751 inputTensorInfo));
1752
1753 auto weights = MakeTensor<T, 2>(weightsDesc, ConvertToDataType<ArmnnType>(
1754 {
1755 -8.4f, 20.0f, -10.4f, -8, 16.4f, -11.8f,
1756 23.4f, 10.4f, -14.0f, -3.8f, -11.8f, 11.4f
1757 },
1758 weightsDesc));
1759
1760 auto bias = MakeTensor<int32_t, 1>(biasesDesc, std::vector<int32_t>{9250, 67500});
1761
1762 result = SimpleFullyConnectedTestImpl<T>(
1763 workloadFactory,
1764 memoryManager,
1765 inputTensorInfo, outputTensorInfo,
1766 weightsDesc, biasesDesc,
1767 weights, bias, input,
1768 biasEnabled, true
1769 );
1770
1771 if (biasEnabled)
1772 {
1773 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1774 ConvertToDataType<ArmnnType>({80.f, 1460.f}, outputTensorInfo));
1775 }
1776 else
1777 {
1778 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1779 ConvertToDataType<ArmnnType>({-107.04f, 110.f}, outputTensorInfo));
1780 }
1781
1782 return result;
1783}