blob: 93385f00ce7ecc4d6303087cbe7de3e778266851 [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
338LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
339 armnn::IWorkloadFactory& workloadFactory,
340 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
341 float beta);
342
343LayerTestResult<float, 4> SimpleSigmoidTest(
344 armnn::IWorkloadFactory& workloadFactory,
345 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
346
347LayerTestResult<float, 4> SimpleReshapeFloat32Test(
348 armnn::IWorkloadFactory& workloadFactory,
349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
350
351LayerTestResult<uint8_t, 4> SimpleReshapeUint8Test(
352 armnn::IWorkloadFactory& workloadFactory,
353 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
354
355LayerTestResult<float, 4> SimpleFloorTest(
356 armnn::IWorkloadFactory& workloadFactory,
357 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
358
359LayerTestResult<float, 1> Concatenation1dTest(
360 armnn::IWorkloadFactory& workloadFactory,
361 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
362
363LayerTestResult<float, 2> Concatenation2dDim0Test(
364 armnn::IWorkloadFactory& workloadFactory,
365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
366
367LayerTestResult<float, 2> Concatenation2dDim1Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
370
371LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
372 armnn::IWorkloadFactory& workloadFactory,
373 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
374
375LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
376 armnn::IWorkloadFactory& workloadFactory,
377 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
378
379LayerTestResult<float, 3> Concatenation3dDim0Test(
380 armnn::IWorkloadFactory& workloadFactory,
381 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
382
383LayerTestResult<float, 3> Concatenation3dDim1Test(
384 armnn::IWorkloadFactory& workloadFactory,
385 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
386
387LayerTestResult<float, 3> Concatenation3dDim2Test(
388 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
390 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000391
392LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
393 armnn::IWorkloadFactory& workloadFactory,
394 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
395
396LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
397 armnn::IWorkloadFactory& workloadFactory,
398 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
399
400LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
401 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000402 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
403 bool useSubtensor);
404
405LayerTestResult<float, 4> Concatenation4dDim0Test(
406 armnn::IWorkloadFactory& workloadFactory,
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
408
narpra015cdda352018-11-19 15:30:27 +0000409LayerTestResult<float, 4> Concatenation4dDim1Test(
410 armnn::IWorkloadFactory& workloadFactory,
411 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
412
413LayerTestResult<float, 4> Concatenation4dDim2Test(
414 armnn::IWorkloadFactory& workloadFactory,
415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
416
417LayerTestResult<float, 4> Concatenation4dDim3Test(
418 armnn::IWorkloadFactory& workloadFactory,
419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
420 bool useSubtensor);
421
422LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
423 armnn::IWorkloadFactory& workloadFactory,
424 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
425
426LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
427 armnn::IWorkloadFactory& workloadFactory,
428 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
429
430LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
431 armnn::IWorkloadFactory& workloadFactory,
432 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
433
434LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
435 armnn::IWorkloadFactory& workloadFactory,
436 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
437 bool useSubtensor);
438
439LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
440 armnn::IWorkloadFactory& workloadFactory,
441 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
442
443LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
444 armnn::IWorkloadFactory& workloadFactory,
445 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
446
447LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
448 armnn::IWorkloadFactory& workloadFactory,
449 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
450
451LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
452 armnn::IWorkloadFactory& workloadFactory,
453 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
454 bool useSubtensor);
455
456LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
457 armnn::IWorkloadFactory& workloadFactory,
458 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
459
460LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
461 armnn::IWorkloadFactory& workloadFactory,
462 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
463
464LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
465 armnn::IWorkloadFactory& workloadFactory,
466 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
467
468LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
469 armnn::IWorkloadFactory& workloadFactory,
470 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
471 bool useSubtensor);
472
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000473LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
474 armnn::IWorkloadFactory& workloadFactory,
475 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
476
477LayerTestResult<float, 4> CompareConvolution2dTest(
478 armnn::IWorkloadFactory& workloadFactory,
479 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000480 armnn::IWorkloadFactory& refWorkloadFactory);
481
482template<typename T>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000483LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
484 armnn::IWorkloadFactory& workloadFactory,
485 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
486 armnn::IWorkloadFactory& refWorkloadFactory,
Matthew Bentham8800c002018-11-19 13:19:28 +0000487 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000488
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000489LayerTestResult<float, 4> CompareNormalizationTest(
490 armnn::IWorkloadFactory& workloadFactory,
491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
492 armnn::IWorkloadFactory& refWorkloadFactory,
493 armnn::NormalizationAlgorithmChannel normChannel,
494 armnn::NormalizationAlgorithmMethod normMethod);
telsoa014fcda012018-03-09 14:13:49 +0000495
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000496LayerTestResult<float, 2> CompareSoftmaxTest(
497 armnn::IWorkloadFactory& workloadFactory,
498 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000499 armnn::IWorkloadFactory& refWorkloadFactory,
500 float beta);
501
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000502LayerTestResult<float, 2> FullyConnectedFloat32Test(
503 armnn::IWorkloadFactory& workloadFactory,
504 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
505 bool biasEnabled,
506 bool transposeWeights);
telsoa014fcda012018-03-09 14:13:49 +0000507
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000508std::vector<LayerTestResult<float, 3>> SplitterTest(
509 armnn::IWorkloadFactory& workloadFactory,
510 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
David Beck5cd01f32018-09-12 16:00:08 +0100511
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000512LayerTestResult<float, 3> CopyViaSplitterTest(
513 armnn::IWorkloadFactory& workloadFactory,
514 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000515
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000516LayerTestResult<float, 3> MergerTest(
517 armnn::IWorkloadFactory& workloadFactory,
518 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000519
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000520LayerTestResult<float, 4> AdditionTest(
521 armnn::IWorkloadFactory& workloadFactory,
522 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000523
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000524LayerTestResult<float, 4> AdditionBroadcast1ElementTest(
525 armnn::IWorkloadFactory& workloadFactory,
526 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000527
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000528LayerTestResult<float, 4> AdditionBroadcastTest(
529 armnn::IWorkloadFactory& workloadFactory,
530 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000531
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000532LayerTestResult<float, 4> CompareAdditionTest(
533 armnn::IWorkloadFactory& workloadFactory,
534 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
535 armnn::IWorkloadFactory& refWorkloadFactory);
telsoa014fcda012018-03-09 14:13:49 +0000536
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000537LayerTestResult<float, 4> SubtractionTest(
538 armnn::IWorkloadFactory& workloadFactory,
539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000540
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000541LayerTestResult<float, 4> SubtractionBroadcast1ElementTest(
542 armnn::IWorkloadFactory& workloadFactory,
543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000544
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000545LayerTestResult<float, 4> SubtractionBroadcastTest(
546 armnn::IWorkloadFactory& workloadFactory,
547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000548
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000549LayerTestResult<float, 4> CompareActivationTest(
550 armnn::IWorkloadFactory& workloadFactory,
551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
552 armnn::IWorkloadFactory& refWorkloadFactory,
553 armnn::ActivationFunction f,
554 unsigned int batchSize);
telsoa014fcda012018-03-09 14:13:49 +0000555
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000556LayerTestResult<float, 4> DivisionTest(
557 armnn::IWorkloadFactory& workloadFactory,
558 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000559
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000560LayerTestResult<float, 4> DivisionByZeroTest(
561 armnn::IWorkloadFactory& workloadFactory,
562 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100563
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000564LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
565 armnn::IWorkloadFactory& workloadFactory,
566 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100567
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000568LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
569 armnn::IWorkloadFactory& workloadFactory,
570 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100571
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000572LayerTestResult<float, 4> MultiplicationTest(
573 armnn::IWorkloadFactory& workloadFactory,
574 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100575
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000576LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
577 armnn::IWorkloadFactory& workloadFactory,
578 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100579
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000580LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
581 armnn::IWorkloadFactory& workloadFactory,
582 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100583
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000584LayerTestResult<float, 4> CompareMultiplicationTest(
585 armnn::IWorkloadFactory& workloadFactory,
586 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
587 armnn::IWorkloadFactory& refWorkloadFactory);
Matteo Martincigh28dcab62018-10-19 16:40:03 +0100588
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000589LayerTestResult<float, 4> BatchNormTest(
590 armnn::IWorkloadFactory& workloadFactory,
591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000592
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000593LayerTestResult<float, 4> BatchNormNhwcTest(
594 armnn::IWorkloadFactory& workloadFactory,
595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000596
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000597LayerTestResult<float, 4> CompareBatchNormTest(
598 armnn::IWorkloadFactory& workloadFactory,
599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
600 armnn::IWorkloadFactory& refWorkloadFactory);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000601
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000602LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
603 armnn::IWorkloadFactory& workloadFactory,
604 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000605
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000606LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
607 armnn::IWorkloadFactory& workloadFactor,
608 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000609
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000610LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
611 armnn::IWorkloadFactory& workloadFactory,
612 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000613
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000614LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
615 armnn::IWorkloadFactory& workloadFactory,
616 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin262553e2018-11-14 11:26:23 +0000617
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000618LayerTestResult<float, 4> CompareBoundedReLuTest(
619 armnn::IWorkloadFactory& workloadFactory,
620 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
621 armnn::IWorkloadFactory& refWorkloadFactory,
622 float upperBound,
623 float lowerBound);
624
625// Tests that the output should be identical to the input when the output dimensions match the input ones.
626LayerTestResult<float, 4> ResizeBilinearNopTest(
627 armnn::IWorkloadFactory& workloadFactory,
628 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000629 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000630
631// Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
632LayerTestResult<float, 4> SimpleResizeBilinearTest(
633 armnn::IWorkloadFactory& workloadFactory,
634 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000635 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000636
637// Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
638// multiple of output dimensions).
639LayerTestResult<float, 4> ResizeBilinearSqMinTest(
640 armnn::IWorkloadFactory& workloadFactory,
641 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000642 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000643
644// Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
645LayerTestResult<float, 4> ResizeBilinearMinTest(
646 armnn::IWorkloadFactory& workloadFactory,
647 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000648 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000649
650// Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
651LayerTestResult<float, 4> ResizeBilinearMagTest(
652 armnn::IWorkloadFactory& workloadFactory,
653 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000654 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000655
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000656LayerTestResult<float, 2> Rsqrt2dTestCommon(
657 armnn::IWorkloadFactory& workloadFactory,
658 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
659 const armnn::TensorInfo inputTensorInfo,
660 const armnn::TensorInfo outputTensorInfo,
661 std::vector<float> inputValues,
662 std::vector<float> expectedOutputValues);
663
664LayerTestResult<float, 2> Rsqrt2dTest(
665 armnn::IWorkloadFactory& workloadFactory,
666 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
667
668LayerTestResult<float, 3> Rsqrt3dTest(
669 armnn::IWorkloadFactory& workloadFactory,
670 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
671
672LayerTestResult<float, 2> RsqrtZeroTest(
673 armnn::IWorkloadFactory& workloadFactory,
674 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
675
676LayerTestResult<float, 2> RsqrtNegativeTest(
677 armnn::IWorkloadFactory& workloadFactory,
678 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
679
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000680LayerTestResult<float, 4> BatchNormTest(
681 armnn::IWorkloadFactory& workloadFactory,
682 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
683
684LayerTestResult<float, 4> BatchNormNhwcTest(
685 armnn::IWorkloadFactory& workloadFactory,
686 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
687
688LayerTestResult<float, 2> FakeQuantizationTest(
689 armnn::IWorkloadFactory& workloadFactory,
690 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
691
692LayerTestResult<float, 4> L2Normalization1dTest(
693 armnn::IWorkloadFactory& workloadFactory,
694 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000695 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000696
697LayerTestResult<float, 4> L2Normalization2dTest(
698 armnn::IWorkloadFactory& workloadFactory,
699 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000700 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000701
702LayerTestResult<float, 4> L2Normalization3dTest(
703 armnn::IWorkloadFactory& workloadFactory,
704 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000705 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000706
707LayerTestResult<float, 4> L2Normalization4dTest(
708 armnn::IWorkloadFactory& workloadFactory,
709 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000710 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000711
712LayerTestResult<float, 4> ConstantTest(
713 armnn::IWorkloadFactory& workloadFactory,
714 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
715
716LayerTestResult<uint8_t, 4> ConstantTestUint8(
717 armnn::IWorkloadFactory& workloadFactory,
718 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
719
720LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
721 armnn::IWorkloadFactory& workloadFactory,
722 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
723 float upperBound);
724
725LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
726 armnn::IWorkloadFactory& workloadFactory,
727 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
728 float upperBound,
729 float lowerBound);
730
731LayerTestResult<uint8_t, 2> FullyConnectedUint8Test(
732 armnn::IWorkloadFactory& workloadFactory,
733 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
734 bool biasEnabled);
735
736std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
737 armnn::IWorkloadFactory& workloadFactory,
738 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
739
740LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
741 armnn::IWorkloadFactory& workloadFactory,
742 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
743
744LayerTestResult<uint8_t, 3> MergerUint8Test(
745 armnn::IWorkloadFactory& workloadFactory,
746 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
747
Ferran Balaguerb2845652019-02-27 09:42:06 +0000748LayerTestResult<uint8_t, 3> MergerUint8DifferentQParamsTest(
749 armnn::IWorkloadFactory& workloadFactory,
750 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
751
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000752LayerTestResult<uint8_t, 4> AdditionUint8Test(
753 armnn::IWorkloadFactory& workloadFactory,
754 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
755
756LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
757 armnn::IWorkloadFactory& workloadFactory,
758 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
759
760LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
761 armnn::IWorkloadFactory& workloadFactory,
762 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
763
764LayerTestResult<uint8_t, 4> SubtractionUint8Test(
765 armnn::IWorkloadFactory& workloadFactory,
766 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
767
768LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
769 armnn::IWorkloadFactory& workloadFactory,
770 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
771
772LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
773 armnn::IWorkloadFactory& workloadFactory,
774 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
775
776LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
777 armnn::IWorkloadFactory& workloadFactory,
778 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
779 armnn::IWorkloadFactory& refWorkloadFactory,
780 armnn::ActivationFunction f);
781
782LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
783 armnn::IWorkloadFactory& workloadFactory,
784 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
785 armnn::IWorkloadFactory& refWorkloadFactory,
786 float beta);
787
788LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
789 armnn::IWorkloadFactory& workloadFactory,
790 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
791
792LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
793 armnn::IWorkloadFactory& workloadFactory,
794 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
795
796LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
797 armnn::IWorkloadFactory& workloadFactory,
798 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
799
800LayerTestResult<uint8_t, 4> DivisionUint8Test(
801 armnn::IWorkloadFactory& workloadFactory,
802 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
803
804LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
805 armnn::IWorkloadFactory& workloadFactory,
806 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
807
808LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
809 armnn::IWorkloadFactory& workloadFactory,
810 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
811
812LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
813 armnn::IWorkloadFactory& workloadFactory,
814 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
815 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000816 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000817
818LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
819 armnn::IWorkloadFactory& workloadFactory,
820 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
821 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000822 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000823
824LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
825 armnn::IWorkloadFactory& workloadFactory,
826 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
827 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000828 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000829
830LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
831 armnn::IWorkloadFactory& workloadFactory,
832 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
833 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000834 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000835
836LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
837 armnn::IWorkloadFactory& workloadFactory,
838 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
839
840LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
841 armnn::IWorkloadFactory& workloadFactory,
842 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
843
844LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
845 armnn::IWorkloadFactory& workloadFactory,
846 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
847
848LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
849 armnn::IWorkloadFactory& workloadFactory,
850 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
851
852LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
853 armnn::IWorkloadFactory& workloadFactory,
854 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
855
856LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
857 armnn::IWorkloadFactory& workloadFactory,
858 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
859
860LayerTestResult<uint8_t, 4> BatchNormUint8Test(
861 armnn::IWorkloadFactory& workloadFactory,
862 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
863
864LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
865 armnn::IWorkloadFactory& workloadFactory,
866 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
867
868LayerTestResult<uint8_t, 4> ConstantUint8Test(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
871
872LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
873 armnn::IWorkloadFactory& workloadFactory,
874 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
875
876LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
877 armnn::IWorkloadFactory& workloadFactory,
878 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
879
880LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
881 armnn::IWorkloadFactory& workloadFactory,
882 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
883
884LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
885 armnn::IWorkloadFactory& workloadFactory,
886 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
887
888LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
889 armnn::IWorkloadFactory& workloadFactory,
890 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
891
892LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
893 armnn::IWorkloadFactory& workloadFactory,
894 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
895
896LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
897 armnn::IWorkloadFactory& workloadFactory,
898 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
899
900LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
901 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000902 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
903 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000904
905LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
906 armnn::IWorkloadFactory& workloadFactory,
907 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
908
909LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
910 armnn::IWorkloadFactory& workloadFactory,
911 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
912
913LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
914 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000915 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
916 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000917
kevmay012b4d88e2019-01-24 14:05:09 +0000918LayerTestResult<uint8_t, 4> EqualSimpleTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000919 armnn::IWorkloadFactory& workloadFactory,
920 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
921
kevmay012b4d88e2019-01-24 14:05:09 +0000922LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000923 armnn::IWorkloadFactory& workloadFactory,
924 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
925
kevmay012b4d88e2019-01-24 14:05:09 +0000926LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +0000927 armnn::IWorkloadFactory& workloadFactory,
928 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
929
930LayerTestResult<uint8_t, 4> EqualUint8Test(
931 armnn::IWorkloadFactory& workloadFactory,
932 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
933
934LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
935 armnn::IWorkloadFactory& workloadFactory,
936 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
937
938LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
939 armnn::IWorkloadFactory& workloadFactory,
940 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
941
kevmay012b4d88e2019-01-24 14:05:09 +0000942LayerTestResult<uint8_t, 4> GreaterSimpleTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000943 armnn::IWorkloadFactory& workloadFactory,
944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
945
kevmay012b4d88e2019-01-24 14:05:09 +0000946LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000947 armnn::IWorkloadFactory& workloadFactory,
948 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
949
kevmay012b4d88e2019-01-24 14:05:09 +0000950LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +0000951 armnn::IWorkloadFactory& workloadFactory,
952 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
953
954LayerTestResult<uint8_t, 4> GreaterUint8Test(
955 armnn::IWorkloadFactory& workloadFactory,
956 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
957
958LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
959 armnn::IWorkloadFactory& workloadFactory,
960 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
961
962LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
963 armnn::IWorkloadFactory& workloadFactory,
964 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
965
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000966LayerTestResult<float, 2> FullyConnectedLargeTest(
967 armnn::IWorkloadFactory& workloadFactory,
968 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
969 bool transposeWeights);
970
971LayerTestResult<float, 4> SimplePermuteFloat32Test(
972 armnn::IWorkloadFactory& workloadFactory,
973 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
974
975LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
976 armnn::IWorkloadFactory& workloadFactory,
977 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
978
979LayerTestResult<uint8_t, 2> PadUint82dTest(
980 armnn::IWorkloadFactory& workloadFactory,
981 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
982
983LayerTestResult<uint8_t, 3> PadUint83dTest(
984 armnn::IWorkloadFactory& workloadFactory,
985 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
986
987LayerTestResult<uint8_t, 4> PadUint84dTest(
988 armnn::IWorkloadFactory& workloadFactory,
989 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
990
991LayerTestResult<float, 2> PadFloat322dTest(
992 armnn::IWorkloadFactory& workloadFactory,
993 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
994
995LayerTestResult<float, 3> PadFloat323dTest(
996 armnn::IWorkloadFactory& workloadFactory,
997 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
998
999LayerTestResult<float, 4> PadFloat324dTest(
1000 armnn::IWorkloadFactory& workloadFactory,
1001 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1002
1003LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1004 armnn::IWorkloadFactory& workloadFactory,
1005 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1006
1007LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1008 armnn::IWorkloadFactory& workloadFactory,
1009 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1010
1011LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1012 armnn::IWorkloadFactory& workloadFactory,
1013 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1014
1015LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1016 armnn::IWorkloadFactory& workloadFactory,
1017 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1018
1019LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1020 armnn::IWorkloadFactory& workloadFactory,
1021 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1022
1023LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1024 armnn::IWorkloadFactory& workloadFactory,
1025 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1026
1027LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1028 armnn::IWorkloadFactory& workloadFactory,
1029 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1030
1031LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1032 armnn::IWorkloadFactory& workloadFactory,
1033 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1034
Éanna Ó Catháinde705582018-12-03 13:04:22 +00001035LayerTestResult<float, 4> MaximumSimpleTest(
1036 armnn::IWorkloadFactory& workloadFactory,
1037 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1038
1039LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1040 armnn::IWorkloadFactory& workloadFactory,
1041 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1042
1043LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1044 armnn::IWorkloadFactory& workloadFactory,
1045 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1046
1047LayerTestResult<uint8_t , 4> MaximumUint8Test(
1048 armnn::IWorkloadFactory& workloadFactory,
1049 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1050
1051LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1052 armnn::IWorkloadFactory& workloadFactory,
1053 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1054
1055LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1056 armnn::IWorkloadFactory& workloadFactory,
1057 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1058
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001059LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1060 armnn::IWorkloadFactory& workloadFactory,
1061 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1062
1063LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1064 armnn::IWorkloadFactory& workloadFactory,
1065 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1066
1067LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1068 armnn::IWorkloadFactory& workloadFactory,
1069 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1070
1071LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1072 armnn::IWorkloadFactory& workloadFactory,
1073 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1074
1075LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1076 armnn::IWorkloadFactory& workloadFactory,
1077 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1078
1079LayerTestResult<float, 1> MeanFloatSimpleTest(
1080 armnn::IWorkloadFactory& workloadFactory,
1081 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1082
1083LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1084 armnn::IWorkloadFactory& workloadFactory,
1085 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1086
1087LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1088 armnn::IWorkloadFactory& workloadFactory,
1089 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1090
1091LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1092 armnn::IWorkloadFactory& workloadFactory,
1093 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1094
1095LayerTestResult<float, 1> MeanVtsFloat1Test(
1096 armnn::IWorkloadFactory& workloadFactory,
1097 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1098
1099LayerTestResult<float, 3> MeanVtsFloat2Test(
1100 armnn::IWorkloadFactory& workloadFactory,
1101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1102
1103LayerTestResult<float, 3> MeanVtsFloat3Test(
1104 armnn::IWorkloadFactory& workloadFactory,
1105 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1106
Éanna Ó Catháin20e58802018-12-04 10:29:06 +00001107LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1108 armnn::IWorkloadFactory& workloadFactory,
1109 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1110
1111LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1112 armnn::IWorkloadFactory& workloadFactory,
1113 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1114
1115LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1116 armnn::IWorkloadFactory & workloadFactory,
1117 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1118
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001119LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1120 armnn::IWorkloadFactory& workloadFactory,
1121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1122
1123LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1124 armnn::IWorkloadFactory& workloadFactory,
1125 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1126
1127LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1128 armnn::IWorkloadFactory& workloadFactory,
1129 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1130
1131LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1132 armnn::IWorkloadFactory& workloadFactory,
1133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1134
1135LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1136 armnn::IWorkloadFactory& workloadFactory,
1137 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1138
1139LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1140 armnn::IWorkloadFactory& workloadFactory,
1141 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1142
1143LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1144 armnn::IWorkloadFactory& workloadFactory,
1145 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1146
1147LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1148 armnn::IWorkloadFactory& workloadFactory,
1149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1150
1151LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1152 armnn::IWorkloadFactory& workloadFactory,
1153 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1154
1155LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1156 armnn::IWorkloadFactory& workloadFactory,
1157 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1158
1159LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1160 armnn::IWorkloadFactory& workloadFactory,
1161 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1162
1163LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1164 armnn::IWorkloadFactory& workloadFactory,
1165 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1166
1167LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1168 armnn::IWorkloadFactory& workloadFactory,
1169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1170
1171LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1172 armnn::IWorkloadFactory& workloadFactory,
1173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1174
1175LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1176 armnn::IWorkloadFactory& workloadFactory,
1177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1178
1179LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1180 armnn::IWorkloadFactory& workloadFactory,
1181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1182
1183LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1184 armnn::IWorkloadFactory& workloadFactory,
1185 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1186
1187LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1188 armnn::IWorkloadFactory& workloadFactory,
1189 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1190
1191LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1192 armnn::IWorkloadFactory& workloadFactory,
1193 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1194
1195LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1196 armnn::IWorkloadFactory& workloadFactory,
1197 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1198
1199LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1200 armnn::IWorkloadFactory &workloadFactory,
1201 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1202
Mike Kelly831faed2018-11-28 11:52:08 +00001203LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
1204 armnn::IWorkloadFactory &workloadFactory,
1205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1206
1207LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
1208 armnn::IWorkloadFactory &workloadFactory,
1209 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1210
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001211LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1212 armnn::IWorkloadFactory &workloadFactory,
1213 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001214
Mike Kelly831faed2018-11-28 11:52:08 +00001215LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
1216 armnn::IWorkloadFactory &workloadFactory,
1217 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1218
1219LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
1220 armnn::IWorkloadFactory &workloadFactory,
1221 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1222
1223LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
1224 armnn::IWorkloadFactory &workloadFactory,
1225 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1226
1227LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
1228 armnn::IWorkloadFactory &workloadFactory,
1229 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1230
1231LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
1232 armnn::IWorkloadFactory &workloadFactory,
1233 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1234
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001235LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1236 armnn::IWorkloadFactory& workloadFactory,
1237 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001238
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001239LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1240 armnn::IWorkloadFactory& workloadFactory,
1241 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1242
1243LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1244 armnn::IWorkloadFactory& workloadFactory,
1245 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1246
1247LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1248 armnn::IWorkloadFactory& workloadFactory,
1249 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1250
1251LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1252 armnn::IWorkloadFactory& workloadFactory,
1253 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1254
1255LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1256 armnn::IWorkloadFactory& workloadFactory,
1257 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1258
1259LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1260 armnn::IWorkloadFactory& workloadFactory,
1261 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1262
1263LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1264 armnn::IWorkloadFactory& workloadFactory,
1265 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1266
1267LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1268 armnn::IWorkloadFactory& workloadFactory,
1269 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1270
1271LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1272 armnn::IWorkloadFactory& workloadFactory,
1273 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1274
1275LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1276 armnn::IWorkloadFactory& workloadFactory,
1277 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1278
1279LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1280 armnn::IWorkloadFactory& workloadFactory,
1281 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1282
1283LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1284 armnn::IWorkloadFactory& workloadFactory,
1285 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1286
1287LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1288 armnn::IWorkloadFactory& workloadFactory,
1289 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1290
1291LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1292 armnn::IWorkloadFactory& workloadFactory,
1293 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1294
1295LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1296 armnn::IWorkloadFactory& workloadFactory,
1297 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1298
1299LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1300 armnn::IWorkloadFactory& workloadFactory,
1301 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1302
1303LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1304 armnn::IWorkloadFactory& workloadFactory,
1305 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001306
1307LayerTestResult<float, 4> Debug4DFloat32Test(
1308 armnn::IWorkloadFactory& workloadFactory,
1309 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1310
1311LayerTestResult<float, 3> Debug3DFloat32Test(
1312 armnn::IWorkloadFactory& workloadFactory,
1313 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1314
1315LayerTestResult<float, 2> Debug2DFloat32Test(
1316 armnn::IWorkloadFactory& workloadFactory,
1317 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1318
1319LayerTestResult<float, 1> Debug1DFloat32Test(
1320 armnn::IWorkloadFactory& workloadFactory,
1321 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1322
1323LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1324 armnn::IWorkloadFactory& workloadFactory,
1325 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1326
1327LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1328 armnn::IWorkloadFactory& workloadFactory,
1329 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1330
1331LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1332 armnn::IWorkloadFactory& workloadFactory,
1333 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1334
1335LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1336 armnn::IWorkloadFactory& workloadFactory,
1337 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Matteo Martincigh49124022019-01-11 13:25:59 +00001338
1339LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1340 armnn::IWorkloadFactory& workloadFactory,
1341 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1342
1343LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1344 armnn::IWorkloadFactory& workloadFactory,
1345 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1346
1347LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1348 armnn::IWorkloadFactory & workloadFactory,
1349 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1350
1351LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1352 armnn::IWorkloadFactory & workloadFactory,
1353 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1354
1355LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1356 armnn::IWorkloadFactory& workloadFactory,
1357 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1358
1359LayerTestResult<float, 4> Debug4DFloat32Test(
1360 armnn::IWorkloadFactory& workloadFactory,
1361 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1362
1363LayerTestResult<float, 3> Debug3DFloat32Test(
1364 armnn::IWorkloadFactory& workloadFactory,
1365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1366
1367LayerTestResult<float, 2> Debug2DFloat32Test(
1368 armnn::IWorkloadFactory& workloadFactory,
1369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1370
1371LayerTestResult<float, 1> Debug1DFloat32Test(
1372 armnn::IWorkloadFactory& workloadFactory,
1373 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1374
1375LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1376 armnn::IWorkloadFactory& workloadFactory,
1377 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1378
1379LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1380 armnn::IWorkloadFactory& workloadFactory,
1381 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1382
1383LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1384 armnn::IWorkloadFactory& workloadFactory,
1385 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1386
1387LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1388 armnn::IWorkloadFactory& workloadFactory,
1389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra014951d842019-01-18 16:53:53 +00001390
1391LayerTestResult<float, 1> Gather1DParamsFloatTest(
1392 armnn::IWorkloadFactory& workloadFactory,
1393 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1394
1395LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1396 armnn::IWorkloadFactory& workloadFactory,
1397 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1398
1399LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1400 armnn::IWorkloadFactory& workloadFactory,
1401 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1402
1403LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1404 armnn::IWorkloadFactory& workloadFactory,
1405 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1406
1407LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1408 armnn::IWorkloadFactory& workloadFactory,
1409 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1410
1411LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1412 armnn::IWorkloadFactory& workloadFactory,
1413 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);