blob: 893252b0548ce8a73e3bb341a3059d33ae54cdc6 [file] [log] [blame]
telsoa014fcda012018-03-09 14:13:49 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa014fcda012018-03-09 14:13:49 +00004//
5#pragma once
6
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00007#include <armnn/ArmNN.hpp>
8#include <armnn/Tensor.hpp>
9
10#include <Half.hpp>
Francis Murtagh46c09d02019-05-28 08:15:28 +010011#include "TensorCopyUtils.hpp"
12#include "WorkloadTestUtils.hpp"
telsoa014fcda012018-03-09 14:13:49 +000013
Francis Murtagh46c09d02019-05-28 08:15:28 +010014#include <backendsCommon/CpuTensorHandle.hpp>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000015#include <backendsCommon/IBackendInternal.hpp>
16#include <backendsCommon/IMemoryManager.hpp>
Francis Murtagh46c09d02019-05-28 08:15:28 +010017#include <reference/workloads/Decoders.hpp>
18#include <reference/workloads/Encoders.hpp>
19#include <test/TensorHelpers.hpp>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000020
telsoa014fcda012018-03-09 14:13:49 +000021#include <boost/multi_array.hpp>
22#include <boost/assert.hpp>
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000023
telsoa014fcda012018-03-09 14:13:49 +000024#include <array>
25
telsoa01c577f2c2018-08-31 09:22:23 +010026// Layer callables.
telsoa014fcda012018-03-09 14:13:49 +000027
28namespace armnn
29{
30class IWorkloadFactory;
31}
32
33template <std::size_t n>
34boost::array<unsigned int, n> GetTensorShapeAsArray(const armnn::TensorInfo& tensorInfo)
35{
36 BOOST_ASSERT_MSG(n == tensorInfo.GetNumDimensions(),
37 "Attempting to construct a shape array of mismatching size");
38
39 boost::array<unsigned int, n> shape;
40 for (unsigned int i = 0; i < n; i++)
41 {
42 shape[i] = tensorInfo.GetShape()[i];
43 }
44 return shape;
45}
46
47template <typename T, std::size_t n>
48struct LayerTestResult
49{
50 LayerTestResult(const armnn::TensorInfo& outputInfo)
51 {
52 auto shape( GetTensorShapeAsArray<n>(outputInfo) );
53 output.resize(shape);
54 outputExpected.resize(shape);
55 supported = true;
kevmay012b4d88e2019-01-24 14:05:09 +000056 compareBoolean = false;
telsoa014fcda012018-03-09 14:13:49 +000057 }
58
59 boost::multi_array<T, n> output;
60 boost::multi_array<T, n> outputExpected;
61 bool supported;
kevmay012b4d88e2019-01-24 14:05:09 +000062 bool compareBoolean;
telsoa014fcda012018-03-09 14:13:49 +000063};
64
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000065LayerTestResult<float, 4> SimpleConvolution2d3x5Test(
66 armnn::IWorkloadFactory& workloadFactory,
67 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
68 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +000069 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000070
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000071LayerTestResult<float, 4> SimpleConvolution2d3x3Test(
72 armnn::IWorkloadFactory& workloadFactory,
73 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +000075 const armnn::DataLayout layout);
Francis Murtaghd59116e2018-10-04 16:03:07 +010076
Mike Kelly7332ed82018-12-20 17:03:06 +000077LayerTestResult<float, 4> SimpleConvolution2d3x3Stride2x2Test(
78 armnn::IWorkloadFactory& workloadFactory,
79 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
80 bool biasEnabled,
81 const armnn::DataLayout layout);
82
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000083LayerTestResult<float, 4> SimpleConvolution2d3x3NhwcTest(
84 armnn::IWorkloadFactory& workloadFactory,
85 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
86 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +000087
88LayerTestResult<float, 4>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000089Convolution2dAsymmetricPaddingLargerThanHalfKernelSizeTest(
90 armnn::IWorkloadFactory& workloadFactory,
91 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000092 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000093
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000094LayerTestResult<float, 4> Convolution2dAsymmetricPaddingTest(
95 armnn::IWorkloadFactory& workloadFactory,
96 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +000097 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +000098
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +000099LayerTestResult<float, 4> Convolution1dTest(
100 armnn::IWorkloadFactory& workloadFactory,
101 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
102 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000103
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000104LayerTestResult<uint8_t, 4> Convolution1dUint8Test(
105 armnn::IWorkloadFactory& workloadFactory,
106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
107 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000108
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000109LayerTestResult<float, 4> DepthwiseConvolution2dTest(
110 armnn::IWorkloadFactory& workloadFactory,
111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000113 const armnn::DataLayout layout);
Nikhil Rajcec6b652018-10-12 13:51:57 +0100114
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000115LayerTestResult<float, 4> DepthwiseConvolution2dDepthNhwcTest(
116 armnn::IWorkloadFactory& workloadFactory,
117 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
118 bool biasEnabled);
telsoa014fcda012018-03-09 14:13:49 +0000119
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000120LayerTestResult<float, 4> DepthwiseConvolution2dDepthMul1Test(
121 armnn::IWorkloadFactory& workloadFactory,
122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
123 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000124 const armnn::DataLayout layout);
surmeh013537c2c2018-05-18 16:31:43 +0100125
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000126LayerTestResult<float, 4> DepthwiseConvolution2dAsymmetricTest(
127 armnn::IWorkloadFactory& workloadFactory,
128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000130 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000131
Bruno Goncalves22972f02019-04-26 21:03:24 -0300132LayerTestResult<float, 4> SimpleDepthwiseConvolution2d3x3Dilation3x3NhwcTest(armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
134
Nattapat Chaimanowong649dd952019-01-22 16:10:44 +0000135LayerTestResult<float, 4> CompareDepthwiseConvolution2dFloatTest(
136 armnn::IWorkloadFactory& workloadFactory,
137 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
138 armnn::IWorkloadFactory& refWorkloadFactory,
139 const armnn::DataLayout layout);
140
141LayerTestResult<uint8_t, 4> CompareDepthwiseConvolution2dUint8Test(
142 armnn::IWorkloadFactory& workloadFactory,
143 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
144 armnn::IWorkloadFactory& refWorkloadFactory,
145 const armnn::DataLayout layout);
146
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000147LayerTestResult<float, 4> SimpleMaxPooling2dSize2x2Stride2x2Test(
148 armnn::IWorkloadFactory& workloadFactory,
149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000151
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000152LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Uint8Test(
153 armnn::IWorkloadFactory& workloadFactory,
154 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155 bool forceNoPadding);
James Conroy45a9b772018-10-31 11:47:53 +0000156
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000157LayerTestResult<float, 4> SimpleMaxPooling2dSize3x3Stride2x4Test(
158 armnn::IWorkloadFactory& workloadFactory,
159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
160 bool forceNoPadding);
161
162LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
163 armnn::IWorkloadFactory& workloadFactory,
164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
165 bool forceNoPadding );
166
167LayerTestResult<float, 4> IgnorePaddingSimpleMaxPooling2dTest(
168 armnn::IWorkloadFactory& workloadFactory,
169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
170
171LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
172 armnn::IWorkloadFactory& workloadFactory,
173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
174
175LayerTestResult<float, 4> IgnorePaddingMaxPooling2dSize3Test(
176 armnn::IWorkloadFactory& workloadFactory,
177 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
178
179LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
180 armnn::IWorkloadFactory& workloadFactory,
181 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
182
183LayerTestResult<float, 4> SimpleMaxPooling2dTest(
184 armnn::IWorkloadFactory& workloadFactory,
185 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000186 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000187
188LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
189 armnn::IWorkloadFactory& workloadFactory,
190 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000191 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000192
193LayerTestResult<float, 4> SimpleAveragePooling2dTest(
194 armnn::IWorkloadFactory& workloadFactory,
195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000196 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000197
198LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
199 armnn::IWorkloadFactory& workloadFactory,
200 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000201 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000202
203LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
204 armnn::IWorkloadFactory& workloadFactory,
205 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
206 bool forceNoPadding);
207
208LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dTest(
209 armnn::IWorkloadFactory& workloadFactory,
210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
211
212LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
213 armnn::IWorkloadFactory& workloadFactory,
214 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
215
216LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
217 armnn::IWorkloadFactory& workloadFactory,
218 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
219
telsoa014fcda012018-03-09 14:13:49 +0000220LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000221 armnn::IWorkloadFactory& workloadFactory,
222 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000223
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000224LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3Test(
225 armnn::IWorkloadFactory& workloadFactory,
226 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000227
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000228LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
229 armnn::IWorkloadFactory& workloadFactory,
230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000231
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000232LayerTestResult<float, 4> SimpleL2Pooling2dTest(
233 armnn::IWorkloadFactory& workloadFactory,
234 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000235 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000236
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000237LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
238 armnn::IWorkloadFactory& workloadFactory,
239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000240 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000241
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000242LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(
243 armnn::IWorkloadFactory& workloadFactory,
244 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000245
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000246LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
247 armnn::IWorkloadFactory& workloadFactory,
248 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000249
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000250LayerTestResult<float, 4> L2Pooling2dSize3Stride3Test(
251 armnn::IWorkloadFactory& workloadFactory,
252 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000253
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000254LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
255 armnn::IWorkloadFactory& workloadFactory,
256 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000257
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000258LayerTestResult<float, 4> L2Pooling2dSize3Stride4Test(
259 armnn::IWorkloadFactory& workloadFactory,
260 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000261
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000262LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
263 armnn::IWorkloadFactory& workloadFactory,
264 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000265
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000266LayerTestResult<float, 4> L2Pooling2dSize7Test(
267 armnn::IWorkloadFactory& workloadFactory,
268 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000269
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000270LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
271 armnn::IWorkloadFactory& workloadFactory,
272 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000273
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000274LayerTestResult<float, 4> L2Pooling2dSize9Test(
275 armnn::IWorkloadFactory& workloadFactory,
276 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000277
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000278LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
279 armnn::IWorkloadFactory& workloadFactory,
280 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
281
282LayerTestResult<float, 4> LargeTensorsAveragePooling2dTest(
283 armnn::IWorkloadFactory& workloadFactory,
284 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
285
286LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
287 armnn::IWorkloadFactory& workloadFactory,
288 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
289
290LayerTestResult<float, 4> IgnorePaddingSimpleL2Pooling2dTest(
291 armnn::IWorkloadFactory& workloadFactory,
292 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
293
294LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
295 armnn::IWorkloadFactory& workloadFactory,
296 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
297
298LayerTestResult<float, 4> IgnorePaddingL2Pooling2dSize3Test(
299 armnn::IWorkloadFactory& workloadFactory,
300 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
301
302LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
303 armnn::IWorkloadFactory& workloadFactory,
304 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
305
306LayerTestResult<float, 4> AsymmetricNonSquarePooling2dTest(
307 armnn::IWorkloadFactory& workloadFactory,
308 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
309
310LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
311 armnn::IWorkloadFactory& workloadFactory,
312 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
313
314LayerTestResult<float, 4> ComparePooling2dTest(
315 armnn::IWorkloadFactory& workloadFactory,
316 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
317 armnn::IWorkloadFactory& refWorkloadFactory,
318 armnn::PoolingAlgorithm poolingType);
319
320LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
321 armnn::IWorkloadFactory& workloadFactory,
322 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
323 armnn::IWorkloadFactory& refWorkloadFactory,
324 armnn::PoolingAlgorithm poolingType);
325
326LayerTestResult<float, 4> ConstantLinearActivationTest(
327 armnn::IWorkloadFactory& workloadFactory,
328 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
329
330LayerTestResult<float, 4> SimpleNormalizationAcrossTest(
331 armnn::IWorkloadFactory& workloadFactory,
332 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
333
334LayerTestResult<float, 4> SimpleNormalizationWithinTest(
335 armnn::IWorkloadFactory& workloadFactory,
336 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
337
338LayerTestResult<float,4> SimpleNormalizationAcrossNhwcTest(
339 armnn::IWorkloadFactory& workloadFactory,
340 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
341
342LayerTestResult<float, 2> SimpleSoftmaxTest(
343 armnn::IWorkloadFactory& workloadFactory,
344 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
345 float beta);
346
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000347LayerTestResult<float, 3> Simple3dSoftmaxTest(
348 armnn::IWorkloadFactory& workloadFactory,
349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
350 float beta);
351
352LayerTestResult<float, 4> Simple4dSoftmaxTest(
353 armnn::IWorkloadFactory& workloadFactory,
354 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
355 float beta);
356
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000357LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
358 armnn::IWorkloadFactory& workloadFactory,
359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
360 float beta);
361
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000362LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test(
363 armnn::IWorkloadFactory& workloadFactory,
364 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
365 float beta);
366
367LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
370 float beta);
371
nikraj01248683f2019-05-29 16:46:50 +0100372LayerTestResult<int16_t,2> SimpleSoftmaxUint16Test(
373 armnn::IWorkloadFactory& workloadFactory,
374 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
375 float beta);
376
377LayerTestResult<int16_t,3> Simple3dSoftmaxUint16Test(
378 armnn::IWorkloadFactory& workloadFactory,
379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
380 float beta);
381
382LayerTestResult<int16_t,4> Simple4dSoftmaxUint16Test(
383 armnn::IWorkloadFactory& workloadFactory,
384 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
385 float beta);
386
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000387LayerTestResult<float, 4> SimpleSigmoidTest(
388 armnn::IWorkloadFactory& workloadFactory,
389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
390
Nina Drozd8ed4b8c2019-05-29 10:41:04 +0100391template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
392LayerTestResult<T, 4> SimpleReshapeTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000393 armnn::IWorkloadFactory& workloadFactory,
394 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
395
396LayerTestResult<float, 4> SimpleFloorTest(
397 armnn::IWorkloadFactory& workloadFactory,
398 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
399
400LayerTestResult<float, 1> Concatenation1dTest(
401 armnn::IWorkloadFactory& workloadFactory,
402 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
403
404LayerTestResult<float, 2> Concatenation2dDim0Test(
405 armnn::IWorkloadFactory& workloadFactory,
406 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
407
408LayerTestResult<float, 2> Concatenation2dDim1Test(
409 armnn::IWorkloadFactory& workloadFactory,
410 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
411
412LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
413 armnn::IWorkloadFactory& workloadFactory,
414 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
415
416LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
417 armnn::IWorkloadFactory& workloadFactory,
418 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
419
420LayerTestResult<float, 3> Concatenation3dDim0Test(
421 armnn::IWorkloadFactory& workloadFactory,
422 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
423
424LayerTestResult<float, 3> Concatenation3dDim1Test(
425 armnn::IWorkloadFactory& workloadFactory,
426 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
427
428LayerTestResult<float, 3> Concatenation3dDim2Test(
429 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000430 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
431 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000432
433LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
434 armnn::IWorkloadFactory& workloadFactory,
435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
436
437LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
438 armnn::IWorkloadFactory& workloadFactory,
439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
440
441LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
442 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
444 bool useSubtensor);
445
446LayerTestResult<float, 4> Concatenation4dDim0Test(
447 armnn::IWorkloadFactory& workloadFactory,
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000448 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
449
narpra015cdda352018-11-19 15:30:27 +0000450LayerTestResult<float, 4> Concatenation4dDim1Test(
451 armnn::IWorkloadFactory& workloadFactory,
452 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
453
454LayerTestResult<float, 4> Concatenation4dDim2Test(
455 armnn::IWorkloadFactory& workloadFactory,
456 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
457
458LayerTestResult<float, 4> Concatenation4dDim3Test(
459 armnn::IWorkloadFactory& workloadFactory,
460 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
461 bool useSubtensor);
462
463LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
464 armnn::IWorkloadFactory& workloadFactory,
465 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
466
467LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
468 armnn::IWorkloadFactory& workloadFactory,
469 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
470
471LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
472 armnn::IWorkloadFactory& workloadFactory,
473 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
474
475LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
476 armnn::IWorkloadFactory& workloadFactory,
477 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
478 bool useSubtensor);
479
480LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
481 armnn::IWorkloadFactory& workloadFactory,
482 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
483
484LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
485 armnn::IWorkloadFactory& workloadFactory,
486 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
487
488LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
489 armnn::IWorkloadFactory& workloadFactory,
490 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
491
492LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
493 armnn::IWorkloadFactory& workloadFactory,
494 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
495 bool useSubtensor);
496
497LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
498 armnn::IWorkloadFactory& workloadFactory,
499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
500
501LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
502 armnn::IWorkloadFactory& workloadFactory,
503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
504
505LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
506 armnn::IWorkloadFactory& workloadFactory,
507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
508
509LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
510 armnn::IWorkloadFactory& workloadFactory,
511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
512 bool useSubtensor);
513
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000514LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
515 armnn::IWorkloadFactory& workloadFactory,
516 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
517
Teresa Charlin18515e22019-04-24 10:17:46 +0100518LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
519 armnn::IWorkloadFactory& workloadFactory,
520 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
521
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000522LayerTestResult<float, 4> CompareConvolution2dTest(
523 armnn::IWorkloadFactory& workloadFactory,
524 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000525 armnn::IWorkloadFactory& refWorkloadFactory);
526
527template<typename T>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000528LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
529 armnn::IWorkloadFactory& workloadFactory,
530 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
531 armnn::IWorkloadFactory& refWorkloadFactory,
Matthew Bentham8800c002018-11-19 13:19:28 +0000532 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000533
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000534LayerTestResult<float, 4> CompareNormalizationTest(
535 armnn::IWorkloadFactory& workloadFactory,
536 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
537 armnn::IWorkloadFactory& refWorkloadFactory,
538 armnn::NormalizationAlgorithmChannel normChannel,
539 armnn::NormalizationAlgorithmMethod normMethod);
telsoa014fcda012018-03-09 14:13:49 +0000540
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000541LayerTestResult<float, 2> CompareSoftmaxTest(
542 armnn::IWorkloadFactory& workloadFactory,
543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000544 armnn::IWorkloadFactory& refWorkloadFactory,
545 float beta);
546
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000547LayerTestResult<float, 2> FullyConnectedFloat32Test(
548 armnn::IWorkloadFactory& workloadFactory,
549 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
550 bool biasEnabled,
551 bool transposeWeights);
telsoa014fcda012018-03-09 14:13:49 +0000552
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000553std::vector<LayerTestResult<float, 3>> SplitterTest(
554 armnn::IWorkloadFactory& workloadFactory,
555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
David Beck5cd01f32018-09-12 16:00:08 +0100556
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000557LayerTestResult<float, 3> CopyViaSplitterTest(
558 armnn::IWorkloadFactory& workloadFactory,
559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000560
Jim Flynn4ed6c832019-05-20 11:02:46 +0100561LayerTestResult<float, 3> ConcatTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000562 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> AdditionTest(
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> AdditionBroadcast1ElementTest(
570 armnn::IWorkloadFactory& workloadFactory,
571 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000572
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000573LayerTestResult<float, 4> AdditionBroadcastTest(
574 armnn::IWorkloadFactory& workloadFactory,
575 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000576
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000577LayerTestResult<float, 4> CompareAdditionTest(
578 armnn::IWorkloadFactory& workloadFactory,
579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
580 armnn::IWorkloadFactory& refWorkloadFactory);
telsoa014fcda012018-03-09 14:13:49 +0000581
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000582LayerTestResult<float, 4> SubtractionTest(
583 armnn::IWorkloadFactory& workloadFactory,
584 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000585
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000586LayerTestResult<float, 4> SubtractionBroadcast1ElementTest(
587 armnn::IWorkloadFactory& workloadFactory,
588 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000589
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000590LayerTestResult<float, 4> SubtractionBroadcastTest(
591 armnn::IWorkloadFactory& workloadFactory,
592 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000593
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000594LayerTestResult<float, 4> CompareActivationTest(
595 armnn::IWorkloadFactory& workloadFactory,
596 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
597 armnn::IWorkloadFactory& refWorkloadFactory,
598 armnn::ActivationFunction f,
599 unsigned int batchSize);
telsoa014fcda012018-03-09 14:13:49 +0000600
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000601LayerTestResult<float, 4> DivisionTest(
602 armnn::IWorkloadFactory& workloadFactory,
603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000604
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000605LayerTestResult<float, 4> DivisionByZeroTest(
606 armnn::IWorkloadFactory& workloadFactory,
607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100608
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000609LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
610 armnn::IWorkloadFactory& workloadFactory,
611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100612
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000613LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
614 armnn::IWorkloadFactory& workloadFactory,
615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100616
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000617LayerTestResult<float, 4> MultiplicationTest(
618 armnn::IWorkloadFactory& workloadFactory,
619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100620
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000621LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
622 armnn::IWorkloadFactory& workloadFactory,
623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100624
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000625LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
626 armnn::IWorkloadFactory& workloadFactory,
627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100628
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000629LayerTestResult<float, 4> CompareMultiplicationTest(
630 armnn::IWorkloadFactory& workloadFactory,
631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
632 armnn::IWorkloadFactory& refWorkloadFactory);
Matteo Martincigh28dcab62018-10-19 16:40:03 +0100633
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000634LayerTestResult<float, 4> BatchNormTest(
635 armnn::IWorkloadFactory& workloadFactory,
636 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000637
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000638LayerTestResult<float, 4> BatchNormNhwcTest(
639 armnn::IWorkloadFactory& workloadFactory,
640 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000641
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000642LayerTestResult<float, 4> CompareBatchNormTest(
643 armnn::IWorkloadFactory& workloadFactory,
644 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
645 armnn::IWorkloadFactory& refWorkloadFactory);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000646
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000647LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
648 armnn::IWorkloadFactory& workloadFactory,
649 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000650
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000651LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
652 armnn::IWorkloadFactory& workloadFactor,
653 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000654
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000655LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
656 armnn::IWorkloadFactory& workloadFactory,
657 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000658
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000659LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
660 armnn::IWorkloadFactory& workloadFactory,
661 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin262553e2018-11-14 11:26:23 +0000662
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000663LayerTestResult<float, 4> CompareBoundedReLuTest(
664 armnn::IWorkloadFactory& workloadFactory,
665 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
666 armnn::IWorkloadFactory& refWorkloadFactory,
667 float upperBound,
668 float lowerBound);
669
Teresa Charlin18515e22019-04-24 10:17:46 +0100670
671LayerTestResult<int16_t, 4> ReLuInt16Test(
672 armnn::IWorkloadFactory& workloadFactory,
673 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
674
675LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
676 armnn::IWorkloadFactory& workloadFactory,
677 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
678
679LayerTestResult<int16_t, 4> SoftReLuInt16Test(
680 armnn::IWorkloadFactory& workloadFactory,
681 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
682
683LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
684 armnn::IWorkloadFactory& workloadFactory,
685 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
686
687LayerTestResult<int16_t, 4> AbsInt16Test(
688 armnn::IWorkloadFactory& workloadFactory,
689 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
690
691LayerTestResult<int16_t, 4> SqrtInt16Test(
692 armnn::IWorkloadFactory& workloadFactory,
693 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
694
695LayerTestResult<int16_t, 4> SquareInt16Test(
696 armnn::IWorkloadFactory& workloadFactory,
697 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
698
699LayerTestResult<int16_t, 4> TanhInt16Test(
700 armnn::IWorkloadFactory& workloadFactory,
701 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
702
703
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000704// Tests that the output should be identical to the input when the output dimensions match the input ones.
705LayerTestResult<float, 4> ResizeBilinearNopTest(
706 armnn::IWorkloadFactory& workloadFactory,
707 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000708 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000709
710// Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
711LayerTestResult<float, 4> SimpleResizeBilinearTest(
712 armnn::IWorkloadFactory& workloadFactory,
713 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000714 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000715
716// Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
717// multiple of output dimensions).
718LayerTestResult<float, 4> ResizeBilinearSqMinTest(
719 armnn::IWorkloadFactory& workloadFactory,
720 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000721 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000722
723// Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
724LayerTestResult<float, 4> ResizeBilinearMinTest(
725 armnn::IWorkloadFactory& workloadFactory,
726 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000727 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000728
729// Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
730LayerTestResult<float, 4> ResizeBilinearMagTest(
731 armnn::IWorkloadFactory& workloadFactory,
732 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000733 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000734
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000735LayerTestResult<float, 2> Rsqrt2dTestCommon(
736 armnn::IWorkloadFactory& workloadFactory,
737 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
738 const armnn::TensorInfo inputTensorInfo,
739 const armnn::TensorInfo outputTensorInfo,
740 std::vector<float> inputValues,
741 std::vector<float> expectedOutputValues);
742
743LayerTestResult<float, 2> Rsqrt2dTest(
744 armnn::IWorkloadFactory& workloadFactory,
745 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
746
747LayerTestResult<float, 3> Rsqrt3dTest(
748 armnn::IWorkloadFactory& workloadFactory,
749 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
750
751LayerTestResult<float, 2> RsqrtZeroTest(
752 armnn::IWorkloadFactory& workloadFactory,
753 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
754
755LayerTestResult<float, 2> RsqrtNegativeTest(
756 armnn::IWorkloadFactory& workloadFactory,
757 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
758
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000759LayerTestResult<float, 4> BatchNormTest(
760 armnn::IWorkloadFactory& workloadFactory,
761 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
762
763LayerTestResult<float, 4> BatchNormNhwcTest(
764 armnn::IWorkloadFactory& workloadFactory,
765 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
766
767LayerTestResult<float, 2> FakeQuantizationTest(
768 armnn::IWorkloadFactory& workloadFactory,
769 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
770
771LayerTestResult<float, 4> L2Normalization1dTest(
772 armnn::IWorkloadFactory& workloadFactory,
773 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000774 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000775
776LayerTestResult<float, 4> L2Normalization2dTest(
777 armnn::IWorkloadFactory& workloadFactory,
778 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000779 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000780
781LayerTestResult<float, 4> L2Normalization3dTest(
782 armnn::IWorkloadFactory& workloadFactory,
783 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000784 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000785
786LayerTestResult<float, 4> L2Normalization4dTest(
787 armnn::IWorkloadFactory& workloadFactory,
788 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000789 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000790
791LayerTestResult<float, 4> ConstantTest(
792 armnn::IWorkloadFactory& workloadFactory,
793 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
794
Nina Drozd58ef2c62019-05-16 12:09:18 +0100795LayerTestResult<uint8_t, 4> ConstantUint8SimpleQuantizationScaleNoOffsetTest(
796 armnn::IWorkloadFactory& workloadFactory,
797 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
798
799LayerTestResult<int16_t, 4> ConstantInt16SimpleQuantizationScaleNoOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000800 armnn::IWorkloadFactory& workloadFactory,
801 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
802
803LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
804 armnn::IWorkloadFactory& workloadFactory,
805 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
806 float upperBound);
807
808LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
809 armnn::IWorkloadFactory& workloadFactory,
810 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
811 float upperBound,
812 float lowerBound);
813
Francis Murtagh46c09d02019-05-28 08:15:28 +0100814template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
815LayerTestResult<T, 2> FullyConnectedTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000816 armnn::IWorkloadFactory& workloadFactory,
817 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
818 bool biasEnabled);
819
820std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
821 armnn::IWorkloadFactory& workloadFactory,
822 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
823
824LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
825 armnn::IWorkloadFactory& workloadFactory,
826 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
827
Jim Flynn4ed6c832019-05-20 11:02:46 +0100828LayerTestResult<uint8_t, 3> ConcatUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000829 armnn::IWorkloadFactory& workloadFactory,
830 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
831
Jim Flynn4ed6c832019-05-20 11:02:46 +0100832LayerTestResult<uint16_t, 3> ConcatUint16Test(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100833 armnn::IWorkloadFactory& workloadFactory,
834 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
835
Jim Flynn4ed6c832019-05-20 11:02:46 +0100836LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100837 armnn::IWorkloadFactory& workloadFactory,
838 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Ferran Balaguerb2845652019-02-27 09:42:06 +0000839
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000840LayerTestResult<uint8_t, 4> AdditionUint8Test(
841 armnn::IWorkloadFactory& workloadFactory,
842 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
843
844LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
845 armnn::IWorkloadFactory& workloadFactory,
846 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
847
848LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
849 armnn::IWorkloadFactory& workloadFactory,
850 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
851
Sadik Armagan2999a022019-04-09 14:20:12 +0100852LayerTestResult<int16_t, 4> AdditionInt16Test(
853 armnn::IWorkloadFactory& workloadFactory,
854 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
855
856LayerTestResult<int16_t, 4> AdditionBroadcastInt16Test(
857 armnn::IWorkloadFactory& workloadFactory,
858 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
859
860LayerTestResult<int16_t, 4> AdditionBroadcast1ElementInt16Test(
861 armnn::IWorkloadFactory& workloadFactory,
862 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
863
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000864LayerTestResult<uint8_t, 4> SubtractionUint8Test(
865 armnn::IWorkloadFactory& workloadFactory,
866 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
867
868LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
871
872LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
873 armnn::IWorkloadFactory& workloadFactory,
874 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
875
Sadik Armagan2999a022019-04-09 14:20:12 +0100876LayerTestResult<int16_t, 4> SubtractionInt16Test(
877 armnn::IWorkloadFactory& workloadFactory,
878 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
879
880LayerTestResult<int16_t, 4> SubtractionBroadcast1ElementInt16Test(
881 armnn::IWorkloadFactory& workloadFactory,
882 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
883
884LayerTestResult<int16_t, 4> SubtractionBroadcastInt16Test(
885 armnn::IWorkloadFactory& workloadFactory,
886 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
887
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000888LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
889 armnn::IWorkloadFactory& workloadFactory,
890 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
891 armnn::IWorkloadFactory& refWorkloadFactory,
892 armnn::ActivationFunction f);
893
Teresa Charlin18515e22019-04-24 10:17:46 +0100894LayerTestResult<int16_t, 4> CompareActivationInt16Test(
895 armnn::IWorkloadFactory& workloadFactory,
896 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
897 armnn::IWorkloadFactory& refWorkloadFactory,
898 armnn::ActivationFunction f);
899
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000900LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
901 armnn::IWorkloadFactory& workloadFactory,
902 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
903 armnn::IWorkloadFactory& refWorkloadFactory,
904 float beta);
905
906LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
907 armnn::IWorkloadFactory& workloadFactory,
908 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
909
910LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
911 armnn::IWorkloadFactory& workloadFactory,
912 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
913
914LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
915 armnn::IWorkloadFactory& workloadFactory,
916 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
917
Sadik Armagan2999a022019-04-09 14:20:12 +0100918LayerTestResult<int16_t, 4> MultiplicationInt16Test(
919 armnn::IWorkloadFactory& workloadFactory,
920 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
921
922LayerTestResult<int16_t, 4> MultiplicationBroadcast1ElementInt16Test(
923 armnn::IWorkloadFactory& workloadFactory,
924 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
925
926LayerTestResult<int16_t, 4> MultiplicationBroadcast1DVectorInt16Test(
927 armnn::IWorkloadFactory& workloadFactory,
928 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
929
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000930LayerTestResult<uint8_t, 4> DivisionUint8Test(
931 armnn::IWorkloadFactory& workloadFactory,
932 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
933
934LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
935 armnn::IWorkloadFactory& workloadFactory,
936 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
937
938LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
939 armnn::IWorkloadFactory& workloadFactory,
940 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
941
Sadik Armagan2999a022019-04-09 14:20:12 +0100942LayerTestResult<int16_t, 4> DivisionInt16Test(
943 armnn::IWorkloadFactory& workloadFactory,
944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
945
946LayerTestResult<int16_t, 4> DivisionBroadcast1ElementInt16Test(
947 armnn::IWorkloadFactory& workloadFactory,
948 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
949
950LayerTestResult<int16_t, 4> DivisionBroadcast1DVectorInt16Test(
951 armnn::IWorkloadFactory& workloadFactory,
952 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
953
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000954LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
955 armnn::IWorkloadFactory& workloadFactory,
956 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
957 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000958 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000959
960LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
961 armnn::IWorkloadFactory& workloadFactory,
962 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
963 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000964 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000965
Mike Kelly2f80f6e2019-05-16 12:41:34 +0100966LayerTestResult<int16_t, 4> SimpleConvolution2d3x5QSymm16Test(
967 armnn::IWorkloadFactory& workloadFactory,
968 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
969 bool biasEnabled,
970 const armnn::DataLayout layout);
971
972LayerTestResult<int16_t, 4> SimpleConvolution2d3x3QSymm16Test(
973 armnn::IWorkloadFactory& workloadFactory,
974 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
975 bool biasEnabled,
976 const armnn::DataLayout layout);
977
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000978LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
979 armnn::IWorkloadFactory& workloadFactory,
980 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
981 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000982 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000983
984LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
985 armnn::IWorkloadFactory& workloadFactory,
986 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
987 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +0000988 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000989
Ruomei Yan88d44b82019-05-23 14:29:06 +0100990LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
991 armnn::IWorkloadFactory& workloadFactory,
992 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
993 bool biasEnabled,
994 const armnn::DataLayout layout);
995
996LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
997 armnn::IWorkloadFactory& workloadFactory,
998 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
999 bool biasEnabled,
1000 const armnn::DataLayout layout);
1001
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001002LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
1003 armnn::IWorkloadFactory& workloadFactory,
1004 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1005
Teresa Charlin18515e22019-04-24 10:17:46 +01001006LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
1007 armnn::IWorkloadFactory& workloadFactory,
1008 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1009
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001010LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
1011 armnn::IWorkloadFactory& workloadFactory,
1012 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1013
1014LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
1015 armnn::IWorkloadFactory& workloadFactory,
1016 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1017
1018LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
1019 armnn::IWorkloadFactory& workloadFactory,
1020 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1021
1022LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
1023 armnn::IWorkloadFactory& workloadFactory,
1024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1025
1026LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
1027 armnn::IWorkloadFactory& workloadFactory,
1028 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1029
1030LayerTestResult<uint8_t, 4> BatchNormUint8Test(
1031 armnn::IWorkloadFactory& workloadFactory,
1032 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1033
1034LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
1035 armnn::IWorkloadFactory& workloadFactory,
1036 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1037
Nina Drozd58ef2c62019-05-16 12:09:18 +01001038LayerTestResult<uint8_t, 4> ConstantUint8CustomQuantizationScaleAndOffsetTest(
1039 armnn::IWorkloadFactory& workloadFactory,
1040 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1041
1042LayerTestResult<int16_t, 4> ConstantInt16CustomQuantizationScaleAndOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001043 armnn::IWorkloadFactory& workloadFactory,
1044 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1045
1046LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
1047 armnn::IWorkloadFactory& workloadFactory,
1048 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1049
1050LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
1051 armnn::IWorkloadFactory& workloadFactory,
1052 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1053
1054LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
1055 armnn::IWorkloadFactory& workloadFactory,
1056 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1057
1058LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
1059 armnn::IWorkloadFactory& workloadFactory,
1060 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1061
1062LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
1063 armnn::IWorkloadFactory& workloadFactory,
1064 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1065
1066LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
1067 armnn::IWorkloadFactory& workloadFactory,
1068 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1069
1070LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
1071 armnn::IWorkloadFactory& workloadFactory,
1072 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1073
1074LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
1075 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001076 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1077 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001078
1079LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
1080 armnn::IWorkloadFactory& workloadFactory,
1081 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1082
1083LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
1084 armnn::IWorkloadFactory& workloadFactory,
1085 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1086
1087LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
1088 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001089 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1090 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001091
kevmay012b4d88e2019-01-24 14:05:09 +00001092LayerTestResult<uint8_t, 4> EqualSimpleTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001093 armnn::IWorkloadFactory& workloadFactory,
1094 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1095
kevmay012b4d88e2019-01-24 14:05:09 +00001096LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001097 armnn::IWorkloadFactory& workloadFactory,
1098 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1099
kevmay012b4d88e2019-01-24 14:05:09 +00001100LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001101 armnn::IWorkloadFactory& workloadFactory,
1102 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1103
1104LayerTestResult<uint8_t, 4> EqualUint8Test(
1105 armnn::IWorkloadFactory& workloadFactory,
1106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1107
1108LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
1109 armnn::IWorkloadFactory& workloadFactory,
1110 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1111
1112LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
1113 armnn::IWorkloadFactory& workloadFactory,
1114 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1115
kevmay012b4d88e2019-01-24 14:05:09 +00001116LayerTestResult<uint8_t, 4> GreaterSimpleTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001117 armnn::IWorkloadFactory& workloadFactory,
1118 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1119
kevmay012b4d88e2019-01-24 14:05:09 +00001120LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001121 armnn::IWorkloadFactory& workloadFactory,
1122 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1123
kevmay012b4d88e2019-01-24 14:05:09 +00001124LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001125 armnn::IWorkloadFactory& workloadFactory,
1126 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1127
1128LayerTestResult<uint8_t, 4> GreaterUint8Test(
1129 armnn::IWorkloadFactory& workloadFactory,
1130 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1131
1132LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
1133 armnn::IWorkloadFactory& workloadFactory,
1134 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1135
1136LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
1137 armnn::IWorkloadFactory& workloadFactory,
1138 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1139
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001140LayerTestResult<float, 2> FullyConnectedLargeTest(
1141 armnn::IWorkloadFactory& workloadFactory,
1142 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1143 bool transposeWeights);
1144
1145LayerTestResult<float, 4> SimplePermuteFloat32Test(
1146 armnn::IWorkloadFactory& workloadFactory,
1147 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1148
1149LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
1150 armnn::IWorkloadFactory& workloadFactory,
1151 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1152
1153LayerTestResult<uint8_t, 2> PadUint82dTest(
1154 armnn::IWorkloadFactory& workloadFactory,
1155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1156
1157LayerTestResult<uint8_t, 3> PadUint83dTest(
1158 armnn::IWorkloadFactory& workloadFactory,
1159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1160
1161LayerTestResult<uint8_t, 4> PadUint84dTest(
1162 armnn::IWorkloadFactory& workloadFactory,
1163 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1164
1165LayerTestResult<float, 2> PadFloat322dTest(
1166 armnn::IWorkloadFactory& workloadFactory,
1167 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1168
1169LayerTestResult<float, 3> PadFloat323dTest(
1170 armnn::IWorkloadFactory& workloadFactory,
1171 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1172
1173LayerTestResult<float, 4> PadFloat324dTest(
1174 armnn::IWorkloadFactory& workloadFactory,
1175 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1176
1177LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1178 armnn::IWorkloadFactory& workloadFactory,
1179 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1180
1181LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1182 armnn::IWorkloadFactory& workloadFactory,
1183 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1184
1185LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1186 armnn::IWorkloadFactory& workloadFactory,
1187 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1188
1189LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1190 armnn::IWorkloadFactory& workloadFactory,
1191 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1192
1193LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1194 armnn::IWorkloadFactory& workloadFactory,
1195 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1196
1197LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1198 armnn::IWorkloadFactory& workloadFactory,
1199 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1200
Conor Kennedyb9971c92019-05-07 07:14:23 +01001201LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
1202 armnn::IWorkloadFactory& workloadFactory,
1203 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1204
1205LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
1206 armnn::IWorkloadFactory& workloadFactory,
1207 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1208
1209LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
1210 armnn::IWorkloadFactory& workloadFactory,
1211 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1212
1213LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
1214 armnn::IWorkloadFactory& workloadFactory,
1215 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1216
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001217LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1218 armnn::IWorkloadFactory& workloadFactory,
1219 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1220
1221LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1222 armnn::IWorkloadFactory& workloadFactory,
1223 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1224
Éanna Ó Catháinde705582018-12-03 13:04:22 +00001225LayerTestResult<float, 4> MaximumSimpleTest(
1226 armnn::IWorkloadFactory& workloadFactory,
1227 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1228
1229LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1230 armnn::IWorkloadFactory& workloadFactory,
1231 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1232
1233LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1234 armnn::IWorkloadFactory& workloadFactory,
1235 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1236
1237LayerTestResult<uint8_t , 4> MaximumUint8Test(
1238 armnn::IWorkloadFactory& workloadFactory,
1239 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1240
1241LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1242 armnn::IWorkloadFactory& workloadFactory,
1243 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1244
1245LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1246 armnn::IWorkloadFactory& workloadFactory,
1247 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1248
Sadik Armagan2999a022019-04-09 14:20:12 +01001249LayerTestResult<int16_t , 4> MaximumInt16Test(
1250 armnn::IWorkloadFactory& workloadFactory,
1251 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1252
1253LayerTestResult<int16_t, 4> MaximumBroadcast1ElementInt16Test(
1254 armnn::IWorkloadFactory& workloadFactory,
1255 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1256
1257LayerTestResult<int16_t, 4> MaximumBroadcast1DVectorInt16Test(
1258 armnn::IWorkloadFactory& workloadFactory,
1259 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1260
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001261LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1262 armnn::IWorkloadFactory& workloadFactory,
1263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1264
1265LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1266 armnn::IWorkloadFactory& workloadFactory,
1267 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1268
1269LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1270 armnn::IWorkloadFactory& workloadFactory,
1271 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1272
1273LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1274 armnn::IWorkloadFactory& workloadFactory,
1275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1276
1277LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1278 armnn::IWorkloadFactory& workloadFactory,
1279 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1280
1281LayerTestResult<float, 1> MeanFloatSimpleTest(
1282 armnn::IWorkloadFactory& workloadFactory,
1283 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1284
1285LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1286 armnn::IWorkloadFactory& workloadFactory,
1287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1288
1289LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1290 armnn::IWorkloadFactory& workloadFactory,
1291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1292
1293LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1294 armnn::IWorkloadFactory& workloadFactory,
1295 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1296
1297LayerTestResult<float, 1> MeanVtsFloat1Test(
1298 armnn::IWorkloadFactory& workloadFactory,
1299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1300
1301LayerTestResult<float, 3> MeanVtsFloat2Test(
1302 armnn::IWorkloadFactory& workloadFactory,
1303 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1304
1305LayerTestResult<float, 3> MeanVtsFloat3Test(
1306 armnn::IWorkloadFactory& workloadFactory,
1307 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1308
Éanna Ó Catháin20e58802018-12-04 10:29:06 +00001309LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1310 armnn::IWorkloadFactory& workloadFactory,
1311 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1312
1313LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1314 armnn::IWorkloadFactory& workloadFactory,
1315 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1316
1317LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1318 armnn::IWorkloadFactory & workloadFactory,
1319 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1320
Sadik Armagan2999a022019-04-09 14:20:12 +01001321LayerTestResult<int16_t , 4> MinimumInt16Test(
1322 armnn::IWorkloadFactory& workloadFactory,
1323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1324
1325LayerTestResult<int16_t, 4> MinimumBroadcast1ElementInt16Test(
1326 armnn::IWorkloadFactory& workloadFactory,
1327 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1328
1329LayerTestResult<int16_t, 4> MinimumBroadcast1DVectorInt16Test(
1330 armnn::IWorkloadFactory& workloadFactory,
1331 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1332
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001333LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1334 armnn::IWorkloadFactory& workloadFactory,
1335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1336
1337LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1338 armnn::IWorkloadFactory& workloadFactory,
1339 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1340
1341LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1342 armnn::IWorkloadFactory& workloadFactory,
1343 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1344
1345LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1346 armnn::IWorkloadFactory& workloadFactory,
1347 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1348
1349LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1350 armnn::IWorkloadFactory& workloadFactory,
1351 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1352
1353LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1354 armnn::IWorkloadFactory& workloadFactory,
1355 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1356
1357LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1358 armnn::IWorkloadFactory& workloadFactory,
1359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1360
1361LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1362 armnn::IWorkloadFactory& workloadFactory,
1363 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1364
1365LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1366 armnn::IWorkloadFactory& workloadFactory,
1367 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1368
1369LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1370 armnn::IWorkloadFactory& workloadFactory,
1371 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1372
1373LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1374 armnn::IWorkloadFactory& workloadFactory,
1375 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1376
1377LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1378 armnn::IWorkloadFactory& workloadFactory,
1379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1380
1381LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1382 armnn::IWorkloadFactory& workloadFactory,
1383 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1384
1385LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1386 armnn::IWorkloadFactory& workloadFactory,
1387 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1388
1389LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1390 armnn::IWorkloadFactory& workloadFactory,
1391 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1392
1393LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1394 armnn::IWorkloadFactory& workloadFactory,
1395 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1396
1397LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1398 armnn::IWorkloadFactory& workloadFactory,
1399 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1400
1401LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1402 armnn::IWorkloadFactory& workloadFactory,
1403 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1404
1405LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1406 armnn::IWorkloadFactory& workloadFactory,
1407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1408
1409LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1410 armnn::IWorkloadFactory& workloadFactory,
1411 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1412
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001413LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test4(
1414 armnn::IWorkloadFactory& workloadFactory,
1415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1416
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001417LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1418 armnn::IWorkloadFactory &workloadFactory,
1419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1420
Mike Kelly831faed2018-11-28 11:52:08 +00001421LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001422 armnn::IWorkloadFactory &workloadFactory,
1423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001424
1425LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001426 armnn::IWorkloadFactory &workloadFactory,
1427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001428
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001429LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1430 armnn::IWorkloadFactory &workloadFactory,
1431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001432
Mike Kelly831faed2018-11-28 11:52:08 +00001433LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001434 armnn::IWorkloadFactory &workloadFactory,
1435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001436
1437LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001438 armnn::IWorkloadFactory &workloadFactory,
1439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001440
1441LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001442 armnn::IWorkloadFactory &workloadFactory,
1443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001444
1445LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001446 armnn::IWorkloadFactory &workloadFactory,
1447 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001448
1449LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001450 armnn::IWorkloadFactory &workloadFactory,
1451 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1452
1453LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest4(
1454 armnn::IWorkloadFactory &workloadFactory,
1455 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001456
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001457LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1458 armnn::IWorkloadFactory& workloadFactory,
1459 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001460
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001461LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1462 armnn::IWorkloadFactory& workloadFactory,
1463 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1464
1465LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1466 armnn::IWorkloadFactory& workloadFactory,
1467 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1468
1469LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1470 armnn::IWorkloadFactory& workloadFactory,
1471 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1472
1473LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1474 armnn::IWorkloadFactory& workloadFactory,
1475 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1476
1477LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1478 armnn::IWorkloadFactory& workloadFactory,
1479 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1480
1481LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1482 armnn::IWorkloadFactory& workloadFactory,
1483 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1484
1485LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1486 armnn::IWorkloadFactory& workloadFactory,
1487 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1488
1489LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1490 armnn::IWorkloadFactory& workloadFactory,
1491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1492
1493LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1494 armnn::IWorkloadFactory& workloadFactory,
1495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1496
1497LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1498 armnn::IWorkloadFactory& workloadFactory,
1499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1500
1501LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1502 armnn::IWorkloadFactory& workloadFactory,
1503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1504
1505LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1506 armnn::IWorkloadFactory& workloadFactory,
1507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1508
1509LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1510 armnn::IWorkloadFactory& workloadFactory,
1511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1512
1513LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1514 armnn::IWorkloadFactory& workloadFactory,
1515 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1516
1517LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1518 armnn::IWorkloadFactory& workloadFactory,
1519 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1520
1521LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1522 armnn::IWorkloadFactory& workloadFactory,
1523 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1524
1525LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1526 armnn::IWorkloadFactory& workloadFactory,
1527 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001528
1529LayerTestResult<float, 4> Debug4DFloat32Test(
1530 armnn::IWorkloadFactory& workloadFactory,
1531 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1532
1533LayerTestResult<float, 3> Debug3DFloat32Test(
1534 armnn::IWorkloadFactory& workloadFactory,
1535 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1536
1537LayerTestResult<float, 2> Debug2DFloat32Test(
1538 armnn::IWorkloadFactory& workloadFactory,
1539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1540
1541LayerTestResult<float, 1> Debug1DFloat32Test(
1542 armnn::IWorkloadFactory& workloadFactory,
1543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1544
1545LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1546 armnn::IWorkloadFactory& workloadFactory,
1547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1548
1549LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1550 armnn::IWorkloadFactory& workloadFactory,
1551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1552
1553LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1554 armnn::IWorkloadFactory& workloadFactory,
1555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1556
1557LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1558 armnn::IWorkloadFactory& workloadFactory,
1559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Matteo Martincigh49124022019-01-11 13:25:59 +00001560
1561LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1562 armnn::IWorkloadFactory& workloadFactory,
1563 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1564
1565LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1566 armnn::IWorkloadFactory& workloadFactory,
1567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1568
1569LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1570 armnn::IWorkloadFactory & workloadFactory,
1571 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1572
1573LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1574 armnn::IWorkloadFactory & workloadFactory,
1575 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1576
1577LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1578 armnn::IWorkloadFactory& workloadFactory,
1579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1580
1581LayerTestResult<float, 4> Debug4DFloat32Test(
1582 armnn::IWorkloadFactory& workloadFactory,
1583 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1584
1585LayerTestResult<float, 3> Debug3DFloat32Test(
1586 armnn::IWorkloadFactory& workloadFactory,
1587 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1588
1589LayerTestResult<float, 2> Debug2DFloat32Test(
1590 armnn::IWorkloadFactory& workloadFactory,
1591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1592
1593LayerTestResult<float, 1> Debug1DFloat32Test(
1594 armnn::IWorkloadFactory& workloadFactory,
1595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1596
1597LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1598 armnn::IWorkloadFactory& workloadFactory,
1599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1600
1601LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1602 armnn::IWorkloadFactory& workloadFactory,
1603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1604
1605LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1606 armnn::IWorkloadFactory& workloadFactory,
1607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1608
1609LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1610 armnn::IWorkloadFactory& workloadFactory,
1611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra014951d842019-01-18 16:53:53 +00001612
1613LayerTestResult<float, 1> Gather1DParamsFloatTest(
1614 armnn::IWorkloadFactory& workloadFactory,
1615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1616
1617LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1618 armnn::IWorkloadFactory& workloadFactory,
1619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1620
1621LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1622 armnn::IWorkloadFactory& workloadFactory,
1623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1624
1625LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1626 armnn::IWorkloadFactory& workloadFactory,
1627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1628
1629LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1630 armnn::IWorkloadFactory& workloadFactory,
1631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1632
1633LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1634 armnn::IWorkloadFactory& workloadFactory,
1635 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001636
Nattapat Chaimanowongafa4e3a2019-04-02 11:41:45 +01001637LayerTestResult<float, 4> DequantizeSimpleUint8Test(
1638 armnn::IWorkloadFactory& workloadFactory,
1639 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1640
1641LayerTestResult<float, 4> DequantizeOffsetUint8Test(
1642 armnn::IWorkloadFactory& workloadFactory,
1643 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1644
1645LayerTestResult<float, 4> DequantizeSimpleInt16Test(
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001646 armnn::IWorkloadFactory& workloadFactory,
1647 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowonga0beb3b2019-04-01 17:04:53 +01001648
1649LayerTestResult<uint8_t, 4> QuantizeSimpleUint8Test(
1650 armnn::IWorkloadFactory& workloadFactory,
1651 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1652
1653LayerTestResult<uint8_t, 4> QuantizeClampUint8Test(
1654 armnn::IWorkloadFactory& workloadFactory,
1655 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1656
1657LayerTestResult<int16_t, 4> QuantizeClampInt16Test(
1658 armnn::IWorkloadFactory& workloadFactory,
1659 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Francis Murtagh46c09d02019-05-28 08:15:28 +01001660
1661template<typename T, typename B>
1662LayerTestResult<T, 2> SimpleFullyConnectedTestImpl(
1663 armnn::IWorkloadFactory& workloadFactory,
1664 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1665 armnn::TensorInfo inputTensorInfo,
1666 armnn::TensorInfo outputTensorInfo,
1667 armnn::TensorInfo weightsDesc,
1668 armnn::TensorInfo biasesDesc,
1669 boost::multi_array<T, 2>& weights,
1670 boost::multi_array<B, 1>& bias,
1671 boost::multi_array<T, 4>& input,
1672 bool biasEnabled,
1673 bool transposeWeights)
1674{
1675 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1676 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1677
1678 armnn::FullyConnectedQueueDescriptor data;
1679 armnn::WorkloadInfo info;
1680 armnn::ScopedCpuTensorHandle weightsTensor(weightsDesc);
1681 armnn::ScopedCpuTensorHandle biasTensor(biasesDesc);
1682
1683 AllocateAndCopyDataToITensorHandle(&weightsTensor, &weights[0][0]);
1684 AllocateAndCopyDataToITensorHandle(&biasTensor, &bias[0]);
1685
1686 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1687 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1688 data.m_Weight = &weightsTensor;
1689 data.m_Bias = &biasTensor;
1690 data.m_Parameters.m_BiasEnabled = biasEnabled;
1691 data.m_Parameters.m_TransposeWeightMatrix = transposeWeights;
1692
1693 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFullyConnected(data, info);
1694 LayerTestResult<T, 2> result(outputTensorInfo);
1695
1696 inputHandle->Allocate();
1697 outputHandle->Allocate();
1698 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1699
1700 ExecuteWorkload(*workload, memoryManager);
1701
1702 CopyDataFromITensorHandle(&result.output[0][0], outputHandle.get());
1703
1704 return result;
1705}
1706
1707template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
1708std::vector<T> ConvertToDataType(const std::vector<float>& input,
1709 const armnn::TensorInfo& inputTensorInfo)
1710{
1711 std::vector<T> output(input.size());
1712 auto outputTensorInfo = inputTensorInfo;
1713 outputTensorInfo.SetDataType(ArmnnType);
1714
1715 std::unique_ptr<armnn::Encoder<float>> pOutputEncoder = armnn::MakeEncoder<float>(outputTensorInfo, output.data());
1716 armnn::Encoder<float>& rOutputEncoder = *pOutputEncoder;
1717
1718 for (auto it = input.begin(); it != input.end(); ++it)
1719 {
1720 rOutputEncoder.Set(*it);
1721 ++rOutputEncoder;
1722 }
1723 return output;
1724}
1725
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01001726template<typename T>
1727LayerTestResult<T, 4> SimpleReshapeTestImpl(
1728 armnn::IWorkloadFactory& workloadFactory,
1729 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1730 armnn::TensorInfo inputTensorInfo,
1731 armnn::TensorInfo outputTensorInfo,
1732 const std::vector<T>& inputData,
1733 const std::vector<T>& outputExpectedData)
1734{
1735 auto input = MakeTensor<T, 4>(inputTensorInfo, inputData);
1736
1737 LayerTestResult<T, 4> ret(outputTensorInfo);
1738 ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo, outputExpectedData);
1739
1740 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1741 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1742
1743 armnn::ReshapeQueueDescriptor data;
1744 armnn::WorkloadInfo info;
1745 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1746 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1747
1748 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReshape(data, info);
1749
1750 inputHandle->Allocate();
1751 outputHandle->Allocate();
1752
1753 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1754
1755 workload->Execute();
1756
1757 CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
1758
1759 return ret;
1760}
1761
Francis Murtagh46c09d02019-05-28 08:15:28 +01001762template<armnn::DataType ArmnnType, typename T>
1763LayerTestResult<T, 2> FullyConnectedTest(
1764 armnn::IWorkloadFactory& workloadFactory,
1765 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1766 bool biasEnabled)
1767{
1768 constexpr static unsigned int inputWidth = 3u;
1769 constexpr static unsigned int inputHeight = 2u;
1770 constexpr static unsigned int inputChannels = 1u;
1771
1772 constexpr static unsigned int inputSize = inputWidth * inputHeight * inputChannels;
1773
1774 constexpr static unsigned int outputChannels = 2u;
1775
1776 armnn::TensorInfo inputTensorInfo({ 1, inputChannels, inputHeight, inputWidth }, ArmnnType);
1777 inputTensorInfo.SetQuantizationScale(0.1f);
1778 inputTensorInfo.SetQuantizationOffset(63);
1779
1780 armnn::TensorInfo outputTensorInfo({ 1, outputChannels }, ArmnnType);
1781 outputTensorInfo.SetQuantizationScale(5.f);
1782 outputTensorInfo.SetQuantizationOffset(biasEnabled ? -50 : 10);
1783
1784 armnn::TensorInfo weightsDesc({ outputChannels, inputSize }, ArmnnType);
1785 weightsDesc.SetQuantizationScale(0.2f);
1786 weightsDesc.SetQuantizationOffset(93);
1787
1788 armnn::TensorInfo biasesDesc({ outputChannels }, GetBiasTypeFromWeightsType(weightsDesc.GetDataType()).value());
1789 biasesDesc.SetQuantizationScale(inputTensorInfo.GetQuantizationScale() * weightsDesc.GetQuantizationScale());
1790 biasesDesc.SetQuantizationOffset(0);
1791
1792 LayerTestResult<T, 2> result(outputTensorInfo);
1793
1794 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
1795 {
1796 -1.2f, 6.1f, -3.5f,
1797 18.8f, -5.5f, 2.9f
1798 },
1799 inputTensorInfo));
1800
1801 auto weights = MakeTensor<T, 2>(weightsDesc, ConvertToDataType<ArmnnType>(
1802 {
1803 -8.4f, 20.0f, -10.4f, -8, 16.4f, -11.8f,
1804 23.4f, 10.4f, -14.0f, -3.8f, -11.8f, 11.4f
1805 },
1806 weightsDesc));
1807
1808 auto bias = MakeTensor<int32_t, 1>(biasesDesc, std::vector<int32_t>{9250, 67500});
1809
1810 result = SimpleFullyConnectedTestImpl<T>(
1811 workloadFactory,
1812 memoryManager,
1813 inputTensorInfo, outputTensorInfo,
1814 weightsDesc, biasesDesc,
1815 weights, bias, input,
1816 biasEnabled, true
1817 );
1818
1819 if (biasEnabled)
1820 {
1821 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1822 ConvertToDataType<ArmnnType>({80.f, 1460.f}, outputTensorInfo));
1823 }
1824 else
1825 {
1826 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
1827 ConvertToDataType<ArmnnType>({-107.04f, 110.f}, outputTensorInfo));
1828 }
1829
1830 return result;
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01001831}
1832
1833
1834template<armnn::DataType ArmnnType, typename T>
1835LayerTestResult<T, 4> SimpleReshapeTest(
1836 armnn::IWorkloadFactory& workloadFactory,
1837 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
1838{
1839 armnn::TensorInfo inputTensorInfo;
1840 armnn::TensorInfo outputTensorInfo;
1841
1842 unsigned int inputShape[] = { 2, 2, 3, 3 };
1843 unsigned int outputShape[] = { 2, 2, 9, 1 };
1844
1845 inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
1846 inputTensorInfo.SetQuantizationScale(1.0f);
1847 outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
1848 outputTensorInfo.SetQuantizationScale(1.0f);
1849
1850 auto input = ConvertToDataType<ArmnnType>(
1851 {
1852 0.0f, 1.0f, 2.0f,
1853 3.0f, 4.0f, 5.0f,
1854 6.0f, 7.0f, 8.0f,
1855
1856 9.0f, 10.0f, 11.0f,
1857 12.0f, 13.0f, 14.0f,
1858 15.0f, 16.0f, 17.0f,
1859
1860 18.0f, 19.0f, 20.0f,
1861 21.0f, 22.0f, 23.0f,
1862 24.0f, 25.0f, 26.0f,
1863
1864 27.0f, 28.0f, 29.0f,
1865 30.0f, 31.0f, 32.0f,
1866 33.0f, 34.0f, 35.0f,
1867 },
1868 inputTensorInfo);
1869
1870 auto outputExpected = ConvertToDataType<ArmnnType>(
1871 {
1872 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f,
1873
1874 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f,
1875
1876 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 26.0f,
1877
1878 27.0f, 28.0f, 29.0f, 30.0f, 31.0f, 32.0f, 33.0f, 34.0f, 35.0f,
1879 },
1880 outputTensorInfo);
1881
1882 return SimpleReshapeTestImpl<T>(
1883 workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected);
Francis Murtagh46c09d02019-05-28 08:15:28 +01001884}