blob: a8cb553ce9fd371b94a7799f30f9eac363475bcf [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>
telsoa014fcda012018-03-09 14:13:49 +000011
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000012#include <backendsCommon/IBackendInternal.hpp>
13#include <backendsCommon/IMemoryManager.hpp>
14
telsoa014fcda012018-03-09 14:13:49 +000015#include <boost/multi_array.hpp>
16#include <boost/assert.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000017
telsoa014fcda012018-03-09 14:13:49 +000018#include <array>
19
telsoa01c577f2c2018-08-31 09:22:23 +010020// Layer callables.
telsoa014fcda012018-03-09 14:13:49 +000021
22namespace armnn
23{
24class IWorkloadFactory;
25}
26
27template <std::size_t n>
28boost::array<unsigned int, n> GetTensorShapeAsArray(const armnn::TensorInfo& tensorInfo)
29{
30 BOOST_ASSERT_MSG(n == tensorInfo.GetNumDimensions(),
31 "Attempting to construct a shape array of mismatching size");
32
33 boost::array<unsigned int, n> shape;
34 for (unsigned int i = 0; i < n; i++)
35 {
36 shape[i] = tensorInfo.GetShape()[i];
37 }
38 return shape;
39}
40
41template <typename T, std::size_t n>
42struct LayerTestResult
43{
44 LayerTestResult(const armnn::TensorInfo& outputInfo)
45 {
46 auto shape( GetTensorShapeAsArray<n>(outputInfo) );
47 output.resize(shape);
48 outputExpected.resize(shape);
49 supported = true;
kevmay012b4d88e2019-01-24 14:05:09 +000050 compareBoolean = false;
telsoa014fcda012018-03-09 14:13:49 +000051 }
52
53 boost::multi_array<T, n> output;
54 boost::multi_array<T, n> outputExpected;
55 bool supported;
kevmay012b4d88e2019-01-24 14:05:09 +000056 bool compareBoolean;
telsoa014fcda012018-03-09 14:13:49 +000057};
58
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000059LayerTestResult<float, 4> SimpleConvolution2d3x5Test(
60 armnn::IWorkloadFactory& workloadFactory,
61 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
62 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +000063 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000064
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000065LayerTestResult<float, 4> SimpleConvolution2d3x3Test(
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);
Francis Murtaghd59116e2018-10-04 16:03:07 +010070
Mike Kelly7332ed82018-12-20 17:03:06 +000071LayerTestResult<float, 4> SimpleConvolution2d3x3Stride2x2Test(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 bool biasEnabled,
75 const armnn::DataLayout layout);
76
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000077LayerTestResult<float, 4> SimpleConvolution2d3x3NhwcTest(
78 armnn::IWorkloadFactory& workloadFactory,
79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
80 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +000081
82LayerTestResult<float, 4>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000083Convolution2dAsymmetricPaddingLargerThanHalfKernelSizeTest(
84 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000086 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000087
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000088LayerTestResult<float, 4> Convolution2dAsymmetricPaddingTest(
89 armnn::IWorkloadFactory& workloadFactory,
90 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000091 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000092
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000093LayerTestResult<float, 4> Convolution1dTest(
94 armnn::IWorkloadFactory& workloadFactory,
95 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
96 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +000097
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000098LayerTestResult<uint8_t, 4> Convolution1dUint8Test(
99 armnn::IWorkloadFactory& workloadFactory,
100 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
101 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000102
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000103LayerTestResult<float, 4> DepthwiseConvolution2dTest(
104 armnn::IWorkloadFactory& workloadFactory,
105 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
106 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000107 const armnn::DataLayout layout);
Nikhil Rajcec6b652018-10-12 13:51:57 +0100108
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000109LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
110 armnn::IWorkloadFactory& workloadFactory,
111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000113
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000114LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
115 armnn::IWorkloadFactory& workloadFactory,
116 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
117 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000118 const armnn::DataLayout layout);
surmeh013537c2c2018-05-18 16:31:43 +0100119
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000120LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
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);
telsoa014fcda012018-03-09 14:13:49 +0000125
Nattapat Chaimanowong649dd952019-01-22 16:10:44 +0000126LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
127 armnn::IWorkloadFactory& workloadFactory,
128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129 armnn::IWorkloadFactory& refWorkloadFactory,
130 const armnn::DataLayout layout);
131
132LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
133 armnn::IWorkloadFactory& workloadFactory,
134 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
135 armnn::IWorkloadFactory& refWorkloadFactory,
136 const armnn::DataLayout layout);
137
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000138LayerTestResult<float, 4> SimpleMaxPooling2dSize2x2Stride2x2Test(
139 armnn::IWorkloadFactory& workloadFactory,
140 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
141 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000142
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000143LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Uint8Test(
144 armnn::IWorkloadFactory& workloadFactory,
145 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
146 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000147
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000148LayerTestResult<float, 4> SimpleMaxPooling2dSize3x3Stride2x4Test(
149 armnn::IWorkloadFactory& workloadFactory,
150 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
151 bool forceNoPadding);
152
153LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
154 armnn::IWorkloadFactory& workloadFactory,
155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156 bool forceNoPadding );
157
158LayerTestResult<float, 4> IgnorePaddingSimpleMaxPooling2dTest(
159 armnn::IWorkloadFactory& workloadFactory,
160 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
161
162LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
163 armnn::IWorkloadFactory& workloadFactory,
164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
165
166LayerTestResult<float, 4> IgnorePaddingMaxPooling2dSize3Test(
167 armnn::IWorkloadFactory& workloadFactory,
168 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
169
170LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
171 armnn::IWorkloadFactory& workloadFactory,
172 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
173
174LayerTestResult<float, 4> SimpleMaxPooling2dTest(
175 armnn::IWorkloadFactory& workloadFactory,
176 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000177 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000178
179LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
180 armnn::IWorkloadFactory& workloadFactory,
181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000182 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000183
184LayerTestResult<float, 4> SimpleAveragePooling2dTest(
185 armnn::IWorkloadFactory& workloadFactory,
186 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000187 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000188
189LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
190 armnn::IWorkloadFactory& workloadFactory,
191 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000192 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000193
194LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
195 armnn::IWorkloadFactory& workloadFactory,
196 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
197 bool forceNoPadding);
198
199LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dTest(
200 armnn::IWorkloadFactory& workloadFactory,
201 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
202
203LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
204 armnn::IWorkloadFactory& workloadFactory,
205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
206
207LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
208 armnn::IWorkloadFactory& workloadFactory,
209 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
210
telsoa014fcda012018-03-09 14:13:49 +0000211LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000212 armnn::IWorkloadFactory& workloadFactory,
213 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000214
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000215LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3Test(
216 armnn::IWorkloadFactory& workloadFactory,
217 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000218
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000219LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
220 armnn::IWorkloadFactory& workloadFactory,
221 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000222
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000223LayerTestResult<float, 4> SimpleL2Pooling2dTest(
224 armnn::IWorkloadFactory& workloadFactory,
225 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000226 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000227
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000228LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
229 armnn::IWorkloadFactory& workloadFactory,
230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000231 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000232
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000233LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(
234 armnn::IWorkloadFactory& workloadFactory,
235 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000236
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000237LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
238 armnn::IWorkloadFactory& workloadFactory,
239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000240
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000241LayerTestResult<float, 4> L2Pooling2dSize3Stride3Test(
242 armnn::IWorkloadFactory& workloadFactory,
243 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000244
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000245LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
246 armnn::IWorkloadFactory& workloadFactory,
247 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000248
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000249LayerTestResult<float, 4> L2Pooling2dSize3Stride4Test(
250 armnn::IWorkloadFactory& workloadFactory,
251 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000252
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000253LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
254 armnn::IWorkloadFactory& workloadFactory,
255 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000256
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000257LayerTestResult<float, 4> L2Pooling2dSize7Test(
258 armnn::IWorkloadFactory& workloadFactory,
259 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000260
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000261LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
262 armnn::IWorkloadFactory& workloadFactory,
263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000264
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000265LayerTestResult<float, 4> L2Pooling2dSize9Test(
266 armnn::IWorkloadFactory& workloadFactory,
267 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000268
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000269LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
270 armnn::IWorkloadFactory& workloadFactory,
271 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
272
273LayerTestResult<float, 4> LargeTensorsAveragePooling2dTest(
274 armnn::IWorkloadFactory& workloadFactory,
275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
276
277LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
278 armnn::IWorkloadFactory& workloadFactory,
279 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
280
281LayerTestResult<float, 4> IgnorePaddingSimpleL2Pooling2dTest(
282 armnn::IWorkloadFactory& workloadFactory,
283 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
284
285LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
286 armnn::IWorkloadFactory& workloadFactory,
287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
288
289LayerTestResult<float, 4> IgnorePaddingL2Pooling2dSize3Test(
290 armnn::IWorkloadFactory& workloadFactory,
291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
292
293LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
294 armnn::IWorkloadFactory& workloadFactory,
295 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
296
297LayerTestResult<float, 4> AsymmetricNonSquarePooling2dTest(
298 armnn::IWorkloadFactory& workloadFactory,
299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
300
301LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
302 armnn::IWorkloadFactory& workloadFactory,
303 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
304
305LayerTestResult<float, 4> ComparePooling2dTest(
306 armnn::IWorkloadFactory& workloadFactory,
307 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
308 armnn::IWorkloadFactory& refWorkloadFactory,
309 armnn::PoolingAlgorithm poolingType);
310
311LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
312 armnn::IWorkloadFactory& workloadFactory,
313 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
314 armnn::IWorkloadFactory& refWorkloadFactory,
315 armnn::PoolingAlgorithm poolingType);
316
317LayerTestResult<float, 4> ConstantLinearActivationTest(
318 armnn::IWorkloadFactory& workloadFactory,
319 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
320
321LayerTestResult<float, 4> SimpleNormalizationAcrossTest(
322 armnn::IWorkloadFactory& workloadFactory,
323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
324
325LayerTestResult<float, 4> SimpleNormalizationWithinTest(
326 armnn::IWorkloadFactory& workloadFactory,
327 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
328
329LayerTestResult<float,4> SimpleNormalizationAcrossNhwcTest(
330 armnn::IWorkloadFactory& workloadFactory,
331 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
332
333LayerTestResult<float, 2> SimpleSoftmaxTest(
334 armnn::IWorkloadFactory& workloadFactory,
335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
336 float beta);
337
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000338LayerTestResult<float, 3> Simple3dSoftmaxTest(
339 armnn::IWorkloadFactory& workloadFactory,
340 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
341 float beta);
342
343LayerTestResult<float, 4> Simple4dSoftmaxTest(
344 armnn::IWorkloadFactory& workloadFactory,
345 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
346 float beta);
347
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000348LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
349 armnn::IWorkloadFactory& workloadFactory,
350 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
351 float beta);
352
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000353LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test(
354 armnn::IWorkloadFactory& workloadFactory,
355 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
356 float beta);
357
358LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test(
359 armnn::IWorkloadFactory& workloadFactory,
360 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
361 float beta);
362
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000363LayerTestResult<float, 4> SimpleSigmoidTest(
364 armnn::IWorkloadFactory& workloadFactory,
365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
366
367LayerTestResult<float, 4> SimpleReshapeFloat32Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
370
371LayerTestResult<uint8_t, 4> SimpleReshapeUint8Test(
372 armnn::IWorkloadFactory& workloadFactory,
373 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
374
375LayerTestResult<float, 4> SimpleFloorTest(
376 armnn::IWorkloadFactory& workloadFactory,
377 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
378
379LayerTestResult<float, 1> Concatenation1dTest(
380 armnn::IWorkloadFactory& workloadFactory,
381 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
382
383LayerTestResult<float, 2> Concatenation2dDim0Test(
384 armnn::IWorkloadFactory& workloadFactory,
385 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
386
387LayerTestResult<float, 2> Concatenation2dDim1Test(
388 armnn::IWorkloadFactory& workloadFactory,
389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
390
391LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
392 armnn::IWorkloadFactory& workloadFactory,
393 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
394
395LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
396 armnn::IWorkloadFactory& workloadFactory,
397 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
398
399LayerTestResult<float, 3> Concatenation3dDim0Test(
400 armnn::IWorkloadFactory& workloadFactory,
401 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
402
403LayerTestResult<float, 3> Concatenation3dDim1Test(
404 armnn::IWorkloadFactory& workloadFactory,
405 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
406
407LayerTestResult<float, 3> Concatenation3dDim2Test(
408 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000409 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
410 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000411
412LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
413 armnn::IWorkloadFactory& workloadFactory,
414 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
415
416LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
417 armnn::IWorkloadFactory& workloadFactory,
418 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
419
420LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
421 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000422 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
423 bool useSubtensor);
424
425LayerTestResult<float, 4> Concatenation4dDim0Test(
426 armnn::IWorkloadFactory& workloadFactory,
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
428
narpra015cdda352018-11-19 15:30:27 +0000429LayerTestResult<float, 4> Concatenation4dDim1Test(
430 armnn::IWorkloadFactory& workloadFactory,
431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
432
433LayerTestResult<float, 4> Concatenation4dDim2Test(
434 armnn::IWorkloadFactory& workloadFactory,
435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
436
437LayerTestResult<float, 4> Concatenation4dDim3Test(
438 armnn::IWorkloadFactory& workloadFactory,
439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
440 bool useSubtensor);
441
442LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
443 armnn::IWorkloadFactory& workloadFactory,
444 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
445
446LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
447 armnn::IWorkloadFactory& workloadFactory,
448 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
449
450LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
451 armnn::IWorkloadFactory& workloadFactory,
452 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
453
454LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
455 armnn::IWorkloadFactory& workloadFactory,
456 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
457 bool useSubtensor);
458
459LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
460 armnn::IWorkloadFactory& workloadFactory,
461 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
462
463LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
464 armnn::IWorkloadFactory& workloadFactory,
465 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
466
467LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
468 armnn::IWorkloadFactory& workloadFactory,
469 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
470
471LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
472 armnn::IWorkloadFactory& workloadFactory,
473 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
474 bool useSubtensor);
475
476LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
477 armnn::IWorkloadFactory& workloadFactory,
478 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
479
480LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
481 armnn::IWorkloadFactory& workloadFactory,
482 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
483
484LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
485 armnn::IWorkloadFactory& workloadFactory,
486 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
487
488LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
489 armnn::IWorkloadFactory& workloadFactory,
490 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
491 bool useSubtensor);
492
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000493LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
494 armnn::IWorkloadFactory& workloadFactory,
495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
496
497LayerTestResult<float, 4> CompareConvolution2dTest(
498 armnn::IWorkloadFactory& workloadFactory,
499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000500 armnn::IWorkloadFactory& refWorkloadFactory);
501
502template<typename T>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000503LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
504 armnn::IWorkloadFactory& workloadFactory,
505 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
506 armnn::IWorkloadFactory& refWorkloadFactory,
Matthew Bentham8800c002018-11-19 13:19:28 +0000507 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000508
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000509LayerTestResult<float, 4> CompareNormalizationTest(
510 armnn::IWorkloadFactory& workloadFactory,
511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
512 armnn::IWorkloadFactory& refWorkloadFactory,
513 armnn::NormalizationAlgorithmChannel normChannel,
514 armnn::NormalizationAlgorithmMethod normMethod);
telsoa014fcda012018-03-09 14:13:49 +0000515
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000516LayerTestResult<float, 2> CompareSoftmaxTest(
517 armnn::IWorkloadFactory& workloadFactory,
518 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000519 armnn::IWorkloadFactory& refWorkloadFactory,
520 float beta);
521
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000522LayerTestResult<float, 2> FullyConnectedFloat32Test(
523 armnn::IWorkloadFactory& workloadFactory,
524 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
525 bool biasEnabled,
526 bool transposeWeights);
telsoa014fcda012018-03-09 14:13:49 +0000527
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000528std::vector<LayerTestResult<float, 3>> SplitterTest(
529 armnn::IWorkloadFactory& workloadFactory,
530 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
David Beck5cd01f32018-09-12 16:00:08 +0100531
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000532LayerTestResult<float, 3> CopyViaSplitterTest(
533 armnn::IWorkloadFactory& workloadFactory,
534 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000535
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000536LayerTestResult<float, 3> MergerTest(
537 armnn::IWorkloadFactory& workloadFactory,
538 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000539
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000540LayerTestResult<float, 4> AdditionTest(
541 armnn::IWorkloadFactory& workloadFactory,
542 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000543
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000544LayerTestResult<float, 4> AdditionBroadcast1ElementTest(
545 armnn::IWorkloadFactory& workloadFactory,
546 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000547
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000548LayerTestResult<float, 4> AdditionBroadcastTest(
549 armnn::IWorkloadFactory& workloadFactory,
550 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000551
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000552LayerTestResult<float, 4> CompareAdditionTest(
553 armnn::IWorkloadFactory& workloadFactory,
554 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
555 armnn::IWorkloadFactory& refWorkloadFactory);
telsoa014fcda012018-03-09 14:13:49 +0000556
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000557LayerTestResult<float, 4> SubtractionTest(
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> SubtractionBroadcast1ElementTest(
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> SubtractionBroadcastTest(
566 armnn::IWorkloadFactory& workloadFactory,
567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000568
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000569LayerTestResult<float, 4> CompareActivationTest(
570 armnn::IWorkloadFactory& workloadFactory,
571 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
572 armnn::IWorkloadFactory& refWorkloadFactory,
573 armnn::ActivationFunction f,
574 unsigned int batchSize);
telsoa014fcda012018-03-09 14:13:49 +0000575
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000576LayerTestResult<float, 4> DivisionTest(
577 armnn::IWorkloadFactory& workloadFactory,
578 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000579
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000580LayerTestResult<float, 4> DivisionByZeroTest(
581 armnn::IWorkloadFactory& workloadFactory,
582 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100583
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000584LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
585 armnn::IWorkloadFactory& workloadFactory,
586 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100587
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000588LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
589 armnn::IWorkloadFactory& workloadFactory,
590 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100591
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000592LayerTestResult<float, 4> MultiplicationTest(
593 armnn::IWorkloadFactory& workloadFactory,
594 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100595
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000596LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
597 armnn::IWorkloadFactory& workloadFactory,
598 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100599
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000600LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
601 armnn::IWorkloadFactory& workloadFactory,
602 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100603
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000604LayerTestResult<float, 4> CompareMultiplicationTest(
605 armnn::IWorkloadFactory& workloadFactory,
606 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
607 armnn::IWorkloadFactory& refWorkloadFactory);
Matteo Martincigh28dcab62018-10-19 16:40:03 +0100608
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000609LayerTestResult<float, 4> BatchNormTest(
610 armnn::IWorkloadFactory& workloadFactory,
611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000612
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000613LayerTestResult<float, 4> BatchNormNhwcTest(
614 armnn::IWorkloadFactory& workloadFactory,
615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000616
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000617LayerTestResult<float, 4> CompareBatchNormTest(
618 armnn::IWorkloadFactory& workloadFactory,
619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
620 armnn::IWorkloadFactory& refWorkloadFactory);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000621
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000622LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
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<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
627 armnn::IWorkloadFactory& workloadFactor,
628 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000629
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000630LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
631 armnn::IWorkloadFactory& workloadFactory,
632 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000633
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000634LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
635 armnn::IWorkloadFactory& workloadFactory,
636 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin262553e2018-11-14 11:26:23 +0000637
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000638LayerTestResult<float, 4> CompareBoundedReLuTest(
639 armnn::IWorkloadFactory& workloadFactory,
640 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
641 armnn::IWorkloadFactory& refWorkloadFactory,
642 float upperBound,
643 float lowerBound);
644
645// Tests that the output should be identical to the input when the output dimensions match the input ones.
646LayerTestResult<float, 4> ResizeBilinearNopTest(
647 armnn::IWorkloadFactory& workloadFactory,
648 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000649 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000650
651// Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
652LayerTestResult<float, 4> SimpleResizeBilinearTest(
653 armnn::IWorkloadFactory& workloadFactory,
654 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000655 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000656
657// Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
658// multiple of output dimensions).
659LayerTestResult<float, 4> ResizeBilinearSqMinTest(
660 armnn::IWorkloadFactory& workloadFactory,
661 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000662 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000663
664// Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
665LayerTestResult<float, 4> ResizeBilinearMinTest(
666 armnn::IWorkloadFactory& workloadFactory,
667 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000668 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000669
670// Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
671LayerTestResult<float, 4> ResizeBilinearMagTest(
672 armnn::IWorkloadFactory& workloadFactory,
673 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000674 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000675
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000676LayerTestResult<float, 2> Rsqrt2dTestCommon(
677 armnn::IWorkloadFactory& workloadFactory,
678 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
679 const armnn::TensorInfo inputTensorInfo,
680 const armnn::TensorInfo outputTensorInfo,
681 std::vector<float> inputValues,
682 std::vector<float> expectedOutputValues);
683
684LayerTestResult<float, 2> Rsqrt2dTest(
685 armnn::IWorkloadFactory& workloadFactory,
686 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
687
688LayerTestResult<float, 3> Rsqrt3dTest(
689 armnn::IWorkloadFactory& workloadFactory,
690 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
691
692LayerTestResult<float, 2> RsqrtZeroTest(
693 armnn::IWorkloadFactory& workloadFactory,
694 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
695
696LayerTestResult<float, 2> RsqrtNegativeTest(
697 armnn::IWorkloadFactory& workloadFactory,
698 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
699
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000700LayerTestResult<float, 4> BatchNormTest(
701 armnn::IWorkloadFactory& workloadFactory,
702 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
703
704LayerTestResult<float, 4> BatchNormNhwcTest(
705 armnn::IWorkloadFactory& workloadFactory,
706 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
707
708LayerTestResult<float, 2> FakeQuantizationTest(
709 armnn::IWorkloadFactory& workloadFactory,
710 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
711
712LayerTestResult<float, 4> L2Normalization1dTest(
713 armnn::IWorkloadFactory& workloadFactory,
714 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000715 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000716
717LayerTestResult<float, 4> L2Normalization2dTest(
718 armnn::IWorkloadFactory& workloadFactory,
719 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000720 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000721
722LayerTestResult<float, 4> L2Normalization3dTest(
723 armnn::IWorkloadFactory& workloadFactory,
724 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000725 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000726
727LayerTestResult<float, 4> L2Normalization4dTest(
728 armnn::IWorkloadFactory& workloadFactory,
729 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000730 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000731
732LayerTestResult<float, 4> ConstantTest(
733 armnn::IWorkloadFactory& workloadFactory,
734 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
735
736LayerTestResult<uint8_t, 4> ConstantTestUint8(
737 armnn::IWorkloadFactory& workloadFactory,
738 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
739
740LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
741 armnn::IWorkloadFactory& workloadFactory,
742 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
743 float upperBound);
744
745LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
746 armnn::IWorkloadFactory& workloadFactory,
747 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
748 float upperBound,
749 float lowerBound);
750
751LayerTestResult<uint8_t, 2> FullyConnectedUint8Test(
752 armnn::IWorkloadFactory& workloadFactory,
753 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
754 bool biasEnabled);
755
756std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
757 armnn::IWorkloadFactory& workloadFactory,
758 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
759
760LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
761 armnn::IWorkloadFactory& workloadFactory,
762 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
763
764LayerTestResult<uint8_t, 3> MergerUint8Test(
765 armnn::IWorkloadFactory& workloadFactory,
766 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
767
Ferran Balaguerb2845652019-02-27 09:42:06 +0000768LayerTestResult<uint8_t, 3> MergerUint8DifferentQParamsTest(
769 armnn::IWorkloadFactory& workloadFactory,
770 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
771
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000772LayerTestResult<uint8_t, 4> AdditionUint8Test(
773 armnn::IWorkloadFactory& workloadFactory,
774 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
775
776LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
777 armnn::IWorkloadFactory& workloadFactory,
778 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
779
780LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
781 armnn::IWorkloadFactory& workloadFactory,
782 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
783
784LayerTestResult<uint8_t, 4> SubtractionUint8Test(
785 armnn::IWorkloadFactory& workloadFactory,
786 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
787
788LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
789 armnn::IWorkloadFactory& workloadFactory,
790 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
791
792LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
793 armnn::IWorkloadFactory& workloadFactory,
794 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
795
796LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
797 armnn::IWorkloadFactory& workloadFactory,
798 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
799 armnn::IWorkloadFactory& refWorkloadFactory,
800 armnn::ActivationFunction f);
801
802LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
803 armnn::IWorkloadFactory& workloadFactory,
804 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
805 armnn::IWorkloadFactory& refWorkloadFactory,
806 float beta);
807
808LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
809 armnn::IWorkloadFactory& workloadFactory,
810 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
811
812LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
813 armnn::IWorkloadFactory& workloadFactory,
814 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
815
816LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
817 armnn::IWorkloadFactory& workloadFactory,
818 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
819
820LayerTestResult<uint8_t, 4> DivisionUint8Test(
821 armnn::IWorkloadFactory& workloadFactory,
822 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
823
824LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
825 armnn::IWorkloadFactory& workloadFactory,
826 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
827
828LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
829 armnn::IWorkloadFactory& workloadFactory,
830 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
831
832LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
833 armnn::IWorkloadFactory& workloadFactory,
834 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
835 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000836 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000837
838LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
839 armnn::IWorkloadFactory& workloadFactory,
840 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
841 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000842 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000843
844LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
845 armnn::IWorkloadFactory& workloadFactory,
846 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
847 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000848 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000849
850LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
851 armnn::IWorkloadFactory& workloadFactory,
852 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
853 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000854 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000855
856LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
857 armnn::IWorkloadFactory& workloadFactory,
858 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
859
860LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
861 armnn::IWorkloadFactory& workloadFactory,
862 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
863
864LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
865 armnn::IWorkloadFactory& workloadFactory,
866 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
867
868LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
871
872LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
873 armnn::IWorkloadFactory& workloadFactory,
874 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
875
876LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
877 armnn::IWorkloadFactory& workloadFactory,
878 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
879
880LayerTestResult<uint8_t, 4> BatchNormUint8Test(
881 armnn::IWorkloadFactory& workloadFactory,
882 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
883
884LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
885 armnn::IWorkloadFactory& workloadFactory,
886 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
887
888LayerTestResult<uint8_t, 4> ConstantUint8Test(
889 armnn::IWorkloadFactory& workloadFactory,
890 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
891
892LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
893 armnn::IWorkloadFactory& workloadFactory,
894 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
895
896LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
897 armnn::IWorkloadFactory& workloadFactory,
898 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
899
900LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
901 armnn::IWorkloadFactory& workloadFactory,
902 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
903
904LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
905 armnn::IWorkloadFactory& workloadFactory,
906 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
907
908LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
909 armnn::IWorkloadFactory& workloadFactory,
910 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
911
912LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
913 armnn::IWorkloadFactory& workloadFactory,
914 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
915
916LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
917 armnn::IWorkloadFactory& workloadFactory,
918 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
919
920LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
921 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000922 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
923 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000924
925LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
926 armnn::IWorkloadFactory& workloadFactory,
927 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
928
929LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
930 armnn::IWorkloadFactory& workloadFactory,
931 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
932
933LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
934 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000935 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
936 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000937
kevmay012b4d88e2019-01-24 14:05:09 +0000938LayerTestResult<uint8_t, 4> EqualSimpleTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000939 armnn::IWorkloadFactory& workloadFactory,
940 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
941
kevmay012b4d88e2019-01-24 14:05:09 +0000942LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000943 armnn::IWorkloadFactory& workloadFactory,
944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
945
kevmay012b4d88e2019-01-24 14:05:09 +0000946LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000947 armnn::IWorkloadFactory& workloadFactory,
948 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
949
950LayerTestResult<uint8_t, 4> EqualUint8Test(
951 armnn::IWorkloadFactory& workloadFactory,
952 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
953
954LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
955 armnn::IWorkloadFactory& workloadFactory,
956 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
957
958LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
959 armnn::IWorkloadFactory& workloadFactory,
960 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
961
kevmay012b4d88e2019-01-24 14:05:09 +0000962LayerTestResult<uint8_t, 4> GreaterSimpleTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000963 armnn::IWorkloadFactory& workloadFactory,
964 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
965
kevmay012b4d88e2019-01-24 14:05:09 +0000966LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000967 armnn::IWorkloadFactory& workloadFactory,
968 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
969
kevmay012b4d88e2019-01-24 14:05:09 +0000970LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000971 armnn::IWorkloadFactory& workloadFactory,
972 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
973
974LayerTestResult<uint8_t, 4> GreaterUint8Test(
975 armnn::IWorkloadFactory& workloadFactory,
976 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
977
978LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
979 armnn::IWorkloadFactory& workloadFactory,
980 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
981
982LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
983 armnn::IWorkloadFactory& workloadFactory,
984 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
985
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000986LayerTestResult<float, 2> FullyConnectedLargeTest(
987 armnn::IWorkloadFactory& workloadFactory,
988 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
989 bool transposeWeights);
990
991LayerTestResult<float, 4> SimplePermuteFloat32Test(
992 armnn::IWorkloadFactory& workloadFactory,
993 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
994
995LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
996 armnn::IWorkloadFactory& workloadFactory,
997 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
998
999LayerTestResult<uint8_t, 2> PadUint82dTest(
1000 armnn::IWorkloadFactory& workloadFactory,
1001 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1002
1003LayerTestResult<uint8_t, 3> PadUint83dTest(
1004 armnn::IWorkloadFactory& workloadFactory,
1005 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1006
1007LayerTestResult<uint8_t, 4> PadUint84dTest(
1008 armnn::IWorkloadFactory& workloadFactory,
1009 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1010
1011LayerTestResult<float, 2> PadFloat322dTest(
1012 armnn::IWorkloadFactory& workloadFactory,
1013 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1014
1015LayerTestResult<float, 3> PadFloat323dTest(
1016 armnn::IWorkloadFactory& workloadFactory,
1017 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1018
1019LayerTestResult<float, 4> PadFloat324dTest(
1020 armnn::IWorkloadFactory& workloadFactory,
1021 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1022
1023LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1024 armnn::IWorkloadFactory& workloadFactory,
1025 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1026
1027LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1028 armnn::IWorkloadFactory& workloadFactory,
1029 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1030
1031LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1032 armnn::IWorkloadFactory& workloadFactory,
1033 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1034
1035LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1036 armnn::IWorkloadFactory& workloadFactory,
1037 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1038
1039LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1040 armnn::IWorkloadFactory& workloadFactory,
1041 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1042
1043LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1044 armnn::IWorkloadFactory& workloadFactory,
1045 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1046
1047LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1048 armnn::IWorkloadFactory& workloadFactory,
1049 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1050
1051LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1052 armnn::IWorkloadFactory& workloadFactory,
1053 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1054
Éanna Ó Catháinde705582018-12-03 13:04:22 +00001055LayerTestResult<float, 4> MaximumSimpleTest(
1056 armnn::IWorkloadFactory& workloadFactory,
1057 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1058
1059LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1060 armnn::IWorkloadFactory& workloadFactory,
1061 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1062
1063LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1064 armnn::IWorkloadFactory& workloadFactory,
1065 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1066
1067LayerTestResult<uint8_t , 4> MaximumUint8Test(
1068 armnn::IWorkloadFactory& workloadFactory,
1069 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1070
1071LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1072 armnn::IWorkloadFactory& workloadFactory,
1073 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1074
1075LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1076 armnn::IWorkloadFactory& workloadFactory,
1077 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1078
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001079LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1080 armnn::IWorkloadFactory& workloadFactory,
1081 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1082
1083LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1084 armnn::IWorkloadFactory& workloadFactory,
1085 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1086
1087LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1088 armnn::IWorkloadFactory& workloadFactory,
1089 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1090
1091LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1092 armnn::IWorkloadFactory& workloadFactory,
1093 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1094
1095LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1096 armnn::IWorkloadFactory& workloadFactory,
1097 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1098
1099LayerTestResult<float, 1> MeanFloatSimpleTest(
1100 armnn::IWorkloadFactory& workloadFactory,
1101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1102
1103LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1104 armnn::IWorkloadFactory& workloadFactory,
1105 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1106
1107LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1108 armnn::IWorkloadFactory& workloadFactory,
1109 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1110
1111LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1112 armnn::IWorkloadFactory& workloadFactory,
1113 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1114
1115LayerTestResult<float, 1> MeanVtsFloat1Test(
1116 armnn::IWorkloadFactory& workloadFactory,
1117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1118
1119LayerTestResult<float, 3> MeanVtsFloat2Test(
1120 armnn::IWorkloadFactory& workloadFactory,
1121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1122
1123LayerTestResult<float, 3> MeanVtsFloat3Test(
1124 armnn::IWorkloadFactory& workloadFactory,
1125 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1126
Éanna Ó Catháin20e58802018-12-04 10:29:06 +00001127LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1128 armnn::IWorkloadFactory& workloadFactory,
1129 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1130
1131LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1132 armnn::IWorkloadFactory& workloadFactory,
1133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1134
1135LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1136 armnn::IWorkloadFactory & workloadFactory,
1137 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1138
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001139LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1140 armnn::IWorkloadFactory& workloadFactory,
1141 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1142
1143LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1144 armnn::IWorkloadFactory& workloadFactory,
1145 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1146
1147LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1148 armnn::IWorkloadFactory& workloadFactory,
1149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1150
1151LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1152 armnn::IWorkloadFactory& workloadFactory,
1153 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1154
1155LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1156 armnn::IWorkloadFactory& workloadFactory,
1157 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1158
1159LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1160 armnn::IWorkloadFactory& workloadFactory,
1161 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1162
1163LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1164 armnn::IWorkloadFactory& workloadFactory,
1165 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1166
1167LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1168 armnn::IWorkloadFactory& workloadFactory,
1169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1170
1171LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1172 armnn::IWorkloadFactory& workloadFactory,
1173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1174
1175LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1176 armnn::IWorkloadFactory& workloadFactory,
1177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1178
1179LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1180 armnn::IWorkloadFactory& workloadFactory,
1181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1182
1183LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1184 armnn::IWorkloadFactory& workloadFactory,
1185 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1186
1187LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1188 armnn::IWorkloadFactory& workloadFactory,
1189 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1190
1191LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1192 armnn::IWorkloadFactory& workloadFactory,
1193 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1194
1195LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1196 armnn::IWorkloadFactory& workloadFactory,
1197 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1198
1199LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1200 armnn::IWorkloadFactory& workloadFactory,
1201 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1202
1203LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1204 armnn::IWorkloadFactory& workloadFactory,
1205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1206
1207LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1208 armnn::IWorkloadFactory& workloadFactory,
1209 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1210
1211LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1212 armnn::IWorkloadFactory& workloadFactory,
1213 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1214
1215LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1216 armnn::IWorkloadFactory& workloadFactory,
1217 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1218
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001219LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test4(
1220 armnn::IWorkloadFactory& workloadFactory,
1221 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1222
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001223LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1224 armnn::IWorkloadFactory &workloadFactory,
1225 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1226
Mike Kelly831faed2018-11-28 11:52:08 +00001227LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001228 armnn::IWorkloadFactory &workloadFactory,
1229 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001230
1231LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001232 armnn::IWorkloadFactory &workloadFactory,
1233 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001234
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001235LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1236 armnn::IWorkloadFactory &workloadFactory,
1237 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001238
Mike Kelly831faed2018-11-28 11:52:08 +00001239LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001240 armnn::IWorkloadFactory &workloadFactory,
1241 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001242
1243LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001244 armnn::IWorkloadFactory &workloadFactory,
1245 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001246
1247LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001248 armnn::IWorkloadFactory &workloadFactory,
1249 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001250
1251LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001252 armnn::IWorkloadFactory &workloadFactory,
1253 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001254
1255LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001256 armnn::IWorkloadFactory &workloadFactory,
1257 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1258
1259LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest4(
1260 armnn::IWorkloadFactory &workloadFactory,
1261 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001262
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001263LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1264 armnn::IWorkloadFactory& workloadFactory,
1265 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001266
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001267LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1268 armnn::IWorkloadFactory& workloadFactory,
1269 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1270
1271LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1272 armnn::IWorkloadFactory& workloadFactory,
1273 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1274
1275LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1276 armnn::IWorkloadFactory& workloadFactory,
1277 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1278
1279LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1280 armnn::IWorkloadFactory& workloadFactory,
1281 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1282
1283LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1284 armnn::IWorkloadFactory& workloadFactory,
1285 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1286
1287LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1288 armnn::IWorkloadFactory& workloadFactory,
1289 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1290
1291LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1292 armnn::IWorkloadFactory& workloadFactory,
1293 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1294
1295LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1296 armnn::IWorkloadFactory& workloadFactory,
1297 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1298
1299LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1300 armnn::IWorkloadFactory& workloadFactory,
1301 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1302
1303LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1304 armnn::IWorkloadFactory& workloadFactory,
1305 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1306
1307LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1308 armnn::IWorkloadFactory& workloadFactory,
1309 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1310
1311LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1312 armnn::IWorkloadFactory& workloadFactory,
1313 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1314
1315LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1316 armnn::IWorkloadFactory& workloadFactory,
1317 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1318
1319LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1320 armnn::IWorkloadFactory& workloadFactory,
1321 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1322
1323LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1324 armnn::IWorkloadFactory& workloadFactory,
1325 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1326
1327LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1328 armnn::IWorkloadFactory& workloadFactory,
1329 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1330
1331LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1332 armnn::IWorkloadFactory& workloadFactory,
1333 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001334
1335LayerTestResult<float, 4> Debug4DFloat32Test(
1336 armnn::IWorkloadFactory& workloadFactory,
1337 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1338
1339LayerTestResult<float, 3> Debug3DFloat32Test(
1340 armnn::IWorkloadFactory& workloadFactory,
1341 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1342
1343LayerTestResult<float, 2> Debug2DFloat32Test(
1344 armnn::IWorkloadFactory& workloadFactory,
1345 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1346
1347LayerTestResult<float, 1> Debug1DFloat32Test(
1348 armnn::IWorkloadFactory& workloadFactory,
1349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1350
1351LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1352 armnn::IWorkloadFactory& workloadFactory,
1353 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1354
1355LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1356 armnn::IWorkloadFactory& workloadFactory,
1357 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1358
1359LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1360 armnn::IWorkloadFactory& workloadFactory,
1361 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1362
1363LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1364 armnn::IWorkloadFactory& workloadFactory,
1365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Matteo Martincigh49124022019-01-11 13:25:59 +00001366
1367LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1368 armnn::IWorkloadFactory& workloadFactory,
1369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1370
1371LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1372 armnn::IWorkloadFactory& workloadFactory,
1373 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1374
1375LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1376 armnn::IWorkloadFactory & workloadFactory,
1377 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1378
1379LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1380 armnn::IWorkloadFactory & workloadFactory,
1381 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1382
1383LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1384 armnn::IWorkloadFactory& workloadFactory,
1385 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1386
1387LayerTestResult<float, 4> Debug4DFloat32Test(
1388 armnn::IWorkloadFactory& workloadFactory,
1389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1390
1391LayerTestResult<float, 3> Debug3DFloat32Test(
1392 armnn::IWorkloadFactory& workloadFactory,
1393 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1394
1395LayerTestResult<float, 2> Debug2DFloat32Test(
1396 armnn::IWorkloadFactory& workloadFactory,
1397 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1398
1399LayerTestResult<float, 1> Debug1DFloat32Test(
1400 armnn::IWorkloadFactory& workloadFactory,
1401 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1402
1403LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1404 armnn::IWorkloadFactory& workloadFactory,
1405 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1406
1407LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1408 armnn::IWorkloadFactory& workloadFactory,
1409 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1410
1411LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1412 armnn::IWorkloadFactory& workloadFactory,
1413 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1414
1415LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1416 armnn::IWorkloadFactory& workloadFactory,
1417 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra014951d842019-01-18 16:53:53 +00001418
1419LayerTestResult<float, 1> Gather1DParamsFloatTest(
1420 armnn::IWorkloadFactory& workloadFactory,
1421 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1422
1423LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1424 armnn::IWorkloadFactory& workloadFactory,
1425 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1426
1427LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1428 armnn::IWorkloadFactory& workloadFactory,
1429 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1430
1431LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1432 armnn::IWorkloadFactory& workloadFactory,
1433 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1434
1435LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1436 armnn::IWorkloadFactory& workloadFactory,
1437 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1438
1439LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1440 armnn::IWorkloadFactory& workloadFactory,
1441 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);