blob: b035d134888dd0604c2eacfa2247d9291ef0b2e3 [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
Teresa Charlin0434df62019-06-06 13:40:35 +0100157LayerTestResult<int16_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Int16Test(
158 armnn::IWorkloadFactory& workloadFactory,
159 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
160 bool forceNoPadding);
161
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000162LayerTestResult<float, 4> SimpleMaxPooling2dSize3x3Stride2x4Test(
163 armnn::IWorkloadFactory& workloadFactory,
164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
165 bool forceNoPadding);
166
167LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
168 armnn::IWorkloadFactory& workloadFactory,
169 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
170 bool forceNoPadding );
171
Teresa Charlin0434df62019-06-06 13:40:35 +0100172LayerTestResult<int16_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Int16Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000173 armnn::IWorkloadFactory& workloadFactory,
Teresa Charlin0434df62019-06-06 13:40:35 +0100174 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
175 bool forceNoPadding );
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000176
177LayerTestResult<float, 4> SimpleMaxPooling2dTest(
178 armnn::IWorkloadFactory& workloadFactory,
179 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000180 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000181
182LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
183 armnn::IWorkloadFactory& workloadFactory,
184 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000185 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000186
Teresa Charlin0434df62019-06-06 13:40:35 +0100187LayerTestResult<int16_t, 4> SimpleMaxPooling2dInt16Test(
188 armnn::IWorkloadFactory& workloadFactory,
189 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
190 const armnn::DataLayout dataLayout);
191
192LayerTestResult<float, 4> IgnorePaddingSimpleMaxPooling2dTest(
193 armnn::IWorkloadFactory& workloadFactory,
194 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
195
196LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
197 armnn::IWorkloadFactory& workloadFactory,
198 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
199
200LayerTestResult<int16_t, 4> IgnorePaddingSimpleMaxPooling2dInt16Test(
201 armnn::IWorkloadFactory& workloadFactory,
202 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
203
204LayerTestResult<float, 4> IgnorePaddingMaxPooling2dSize3Test(
205 armnn::IWorkloadFactory& workloadFactory,
206 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
207
208LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
209 armnn::IWorkloadFactory& workloadFactory,
210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
211
212LayerTestResult<int16_t, 4> IgnorePaddingMaxPooling2dSize3Int16Test(
213 armnn::IWorkloadFactory& workloadFactory,
214 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
215
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000216LayerTestResult<float, 4> SimpleAveragePooling2dTest(
217 armnn::IWorkloadFactory& workloadFactory,
218 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000219 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000220
221LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
222 armnn::IWorkloadFactory& workloadFactory,
223 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000224 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000225
Teresa Charlin0434df62019-06-06 13:40:35 +0100226LayerTestResult<int16_t, 4> SimpleAveragePooling2dInt16Test(
227 armnn::IWorkloadFactory& workloadFactory,
228 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
229 const armnn::DataLayout dataLayout);
230
231LayerTestResult<float, 4> LargeTensorsAveragePooling2dTest(
232 armnn::IWorkloadFactory& workloadFactory,
233 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
234
235LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
236 armnn::IWorkloadFactory& workloadFactory,
237 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
238
239LayerTestResult<int16_t, 4> LargeTensorsAveragePooling2dInt16Test(
240 armnn::IWorkloadFactory& workloadFactory,
241 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
242
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000243LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
244 armnn::IWorkloadFactory& workloadFactory,
245 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
246 bool forceNoPadding);
247
248LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dTest(
249 armnn::IWorkloadFactory& workloadFactory,
250 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
251
252LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
253 armnn::IWorkloadFactory& workloadFactory,
254 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
255
Teresa Charlin0434df62019-06-06 13:40:35 +0100256LayerTestResult<int16_t, 4> IgnorePaddingSimpleAveragePooling2dInt16Test(
257 armnn::IWorkloadFactory& workloadFactory,
258 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
259
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000260LayerTestResult<float, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
261 armnn::IWorkloadFactory& workloadFactory,
262 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
263
telsoa014fcda012018-03-09 14:13:49 +0000264LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000265 armnn::IWorkloadFactory& workloadFactory,
266 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000267
Teresa Charlin0434df62019-06-06 13:40:35 +0100268LayerTestResult<int16_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingInt16Test(
269 armnn::IWorkloadFactory& workloadFactory,
270 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
271
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000272LayerTestResult<float, 4> IgnorePaddingAveragePooling2dSize3Test(
273 armnn::IWorkloadFactory& workloadFactory,
274 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000275
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000276LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
277 armnn::IWorkloadFactory& workloadFactory,
278 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000279
Teresa Charlin0434df62019-06-06 13:40:35 +0100280LayerTestResult<int16_t, 4> IgnorePaddingAveragePooling2dSize3Int16Test(
281 armnn::IWorkloadFactory& workloadFactory,
282 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
283
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000284LayerTestResult<float, 4> SimpleL2Pooling2dTest(
285 armnn::IWorkloadFactory& workloadFactory,
286 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000287 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000288
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000289LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
290 armnn::IWorkloadFactory& workloadFactory,
291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000292 const armnn::DataLayout dataLayout);
telsoa014fcda012018-03-09 14:13:49 +0000293
Teresa Charlin0434df62019-06-06 13:40:35 +0100294LayerTestResult<int16_t, 4> SimpleL2Pooling2dInt16Test(
295 armnn::IWorkloadFactory& workloadFactory,
296 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
297 const armnn::DataLayout dataLayout);
298
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000299LayerTestResult<float, 4> L2Pooling2dSize3Stride1Test(
300 armnn::IWorkloadFactory& workloadFactory,
301 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000302
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000303LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
304 armnn::IWorkloadFactory& workloadFactory,
305 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000306
Teresa Charlin0434df62019-06-06 13:40:35 +0100307LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride1Int16Test(
308 armnn::IWorkloadFactory& workloadFactory,
309 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
310
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000311LayerTestResult<float, 4> L2Pooling2dSize3Stride3Test(
312 armnn::IWorkloadFactory& workloadFactory,
313 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000314
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000315LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
316 armnn::IWorkloadFactory& workloadFactory,
317 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000318
Teresa Charlin0434df62019-06-06 13:40:35 +0100319LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride3Int16Test(
320 armnn::IWorkloadFactory& workloadFactory,
321 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
322
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000323LayerTestResult<float, 4> L2Pooling2dSize3Stride4Test(
324 armnn::IWorkloadFactory& workloadFactory,
325 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000326
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000327LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
328 armnn::IWorkloadFactory& workloadFactory,
329 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000330
Teresa Charlin0434df62019-06-06 13:40:35 +0100331LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride4Int16Test(
332 armnn::IWorkloadFactory& workloadFactory,
333 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
334
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000335LayerTestResult<float, 4> L2Pooling2dSize7Test(
336 armnn::IWorkloadFactory& workloadFactory,
337 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000338
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000339LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
340 armnn::IWorkloadFactory& workloadFactory,
341 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000342
Teresa Charlin0434df62019-06-06 13:40:35 +0100343LayerTestResult<int16_t, 4> L2Pooling2dSize7Int16Test(
344 armnn::IWorkloadFactory& workloadFactory,
345 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
346
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000347LayerTestResult<float, 4> L2Pooling2dSize9Test(
348 armnn::IWorkloadFactory& workloadFactory,
349 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000350
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000351LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
352 armnn::IWorkloadFactory& workloadFactory,
353 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
354
Teresa Charlin0434df62019-06-06 13:40:35 +0100355LayerTestResult<int16_t, 4> L2Pooling2dSize9Int16Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000356 armnn::IWorkloadFactory& workloadFactory,
357 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
358
359LayerTestResult<float, 4> IgnorePaddingSimpleL2Pooling2dTest(
360 armnn::IWorkloadFactory& workloadFactory,
361 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
362
363LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
364 armnn::IWorkloadFactory& workloadFactory,
365 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
366
Teresa Charlin0434df62019-06-06 13:40:35 +0100367LayerTestResult<int16_t, 4> IgnorePaddingSimpleL2Pooling2dInt16Test(
368 armnn::IWorkloadFactory& workloadFactory,
369 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
370
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000371LayerTestResult<float, 4> IgnorePaddingL2Pooling2dSize3Test(
372 armnn::IWorkloadFactory& workloadFactory,
373 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
374
375LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
376 armnn::IWorkloadFactory& workloadFactory,
377 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
378
Teresa Charlin0434df62019-06-06 13:40:35 +0100379LayerTestResult<int16_t, 4> IgnorePaddingL2Pooling2dSize3Int16Test(
380 armnn::IWorkloadFactory& workloadFactory,
381 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
382
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000383LayerTestResult<float, 4> AsymmetricNonSquarePooling2dTest(
384 armnn::IWorkloadFactory& workloadFactory,
385 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
386
387LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
388 armnn::IWorkloadFactory& workloadFactory,
389 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
390
Teresa Charlin0434df62019-06-06 13:40:35 +0100391LayerTestResult<int16_t, 4> AsymmetricNonSquarePooling2dInt16Test(
392 armnn::IWorkloadFactory& workloadFactory,
393 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
394
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000395LayerTestResult<float, 4> ComparePooling2dTest(
396 armnn::IWorkloadFactory& workloadFactory,
397 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
398 armnn::IWorkloadFactory& refWorkloadFactory,
399 armnn::PoolingAlgorithm poolingType);
400
401LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
402 armnn::IWorkloadFactory& workloadFactory,
403 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
404 armnn::IWorkloadFactory& refWorkloadFactory,
405 armnn::PoolingAlgorithm poolingType);
406
Teresa Charlin0434df62019-06-06 13:40:35 +0100407LayerTestResult<int16_t, 4> ComparePooling2dInt16Test(
408 armnn::IWorkloadFactory& workloadFactory,
409 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
410 armnn::IWorkloadFactory& refWorkloadFactory,
411 armnn::PoolingAlgorithm poolingType);
412
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000413LayerTestResult<float, 4> ConstantLinearActivationTest(
414 armnn::IWorkloadFactory& workloadFactory,
415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
416
417LayerTestResult<float, 4> SimpleNormalizationAcrossTest(
418 armnn::IWorkloadFactory& workloadFactory,
419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
420
421LayerTestResult<float, 4> SimpleNormalizationWithinTest(
422 armnn::IWorkloadFactory& workloadFactory,
423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
424
425LayerTestResult<float,4> SimpleNormalizationAcrossNhwcTest(
426 armnn::IWorkloadFactory& workloadFactory,
427 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
428
429LayerTestResult<float, 2> SimpleSoftmaxTest(
430 armnn::IWorkloadFactory& workloadFactory,
431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
432 float beta);
433
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000434LayerTestResult<float, 3> Simple3dSoftmaxTest(
435 armnn::IWorkloadFactory& workloadFactory,
436 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
437 float beta);
438
439LayerTestResult<float, 4> Simple4dSoftmaxTest(
440 armnn::IWorkloadFactory& workloadFactory,
441 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
442 float beta);
443
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000444LayerTestResult<uint8_t, 2> SimpleSoftmaxUint8Test(
445 armnn::IWorkloadFactory& workloadFactory,
446 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
447 float beta);
448
Narumol Prangnawarat65d30962019-03-14 11:55:03 +0000449LayerTestResult<uint8_t,3> Simple3dSoftmaxUint8Test(
450 armnn::IWorkloadFactory& workloadFactory,
451 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
452 float beta);
453
454LayerTestResult<uint8_t,4> Simple4dSoftmaxUint8Test(
455 armnn::IWorkloadFactory& workloadFactory,
456 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
457 float beta);
458
nikraj01248683f2019-05-29 16:46:50 +0100459LayerTestResult<int16_t,2> SimpleSoftmaxUint16Test(
460 armnn::IWorkloadFactory& workloadFactory,
461 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
462 float beta);
463
464LayerTestResult<int16_t,3> Simple3dSoftmaxUint16Test(
465 armnn::IWorkloadFactory& workloadFactory,
466 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
467 float beta);
468
469LayerTestResult<int16_t,4> Simple4dSoftmaxUint16Test(
470 armnn::IWorkloadFactory& workloadFactory,
471 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
472 float beta);
473
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000474LayerTestResult<float, 4> SimpleSigmoidTest(
475 armnn::IWorkloadFactory& workloadFactory,
476 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
477
Nina Drozd8ed4b8c2019-05-29 10:41:04 +0100478template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
479LayerTestResult<T, 4> SimpleReshapeTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000480 armnn::IWorkloadFactory& workloadFactory,
481 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
482
483LayerTestResult<float, 4> SimpleFloorTest(
484 armnn::IWorkloadFactory& workloadFactory,
485 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
486
487LayerTestResult<float, 1> Concatenation1dTest(
488 armnn::IWorkloadFactory& workloadFactory,
489 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
490
491LayerTestResult<float, 2> Concatenation2dDim0Test(
492 armnn::IWorkloadFactory& workloadFactory,
493 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
494
495LayerTestResult<float, 2> Concatenation2dDim1Test(
496 armnn::IWorkloadFactory& workloadFactory,
497 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
498
499LayerTestResult<float, 2> Concatenation2dDim0DiffInputDimsTest(
500 armnn::IWorkloadFactory& workloadFactory,
501 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
502
503LayerTestResult<float, 2> Concatenation2dDim1DiffInputDimsTest(
504 armnn::IWorkloadFactory& workloadFactory,
505 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
506
507LayerTestResult<float, 3> Concatenation3dDim0Test(
508 armnn::IWorkloadFactory& workloadFactory,
509 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
510
511LayerTestResult<float, 3> Concatenation3dDim1Test(
512 armnn::IWorkloadFactory& workloadFactory,
513 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
514
515LayerTestResult<float, 3> Concatenation3dDim2Test(
516 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000517 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
518 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000519
520LayerTestResult<float, 3> Concatenation3dDim0DiffInputDimsTest(
521 armnn::IWorkloadFactory& workloadFactory,
522 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
523
524LayerTestResult<float, 3> Concatenation3dDim1DiffInputDimsTest(
525 armnn::IWorkloadFactory& workloadFactory,
526 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
527
528LayerTestResult<float, 3> Concatenation3dDim2DiffInputDimsTest(
529 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +0000530 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
531 bool useSubtensor);
532
533LayerTestResult<float, 4> Concatenation4dDim0Test(
534 armnn::IWorkloadFactory& workloadFactory,
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000535 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
536
narpra015cdda352018-11-19 15:30:27 +0000537LayerTestResult<float, 4> Concatenation4dDim1Test(
538 armnn::IWorkloadFactory& workloadFactory,
539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
540
541LayerTestResult<float, 4> Concatenation4dDim2Test(
542 armnn::IWorkloadFactory& workloadFactory,
543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
544
545LayerTestResult<float, 4> Concatenation4dDim3Test(
546 armnn::IWorkloadFactory& workloadFactory,
547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
548 bool useSubtensor);
549
550LayerTestResult<float, 4> Concatenation4dDiffShapeDim0Test(
551 armnn::IWorkloadFactory& workloadFactory,
552 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
553
554LayerTestResult<float, 4> Concatenation4dDiffShapeDim1Test(
555 armnn::IWorkloadFactory& workloadFactory,
556 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
557
558LayerTestResult<float, 4> Concatenation4dDiffShapeDim2Test(
559 armnn::IWorkloadFactory& workloadFactory,
560 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
561
562LayerTestResult<float, 4> Concatenation4dDiffShapeDim3Test(
563 armnn::IWorkloadFactory& workloadFactory,
564 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
565 bool useSubtensor);
566
567LayerTestResult<uint8_t, 4> Concatenation4dDim0Uint8Test(
568 armnn::IWorkloadFactory& workloadFactory,
569 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
570
571LayerTestResult<uint8_t, 4> Concatenation4dDim1Uint8Test(
572 armnn::IWorkloadFactory& workloadFactory,
573 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
574
575LayerTestResult<uint8_t, 4> Concatenation4dDim2Uint8Test(
576 armnn::IWorkloadFactory& workloadFactory,
577 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
578
579LayerTestResult<uint8_t, 4> Concatenation4dDim3Uint8Test(
580 armnn::IWorkloadFactory& workloadFactory,
581 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
582 bool useSubtensor);
583
584LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim0Uint8Test(
585 armnn::IWorkloadFactory& workloadFactory,
586 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
587
588LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim1Uint8Test(
589 armnn::IWorkloadFactory& workloadFactory,
590 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
591
592LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim2Uint8Test(
593 armnn::IWorkloadFactory& workloadFactory,
594 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
595
596LayerTestResult<uint8_t, 4> Concatenation4dDiffShapeDim3Uint8Test(
597 armnn::IWorkloadFactory& workloadFactory,
598 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
599 bool useSubtensor);
600
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000601LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
602 armnn::IWorkloadFactory& workloadFactory,
603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
604
Teresa Charlin18515e22019-04-24 10:17:46 +0100605LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
606 armnn::IWorkloadFactory& workloadFactory,
607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
608
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000609LayerTestResult<float, 4> CompareConvolution2dTest(
610 armnn::IWorkloadFactory& workloadFactory,
611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000612 armnn::IWorkloadFactory& refWorkloadFactory);
613
614template<typename T>
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000615LayerTestResult<T, 4> CompareDepthwiseConvolution2dTest(
616 armnn::IWorkloadFactory& workloadFactory,
617 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
618 armnn::IWorkloadFactory& refWorkloadFactory,
Matthew Bentham8800c002018-11-19 13:19:28 +0000619 const armnn::DataLayout layout);
telsoa014fcda012018-03-09 14:13:49 +0000620
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000621LayerTestResult<float, 4> CompareNormalizationTest(
622 armnn::IWorkloadFactory& workloadFactory,
623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
624 armnn::IWorkloadFactory& refWorkloadFactory,
625 armnn::NormalizationAlgorithmChannel normChannel,
626 armnn::NormalizationAlgorithmMethod normMethod);
telsoa014fcda012018-03-09 14:13:49 +0000627
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000628LayerTestResult<float, 2> CompareSoftmaxTest(
629 armnn::IWorkloadFactory& workloadFactory,
630 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
telsoa014fcda012018-03-09 14:13:49 +0000631 armnn::IWorkloadFactory& refWorkloadFactory,
632 float beta);
633
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000634LayerTestResult<float, 2> FullyConnectedFloat32Test(
635 armnn::IWorkloadFactory& workloadFactory,
636 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
637 bool biasEnabled,
638 bool transposeWeights);
telsoa014fcda012018-03-09 14:13:49 +0000639
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000640std::vector<LayerTestResult<float, 3>> SplitterTest(
641 armnn::IWorkloadFactory& workloadFactory,
642 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
David Beck5cd01f32018-09-12 16:00:08 +0100643
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000644LayerTestResult<float, 3> CopyViaSplitterTest(
645 armnn::IWorkloadFactory& workloadFactory,
646 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000647
Jim Flynn4ed6c832019-05-20 11:02:46 +0100648LayerTestResult<float, 3> ConcatTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000649 armnn::IWorkloadFactory& workloadFactory,
650 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000651
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000652LayerTestResult<float, 4> AdditionTest(
653 armnn::IWorkloadFactory& workloadFactory,
654 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000655
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000656LayerTestResult<float, 4> AdditionBroadcast1ElementTest(
657 armnn::IWorkloadFactory& workloadFactory,
658 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000659
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000660LayerTestResult<float, 4> AdditionBroadcastTest(
661 armnn::IWorkloadFactory& workloadFactory,
662 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000663
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000664LayerTestResult<float, 4> CompareAdditionTest(
665 armnn::IWorkloadFactory& workloadFactory,
666 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
667 armnn::IWorkloadFactory& refWorkloadFactory);
telsoa014fcda012018-03-09 14:13:49 +0000668
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000669LayerTestResult<float, 4> SubtractionTest(
670 armnn::IWorkloadFactory& workloadFactory,
671 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000672
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000673LayerTestResult<float, 4> SubtractionBroadcast1ElementTest(
674 armnn::IWorkloadFactory& workloadFactory,
675 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000676
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000677LayerTestResult<float, 4> SubtractionBroadcastTest(
678 armnn::IWorkloadFactory& workloadFactory,
679 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000680
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000681LayerTestResult<float, 4> CompareActivationTest(
682 armnn::IWorkloadFactory& workloadFactory,
683 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
684 armnn::IWorkloadFactory& refWorkloadFactory,
685 armnn::ActivationFunction f,
686 unsigned int batchSize);
telsoa014fcda012018-03-09 14:13:49 +0000687
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000688LayerTestResult<float, 4> DivisionTest(
689 armnn::IWorkloadFactory& workloadFactory,
690 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa014fcda012018-03-09 14:13:49 +0000691
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000692LayerTestResult<float, 4> DivisionByZeroTest(
693 armnn::IWorkloadFactory& workloadFactory,
694 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100695
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000696LayerTestResult<float, 4> DivisionBroadcast1ElementTest(
697 armnn::IWorkloadFactory& workloadFactory,
698 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mohamed Nour Abouelseoud7420e552018-10-12 12:26:24 +0100699
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000700LayerTestResult<float, 4> DivisionBroadcast1DVectorTest(
701 armnn::IWorkloadFactory& workloadFactory,
702 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100703
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000704LayerTestResult<float, 4> MultiplicationTest(
705 armnn::IWorkloadFactory& workloadFactory,
706 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
telsoa01c577f2c2018-08-31 09:22:23 +0100707
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000708LayerTestResult<float, 4> MultiplicationBroadcast1ElementTest(
709 armnn::IWorkloadFactory& workloadFactory,
710 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100711
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000712LayerTestResult<float, 4> MultiplicationBroadcast1DVectorTest(
713 armnn::IWorkloadFactory& workloadFactory,
714 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra011e4c31d2018-09-28 11:07:51 +0100715
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000716LayerTestResult<float, 4> CompareMultiplicationTest(
717 armnn::IWorkloadFactory& workloadFactory,
718 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
719 armnn::IWorkloadFactory& refWorkloadFactory);
Matteo Martincigh28dcab62018-10-19 16:40:03 +0100720
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000721LayerTestResult<float, 4> BatchNormTest(
722 armnn::IWorkloadFactory& workloadFactory,
723 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000724
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000725LayerTestResult<float, 4> BatchNormNhwcTest(
726 armnn::IWorkloadFactory& workloadFactory,
727 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000728
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000729LayerTestResult<float, 4> CompareBatchNormTest(
730 armnn::IWorkloadFactory& workloadFactory,
731 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
732 armnn::IWorkloadFactory& refWorkloadFactory);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000733
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000734LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
735 armnn::IWorkloadFactory& workloadFactory,
736 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong3ea76d52018-11-09 14:10:38 +0000737
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000738LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
739 armnn::IWorkloadFactory& workloadFactor,
740 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000741
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000742LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
743 armnn::IWorkloadFactory& workloadFactory,
744 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin4e1e1362018-11-12 11:36:34 +0000745
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000746LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
747 armnn::IWorkloadFactory& workloadFactory,
748 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Éanna Ó Catháin262553e2018-11-14 11:26:23 +0000749
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000750LayerTestResult<float, 4> CompareBoundedReLuTest(
751 armnn::IWorkloadFactory& workloadFactory,
752 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
753 armnn::IWorkloadFactory& refWorkloadFactory,
754 float upperBound,
755 float lowerBound);
756
Teresa Charlin18515e22019-04-24 10:17:46 +0100757
758LayerTestResult<int16_t, 4> ReLuInt16Test(
759 armnn::IWorkloadFactory& workloadFactory,
760 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
761
762LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
763 armnn::IWorkloadFactory& workloadFactory,
764 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
765
766LayerTestResult<int16_t, 4> SoftReLuInt16Test(
767 armnn::IWorkloadFactory& workloadFactory,
768 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
769
770LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
771 armnn::IWorkloadFactory& workloadFactory,
772 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
773
774LayerTestResult<int16_t, 4> AbsInt16Test(
775 armnn::IWorkloadFactory& workloadFactory,
776 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
777
778LayerTestResult<int16_t, 4> SqrtInt16Test(
779 armnn::IWorkloadFactory& workloadFactory,
780 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
781
782LayerTestResult<int16_t, 4> SquareInt16Test(
783 armnn::IWorkloadFactory& workloadFactory,
784 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
785
786LayerTestResult<int16_t, 4> TanhInt16Test(
787 armnn::IWorkloadFactory& workloadFactory,
788 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
789
790
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000791// Tests that the output should be identical to the input when the output dimensions match the input ones.
792LayerTestResult<float, 4> ResizeBilinearNopTest(
793 armnn::IWorkloadFactory& workloadFactory,
794 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000795 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000796
797// Tests the behaviour of the resize bilinear operation when rescaling a 2x2 image into a 1x1 image.
798LayerTestResult<float, 4> SimpleResizeBilinearTest(
799 armnn::IWorkloadFactory& workloadFactory,
800 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000801 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000802
803// Tests the resize bilinear for minification of a square input matrix (also: input dimensions are a
804// multiple of output dimensions).
805LayerTestResult<float, 4> ResizeBilinearSqMinTest(
806 armnn::IWorkloadFactory& workloadFactory,
807 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000808 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000809
810// Tests the resize bilinear for minification (output dimensions smaller than input dimensions).
811LayerTestResult<float, 4> ResizeBilinearMinTest(
812 armnn::IWorkloadFactory& workloadFactory,
813 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000814 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000815
816// Tests the resize bilinear for magnification (output dimensions bigger than input dimensions).
817LayerTestResult<float, 4> ResizeBilinearMagTest(
818 armnn::IWorkloadFactory& workloadFactory,
819 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000820 const armnn::DataLayout dataLayout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000821
nikraj0193f84a92019-06-05 10:48:46 +0100822template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
823LayerTestResult<T, 2> Rsqrt2dTestCommon(
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000824 armnn::IWorkloadFactory& workloadFactory,
825 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
826 const armnn::TensorInfo inputTensorInfo,
827 const armnn::TensorInfo outputTensorInfo,
nikraj0193f84a92019-06-05 10:48:46 +0100828 std::vector<T> inputValues,
829 std::vector<T> expectedOutputValues);
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000830
nikraj0193f84a92019-06-05 10:48:46 +0100831template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
832LayerTestResult<T, 2> Rsqrt2dTest(
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000833 armnn::IWorkloadFactory& workloadFactory,
834 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
835
nikraj0193f84a92019-06-05 10:48:46 +0100836template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
837LayerTestResult<T, 3> Rsqrt3dTest(
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000838 armnn::IWorkloadFactory& workloadFactory,
839 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
840
nikraj0193f84a92019-06-05 10:48:46 +0100841template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
842LayerTestResult<T, 2> RsqrtZeroTest(
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000843 armnn::IWorkloadFactory& workloadFactory,
844 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
845
nikraj0193f84a92019-06-05 10:48:46 +0100846template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
847LayerTestResult<T, 2> RsqrtNegativeTest(
Mohamed Nour Abouelseouda1d3c6a2018-12-27 12:39:16 +0000848 armnn::IWorkloadFactory& workloadFactory,
849 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
850
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000851LayerTestResult<float, 4> BatchNormTest(
852 armnn::IWorkloadFactory& workloadFactory,
853 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
854
855LayerTestResult<float, 4> BatchNormNhwcTest(
856 armnn::IWorkloadFactory& workloadFactory,
857 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
858
859LayerTestResult<float, 2> FakeQuantizationTest(
860 armnn::IWorkloadFactory& workloadFactory,
861 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
862
863LayerTestResult<float, 4> L2Normalization1dTest(
864 armnn::IWorkloadFactory& workloadFactory,
865 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000866 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000867
868LayerTestResult<float, 4> L2Normalization2dTest(
869 armnn::IWorkloadFactory& workloadFactory,
870 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000871 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000872
873LayerTestResult<float, 4> L2Normalization3dTest(
874 armnn::IWorkloadFactory& workloadFactory,
875 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000876 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000877
878LayerTestResult<float, 4> L2Normalization4dTest(
879 armnn::IWorkloadFactory& workloadFactory,
880 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
Matthew Bentham8800c002018-11-19 13:19:28 +0000881 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000882
883LayerTestResult<float, 4> ConstantTest(
884 armnn::IWorkloadFactory& workloadFactory,
885 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
886
Nina Drozd58ef2c62019-05-16 12:09:18 +0100887LayerTestResult<uint8_t, 4> ConstantUint8SimpleQuantizationScaleNoOffsetTest(
888 armnn::IWorkloadFactory& workloadFactory,
889 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
890
891LayerTestResult<int16_t, 4> ConstantInt16SimpleQuantizationScaleNoOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000892 armnn::IWorkloadFactory& workloadFactory,
893 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
894
895LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
896 armnn::IWorkloadFactory& workloadFactory,
897 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
898 float upperBound);
899
900LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
901 armnn::IWorkloadFactory& workloadFactory,
902 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
903 float upperBound,
904 float lowerBound);
905
Francis Murtagh46c09d02019-05-28 08:15:28 +0100906template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
907LayerTestResult<T, 2> FullyConnectedTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000908 armnn::IWorkloadFactory& workloadFactory,
909 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
910 bool biasEnabled);
911
912std::vector<LayerTestResult<uint8_t, 3>> SplitterUint8Test(
913 armnn::IWorkloadFactory& workloadFactory,
914 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
915
Ruomei Yan25339c32019-05-28 16:48:20 +0100916std::vector<LayerTestResult<int16_t, 3>> SplitterInt16Test(
917 armnn::IWorkloadFactory& workloadFactory,
918 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
919
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000920LayerTestResult<uint8_t, 3> CopyViaSplitterUint8Test(
921 armnn::IWorkloadFactory& workloadFactory,
922 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
923
Ruomei Yan25339c32019-05-28 16:48:20 +0100924LayerTestResult<int16_t, 3> CopyViaSplitterInt16Test(
925 armnn::IWorkloadFactory& workloadFactory,
926 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
927
Jim Flynn4ed6c832019-05-20 11:02:46 +0100928LayerTestResult<uint8_t, 3> ConcatUint8Test(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000929 armnn::IWorkloadFactory& workloadFactory,
930 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
931
Jim Flynn4ed6c832019-05-20 11:02:46 +0100932LayerTestResult<uint16_t, 3> ConcatUint16Test(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100933 armnn::IWorkloadFactory& workloadFactory,
934 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
935
Jim Flynn4ed6c832019-05-20 11:02:46 +0100936LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest(
Jim Flynncbb66aa2019-05-15 13:03:54 +0100937 armnn::IWorkloadFactory& workloadFactory,
938 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Ferran Balaguerb2845652019-02-27 09:42:06 +0000939
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000940LayerTestResult<uint8_t, 4> AdditionUint8Test(
941 armnn::IWorkloadFactory& workloadFactory,
942 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
943
944LayerTestResult<uint8_t, 4> AdditionBroadcast1ElementUint8Test(
945 armnn::IWorkloadFactory& workloadFactory,
946 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
947
948LayerTestResult<uint8_t, 4> AdditionBroadcastUint8Test(
949 armnn::IWorkloadFactory& workloadFactory,
950 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
951
Sadik Armagan2999a022019-04-09 14:20:12 +0100952LayerTestResult<int16_t, 4> AdditionInt16Test(
953 armnn::IWorkloadFactory& workloadFactory,
954 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
955
956LayerTestResult<int16_t, 4> AdditionBroadcastInt16Test(
957 armnn::IWorkloadFactory& workloadFactory,
958 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
959
960LayerTestResult<int16_t, 4> AdditionBroadcast1ElementInt16Test(
961 armnn::IWorkloadFactory& workloadFactory,
962 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
963
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000964LayerTestResult<uint8_t, 4> SubtractionUint8Test(
965 armnn::IWorkloadFactory& workloadFactory,
966 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
967
968LayerTestResult<uint8_t, 4> SubtractionBroadcast1ElementUint8Test(
969 armnn::IWorkloadFactory& workloadFactory,
970 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
971
972LayerTestResult<uint8_t, 4> SubtractionBroadcastUint8Test(
973 armnn::IWorkloadFactory& workloadFactory,
974 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
975
Sadik Armagan2999a022019-04-09 14:20:12 +0100976LayerTestResult<int16_t, 4> SubtractionInt16Test(
977 armnn::IWorkloadFactory& workloadFactory,
978 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
979
980LayerTestResult<int16_t, 4> SubtractionBroadcast1ElementInt16Test(
981 armnn::IWorkloadFactory& workloadFactory,
982 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
983
984LayerTestResult<int16_t, 4> SubtractionBroadcastInt16Test(
985 armnn::IWorkloadFactory& workloadFactory,
986 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
987
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +0000988LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
989 armnn::IWorkloadFactory& workloadFactory,
990 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
991 armnn::IWorkloadFactory& refWorkloadFactory,
992 armnn::ActivationFunction f);
993
Teresa Charlin18515e22019-04-24 10:17:46 +0100994LayerTestResult<int16_t, 4> CompareActivationInt16Test(
995 armnn::IWorkloadFactory& workloadFactory,
996 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
997 armnn::IWorkloadFactory& refWorkloadFactory,
998 armnn::ActivationFunction f);
999
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001000LayerTestResult<uint8_t, 2> CompareSoftmaxUint8Test(
1001 armnn::IWorkloadFactory& workloadFactory,
1002 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1003 armnn::IWorkloadFactory& refWorkloadFactory,
1004 float beta);
1005
1006LayerTestResult<uint8_t, 4> MultiplicationUint8Test(
1007 armnn::IWorkloadFactory& workloadFactory,
1008 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1009
1010LayerTestResult<uint8_t, 4> MultiplicationBroadcast1ElementUint8Test(
1011 armnn::IWorkloadFactory& workloadFactory,
1012 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1013
1014LayerTestResult<uint8_t, 4> MultiplicationBroadcast1DVectorUint8Test(
1015 armnn::IWorkloadFactory& workloadFactory,
1016 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1017
Sadik Armagan2999a022019-04-09 14:20:12 +01001018LayerTestResult<int16_t, 4> MultiplicationInt16Test(
1019 armnn::IWorkloadFactory& workloadFactory,
1020 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1021
1022LayerTestResult<int16_t, 4> MultiplicationBroadcast1ElementInt16Test(
1023 armnn::IWorkloadFactory& workloadFactory,
1024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1025
1026LayerTestResult<int16_t, 4> MultiplicationBroadcast1DVectorInt16Test(
1027 armnn::IWorkloadFactory& workloadFactory,
1028 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1029
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001030LayerTestResult<uint8_t, 4> DivisionUint8Test(
1031 armnn::IWorkloadFactory& workloadFactory,
1032 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1033
1034LayerTestResult<uint8_t, 4> DivisionBroadcast1ElementUint8Test(
1035 armnn::IWorkloadFactory& workloadFactory,
1036 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1037
1038LayerTestResult<uint8_t, 4> DivisionBroadcast1DVectorUint8Test(
1039 armnn::IWorkloadFactory& workloadFactory,
1040 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1041
Sadik Armagan2999a022019-04-09 14:20:12 +01001042LayerTestResult<int16_t, 4> DivisionInt16Test(
1043 armnn::IWorkloadFactory& workloadFactory,
1044 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1045
1046LayerTestResult<int16_t, 4> DivisionBroadcast1ElementInt16Test(
1047 armnn::IWorkloadFactory& workloadFactory,
1048 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1049
1050LayerTestResult<int16_t, 4> DivisionBroadcast1DVectorInt16Test(
1051 armnn::IWorkloadFactory& workloadFactory,
1052 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1053
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001054LayerTestResult<uint8_t, 4> SimpleConvolution2d3x5Uint8Test(
1055 armnn::IWorkloadFactory& workloadFactory,
1056 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1057 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +00001058 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001059
1060LayerTestResult<uint8_t, 4> SimpleConvolution2d3x3Uint8Test(
1061 armnn::IWorkloadFactory& workloadFactory,
1062 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1063 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +00001064 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001065
Mike Kelly2f80f6e2019-05-16 12:41:34 +01001066LayerTestResult<int16_t, 4> SimpleConvolution2d3x5QSymm16Test(
1067 armnn::IWorkloadFactory& workloadFactory,
1068 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1069 bool biasEnabled,
1070 const armnn::DataLayout layout);
1071
1072LayerTestResult<int16_t, 4> SimpleConvolution2d3x3QSymm16Test(
1073 armnn::IWorkloadFactory& workloadFactory,
1074 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1075 bool biasEnabled,
1076 const armnn::DataLayout layout);
1077
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001078LayerTestResult<uint8_t, 4> DepthwiseConvolution2dUint8Test(
1079 armnn::IWorkloadFactory& workloadFactory,
1080 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1081 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +00001082 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001083
1084LayerTestResult<uint8_t, 4> DepthwiseConvolution2dDepthMul1Uint8Test(
1085 armnn::IWorkloadFactory& workloadFactory,
1086 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1087 bool biasEnabled,
Matthew Bentham8800c002018-11-19 13:19:28 +00001088 const armnn::DataLayout layout);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001089
Ruomei Yan88d44b82019-05-23 14:29:06 +01001090LayerTestResult<int16_t, 4> DepthwiseConvolution2dInt16Test(
1091 armnn::IWorkloadFactory& workloadFactory,
1092 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1093 bool biasEnabled,
1094 const armnn::DataLayout layout);
1095
1096LayerTestResult<int16_t, 4> DepthwiseConvolution2dDepthMul1Int16Test(
1097 armnn::IWorkloadFactory& workloadFactory,
1098 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1099 bool biasEnabled,
1100 const armnn::DataLayout layout);
1101
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001102LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
1103 armnn::IWorkloadFactory& workloadFactory,
1104 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1105
Teresa Charlin18515e22019-04-24 10:17:46 +01001106LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
1107 armnn::IWorkloadFactory& workloadFactory,
1108 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1109
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001110LayerTestResult<uint8_t, 4> ResizeBilinearNopUint8Test(
1111 armnn::IWorkloadFactory& workloadFactory,
1112 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1113
1114LayerTestResult<uint8_t, 4> SimpleResizeBilinearUint8Test(
1115 armnn::IWorkloadFactory& workloadFactory,
1116 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1117
1118LayerTestResult<uint8_t, 4> ResizeBilinearSqMinUint8Test(
1119 armnn::IWorkloadFactory& workloadFactory,
1120 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1121
1122LayerTestResult<uint8_t, 4> ResizeBilinearMinUint8Test(
1123 armnn::IWorkloadFactory& workloadFactory,
1124 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1125
1126LayerTestResult<uint8_t, 4> ResizeBilinearMagUint8Test(
1127 armnn::IWorkloadFactory& workloadFactory,
1128 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1129
1130LayerTestResult<uint8_t, 4> BatchNormUint8Test(
1131 armnn::IWorkloadFactory& workloadFactory,
1132 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1133
1134LayerTestResult<uint8_t, 4> BatchNormUint8NhwcTest(
1135 armnn::IWorkloadFactory& workloadFactory,
1136 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1137
Matteo Martincighf5507132019-06-04 10:59:47 +01001138LayerTestResult<int16_t, 4> BatchNormInt16Test(
1139 armnn::IWorkloadFactory& workloadFactory,
1140 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1141
1142LayerTestResult<int16_t, 4> BatchNormInt16NhwcTest(
1143 armnn::IWorkloadFactory& workloadFactory,
1144 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1145
Nina Drozd58ef2c62019-05-16 12:09:18 +01001146LayerTestResult<uint8_t, 4> ConstantUint8CustomQuantizationScaleAndOffsetTest(
1147 armnn::IWorkloadFactory& workloadFactory,
1148 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1149
1150LayerTestResult<int16_t, 4> ConstantInt16CustomQuantizationScaleAndOffsetTest(
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001151 armnn::IWorkloadFactory& workloadFactory,
1152 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1153
1154LayerTestResult<uint8_t, 1> Concatenation1dUint8Test(
1155 armnn::IWorkloadFactory& workloadFactory,
1156 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1157
1158LayerTestResult<uint8_t, 2> Concatenation2dDim0Uint8Test(
1159 armnn::IWorkloadFactory& workloadFactory,
1160 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1161
1162LayerTestResult<uint8_t, 2> Concatenation2dDim1Uint8Test(
1163 armnn::IWorkloadFactory& workloadFactory,
1164 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1165
1166LayerTestResult<uint8_t, 2> Concatenation2dDim0DiffInputDimsUint8Test(
1167 armnn::IWorkloadFactory& workloadFactory,
1168 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1169
1170LayerTestResult<uint8_t, 2> Concatenation2dDim1DiffInputDimsUint8Test(
1171 armnn::IWorkloadFactory& workloadFactory,
1172 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1173
1174LayerTestResult<uint8_t, 3> Concatenation3dDim0Uint8Test(
1175 armnn::IWorkloadFactory& workloadFactory,
1176 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1177
1178LayerTestResult<uint8_t, 3> Concatenation3dDim1Uint8Test(
1179 armnn::IWorkloadFactory& workloadFactory,
1180 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1181
1182LayerTestResult<uint8_t, 3> Concatenation3dDim2Uint8Test(
1183 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001184 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1185 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001186
1187LayerTestResult<uint8_t, 3> Concatenation3dDim0DiffInputDimsUint8Test(
1188 armnn::IWorkloadFactory& workloadFactory,
1189 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1190
1191LayerTestResult<uint8_t, 3> Concatenation3dDim1DiffInputDimsUint8Test(
1192 armnn::IWorkloadFactory& workloadFactory,
1193 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1194
1195LayerTestResult<uint8_t, 3> Concatenation3dDim2DiffInputDimsUint8Test(
1196 armnn::IWorkloadFactory& workloadFactory,
narpra015cdda352018-11-19 15:30:27 +00001197 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1198 bool useSubtensor);
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001199
kevmay012b4d88e2019-01-24 14:05:09 +00001200LayerTestResult<uint8_t, 4> EqualSimpleTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001201 armnn::IWorkloadFactory& workloadFactory,
1202 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1203
kevmay012b4d88e2019-01-24 14:05:09 +00001204LayerTestResult<uint8_t, 4> EqualBroadcast1ElementTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001205 armnn::IWorkloadFactory& workloadFactory,
1206 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1207
kevmay012b4d88e2019-01-24 14:05:09 +00001208LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorTest(
FrancisMurtagh30cdfca2018-12-18 12:57:35 +00001209 armnn::IWorkloadFactory& workloadFactory,
1210 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1211
1212LayerTestResult<uint8_t, 4> EqualUint8Test(
1213 armnn::IWorkloadFactory& workloadFactory,
1214 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1215
1216LayerTestResult<uint8_t, 4> EqualBroadcast1ElementUint8Test(
1217 armnn::IWorkloadFactory& workloadFactory,
1218 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1219
1220LayerTestResult<uint8_t, 4> EqualBroadcast1DVectorUint8Test(
1221 armnn::IWorkloadFactory& workloadFactory,
1222 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1223
kevmay012b4d88e2019-01-24 14:05:09 +00001224LayerTestResult<uint8_t, 4> GreaterSimpleTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001225 armnn::IWorkloadFactory& workloadFactory,
1226 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1227
kevmay012b4d88e2019-01-24 14:05:09 +00001228LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001229 armnn::IWorkloadFactory& workloadFactory,
1230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1231
kevmay012b4d88e2019-01-24 14:05:09 +00001232LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorTest(
FrancisMurtagh878f0232018-12-19 10:56:15 +00001233 armnn::IWorkloadFactory& workloadFactory,
1234 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1235
1236LayerTestResult<uint8_t, 4> GreaterUint8Test(
1237 armnn::IWorkloadFactory& workloadFactory,
1238 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1239
1240LayerTestResult<uint8_t, 4> GreaterBroadcast1ElementUint8Test(
1241 armnn::IWorkloadFactory& workloadFactory,
1242 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1243
1244LayerTestResult<uint8_t, 4> GreaterBroadcast1DVectorUint8Test(
1245 armnn::IWorkloadFactory& workloadFactory,
1246 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1247
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001248LayerTestResult<float, 2> FullyConnectedLargeTest(
1249 armnn::IWorkloadFactory& workloadFactory,
1250 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1251 bool transposeWeights);
1252
1253LayerTestResult<float, 4> SimplePermuteFloat32Test(
1254 armnn::IWorkloadFactory& workloadFactory,
1255 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1256
1257LayerTestResult<uint8_t, 4> SimplePermuteUint8Test(
1258 armnn::IWorkloadFactory& workloadFactory,
1259 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1260
1261LayerTestResult<uint8_t, 2> PadUint82dTest(
1262 armnn::IWorkloadFactory& workloadFactory,
1263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1264
1265LayerTestResult<uint8_t, 3> PadUint83dTest(
1266 armnn::IWorkloadFactory& workloadFactory,
1267 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1268
1269LayerTestResult<uint8_t, 4> PadUint84dTest(
1270 armnn::IWorkloadFactory& workloadFactory,
1271 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1272
1273LayerTestResult<float, 2> PadFloat322dTest(
1274 armnn::IWorkloadFactory& workloadFactory,
1275 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1276
1277LayerTestResult<float, 3> PadFloat323dTest(
1278 armnn::IWorkloadFactory& workloadFactory,
1279 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1280
1281LayerTestResult<float, 4> PadFloat324dTest(
1282 armnn::IWorkloadFactory& workloadFactory,
1283 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1284
1285LayerTestResult<float, 4> PermuteFloat32ValueSet1Test(
1286 armnn::IWorkloadFactory& workloadFactory,
1287 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1288
1289LayerTestResult<float, 4> PermuteFloat32ValueSet2Test(
1290 armnn::IWorkloadFactory& workloadFactory,
1291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1292
1293LayerTestResult<float, 4> PermuteFloat32ValueSet3Test(
1294 armnn::IWorkloadFactory& workloadFactory,
1295 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1296
1297LayerTestResult<float, 2> LstmLayerFloat32WithCifgWithPeepholeNoProjectionTest(
1298 armnn::IWorkloadFactory& workloadFactory,
1299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1300
1301LayerTestResult<float, 2> LstmLayerFloat32NoCifgNoPeepholeNoProjectionTest(
1302 armnn::IWorkloadFactory& workloadFactory,
1303 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1304
1305LayerTestResult<float, 2> LstmLayerFloat32NoCifgWithPeepholeWithProjectionTest(
1306 armnn::IWorkloadFactory& workloadFactory,
1307 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1308
Conor Kennedyb9971c92019-05-07 07:14:23 +01001309LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionTest(
1310 armnn::IWorkloadFactory& workloadFactory,
1311 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1312
1313LayerTestResult<int16_t, 2> LstmLayerInt16WithCifgWithPeepholeNoProjectionTest(
1314 armnn::IWorkloadFactory& workloadFactory,
1315 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1316
1317LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgWithPeepholeWithProjectionTest(
1318 armnn::IWorkloadFactory& workloadFactory,
1319 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1320
1321LayerTestResult<int16_t, 2> LstmLayerInt16NoCifgNoPeepholeNoProjectionInt16ConstantTest(
1322 armnn::IWorkloadFactory& workloadFactory,
1323 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1324
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001325LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test(
1326 armnn::IWorkloadFactory& workloadFactory,
1327 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1328
1329LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test(
1330 armnn::IWorkloadFactory& workloadFactory,
1331 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1332
Éanna Ó Catháinde705582018-12-03 13:04:22 +00001333LayerTestResult<float, 4> MaximumSimpleTest(
1334 armnn::IWorkloadFactory& workloadFactory,
1335 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1336
1337LayerTestResult<float, 4> MaximumBroadcast1ElementTest(
1338 armnn::IWorkloadFactory& workloadFactory,
1339 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1340
1341LayerTestResult<float, 4> MaximumBroadcast1DVectorTest(
1342 armnn::IWorkloadFactory& workloadFactory,
1343 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1344
1345LayerTestResult<uint8_t , 4> MaximumUint8Test(
1346 armnn::IWorkloadFactory& workloadFactory,
1347 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1348
1349LayerTestResult<uint8_t, 4> MaximumBroadcast1ElementUint8Test(
1350 armnn::IWorkloadFactory& workloadFactory,
1351 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1352
1353LayerTestResult<uint8_t, 4> MaximumBroadcast1DVectorUint8Test(
1354 armnn::IWorkloadFactory& workloadFactory,
1355 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1356
Sadik Armagan2999a022019-04-09 14:20:12 +01001357LayerTestResult<int16_t , 4> MaximumInt16Test(
1358 armnn::IWorkloadFactory& workloadFactory,
1359 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1360
1361LayerTestResult<int16_t, 4> MaximumBroadcast1ElementInt16Test(
1362 armnn::IWorkloadFactory& workloadFactory,
1363 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1364
1365LayerTestResult<int16_t, 4> MaximumBroadcast1DVectorInt16Test(
1366 armnn::IWorkloadFactory& workloadFactory,
1367 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1368
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001369LayerTestResult<uint8_t, 1> MeanUint8SimpleTest(
1370 armnn::IWorkloadFactory& workloadFactory,
1371 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1372
1373LayerTestResult<uint8_t, 3> MeanUint8SimpleAxisTest(
1374 armnn::IWorkloadFactory& workloadFactory,
1375 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1376
1377LayerTestResult<uint8_t, 4> MeanUint8KeepDimsTest(
1378 armnn::IWorkloadFactory& workloadFactory,
1379 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1380
1381LayerTestResult<uint8_t, 4> MeanUint8MultipleDimsTest(
1382 armnn::IWorkloadFactory& workloadFactory,
1383 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1384
1385LayerTestResult<uint8_t, 1> MeanVtsUint8Test(
1386 armnn::IWorkloadFactory& workloadFactory,
1387 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1388
1389LayerTestResult<float, 1> MeanFloatSimpleTest(
1390 armnn::IWorkloadFactory& workloadFactory,
1391 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1392
1393LayerTestResult<float, 3> MeanFloatSimpleAxisTest(
1394 armnn::IWorkloadFactory& workloadFactory,
1395 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1396
1397LayerTestResult<float, 4> MeanFloatKeepDimsTest(
1398 armnn::IWorkloadFactory& workloadFactory,
1399 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1400
1401LayerTestResult<float, 4> MeanFloatMultipleDimsTest(
1402 armnn::IWorkloadFactory& workloadFactory,
1403 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1404
1405LayerTestResult<float, 1> MeanVtsFloat1Test(
1406 armnn::IWorkloadFactory& workloadFactory,
1407 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1408
1409LayerTestResult<float, 3> MeanVtsFloat2Test(
1410 armnn::IWorkloadFactory& workloadFactory,
1411 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1412
1413LayerTestResult<float, 3> MeanVtsFloat3Test(
1414 armnn::IWorkloadFactory& workloadFactory,
1415 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1416
Éanna Ó Catháin20e58802018-12-04 10:29:06 +00001417LayerTestResult<float, 4> MinimumBroadcast1ElementTest1(
1418 armnn::IWorkloadFactory& workloadFactory,
1419 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1420
1421LayerTestResult<float, 4> MinimumBroadcast1ElementTest2(
1422 armnn::IWorkloadFactory& workloadFactory,
1423 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1424
1425LayerTestResult<uint8_t, 4> MinimumBroadcast1DVectorUint8Test(
1426 armnn::IWorkloadFactory & workloadFactory,
1427 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1428
Sadik Armagan2999a022019-04-09 14:20:12 +01001429LayerTestResult<int16_t , 4> MinimumInt16Test(
1430 armnn::IWorkloadFactory& workloadFactory,
1431 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1432
1433LayerTestResult<int16_t, 4> MinimumBroadcast1ElementInt16Test(
1434 armnn::IWorkloadFactory& workloadFactory,
1435 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1436
1437LayerTestResult<int16_t, 4> MinimumBroadcast1DVectorInt16Test(
1438 armnn::IWorkloadFactory& workloadFactory,
1439 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1440
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001441LayerTestResult<float, 4> AdditionAfterMaxPoolTest(
1442 armnn::IWorkloadFactory& workloadFactory,
1443 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1444
1445LayerTestResult<float, 4> SpaceToBatchNdSimpleFloat32Test(
1446 armnn::IWorkloadFactory& workloadFactory,
1447 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1448
1449LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsFloat32Test(
1450 armnn::IWorkloadFactory& workloadFactory,
1451 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1452
1453LayerTestResult<float, 4> SpaceToBatchNdMultiBlockFloat32Test(
1454 armnn::IWorkloadFactory& workloadFactory,
1455 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1456
1457LayerTestResult<float, 4> SpaceToBatchNdPaddingFloat32Test(
1458 armnn::IWorkloadFactory& workloadFactory,
1459 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1460
1461LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleUint8Test(
1462 armnn::IWorkloadFactory& workloadFactory,
1463 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1464
1465LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsUint8Test(
1466 armnn::IWorkloadFactory& workloadFactory,
1467 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1468
1469LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockUint8Test(
1470 armnn::IWorkloadFactory& workloadFactory,
1471 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1472
1473LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingUint8Test(
1474 armnn::IWorkloadFactory& workloadFactory,
1475 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1476
1477LayerTestResult<float, 4> SpaceToBatchNdSimpleNHWCFloat32Test(
1478 armnn::IWorkloadFactory& workloadFactory,
1479 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1480
1481LayerTestResult<float, 4> SpaceToBatchNdMultiChannelsNHWCFloat32Test(
1482 armnn::IWorkloadFactory& workloadFactory,
1483 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1484
1485LayerTestResult<float, 4> SpaceToBatchNdMultiBlockNHWCFloat32Test(
1486 armnn::IWorkloadFactory& workloadFactory,
1487 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1488
1489LayerTestResult<float, 4> SpaceToBatchNdPaddingNHWCFloat32Test(
1490 armnn::IWorkloadFactory& workloadFactory,
1491 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1492
1493LayerTestResult<uint8_t, 4> SpaceToBatchNdSimpleNHWCUint8Test(
1494 armnn::IWorkloadFactory& workloadFactory,
1495 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1496
1497LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiChannelsNHWCUint8Test(
1498 armnn::IWorkloadFactory& workloadFactory,
1499 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1500
1501LayerTestResult<uint8_t, 4> SpaceToBatchNdMultiBlockNHWCUint8Test(
1502 armnn::IWorkloadFactory& workloadFactory,
1503 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1504
1505LayerTestResult<uint8_t, 4> SpaceToBatchNdPaddingNHWCUint8Test(
1506 armnn::IWorkloadFactory& workloadFactory,
1507 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1508
nikraj01120522a2019-05-31 11:33:07 +01001509LayerTestResult<int16_t, 4> SpaceToBatchNdSimpleUint16Test(
1510 armnn::IWorkloadFactory& workloadFactory,
1511 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1512
1513LayerTestResult<int16_t, 4> SpaceToBatchNdMultiChannelsUint16Test(
1514 armnn::IWorkloadFactory& workloadFactory,
1515 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1516
1517LayerTestResult<int16_t, 4> SpaceToBatchNdMultiBlockUint16Test(
1518 armnn::IWorkloadFactory& workloadFactory,
1519 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1520
1521LayerTestResult<int16_t, 4> SpaceToBatchNdPaddingUint16Test(
1522 armnn::IWorkloadFactory& workloadFactory,
1523 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1524
1525LayerTestResult<int16_t, 4> SpaceToBatchNdSimpleNHWCUint16Test(
1526 armnn::IWorkloadFactory& workloadFactory,
1527 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1528
1529LayerTestResult<int16_t, 4> SpaceToBatchNdMultiChannelsNHWCUint16Test(
1530 armnn::IWorkloadFactory& workloadFactory,
1531 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1532
1533LayerTestResult<int16_t, 4> SpaceToBatchNdMultiBlockNHWCUint16Test(
1534 armnn::IWorkloadFactory& workloadFactory,
1535 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1536
1537LayerTestResult<int16_t, 4> SpaceToBatchNdPaddingNHWCUint16Test(
1538 armnn::IWorkloadFactory& workloadFactory,
1539 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1540
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001541LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test1(
1542 armnn::IWorkloadFactory& workloadFactory,
1543 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1544
1545LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test2(
1546 armnn::IWorkloadFactory& workloadFactory,
1547 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1548
1549LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test3(
1550 armnn::IWorkloadFactory& workloadFactory,
1551 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1552
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001553LayerTestResult<float, 4> BatchToSpaceNdNhwcFloat32Test4(
1554 armnn::IWorkloadFactory& workloadFactory,
1555 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1556
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001557LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test1(
1558 armnn::IWorkloadFactory &workloadFactory,
1559 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1560
Mike Kelly831faed2018-11-28 11:52:08 +00001561LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001562 armnn::IWorkloadFactory &workloadFactory,
1563 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001564
1565LayerTestResult<float, 4> BatchToSpaceNdNchwFloat32Test3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001566 armnn::IWorkloadFactory &workloadFactory,
1567 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001568
Aron Virginas-Tar5caf9072018-11-14 18:35:18 +00001569LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest1(
1570 armnn::IWorkloadFactory &workloadFactory,
1571 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001572
Mike Kelly831faed2018-11-28 11:52:08 +00001573LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001574 armnn::IWorkloadFactory &workloadFactory,
1575 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001576
1577LayerTestResult<uint8_t, 4> BatchToSpaceNdNhwcUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001578 armnn::IWorkloadFactory &workloadFactory,
1579 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001580
1581LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest1(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001582 armnn::IWorkloadFactory &workloadFactory,
1583 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001584
1585LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest2(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001586 armnn::IWorkloadFactory &workloadFactory,
1587 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001588
1589LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest3(
Nattapat Chaimanowong3ee14222019-02-27 10:28:09 +00001590 armnn::IWorkloadFactory &workloadFactory,
1591 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1592
1593LayerTestResult<uint8_t, 4> BatchToSpaceNdNchwUintTest4(
1594 armnn::IWorkloadFactory &workloadFactory,
1595 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Mike Kelly831faed2018-11-28 11:52:08 +00001596
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001597LayerTestResult<float, 4> StridedSlice4DFloat32Test(
1598 armnn::IWorkloadFactory& workloadFactory,
1599 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001600
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +00001601LayerTestResult<float, 4> StridedSlice4DReverseFloat32Test(
1602 armnn::IWorkloadFactory& workloadFactory,
1603 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1604
1605LayerTestResult<float, 4> StridedSliceSimpleStrideFloat32Test(
1606 armnn::IWorkloadFactory& workloadFactory,
1607 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1608
1609LayerTestResult<float, 4> StridedSliceSimpleRangeMaskFloat32Test(
1610 armnn::IWorkloadFactory& workloadFactory,
1611 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1612
1613LayerTestResult<float, 2> StridedSliceShrinkAxisMaskFloat32Test(
1614 armnn::IWorkloadFactory& workloadFactory,
1615 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1616
1617LayerTestResult<float, 3> StridedSlice3DFloat32Test(
1618 armnn::IWorkloadFactory& workloadFactory,
1619 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1620
1621LayerTestResult<float, 3> StridedSlice3DReverseFloat32Test(
1622 armnn::IWorkloadFactory& workloadFactory,
1623 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1624
1625LayerTestResult<float, 2> StridedSlice2DFloat32Test(
1626 armnn::IWorkloadFactory& workloadFactory,
1627 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1628
1629LayerTestResult<float, 2> StridedSlice2DReverseFloat32Test(
1630 armnn::IWorkloadFactory& workloadFactory,
1631 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1632
1633LayerTestResult<uint8_t, 4> StridedSlice4DUint8Test(
1634 armnn::IWorkloadFactory& workloadFactory,
1635 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1636
1637LayerTestResult<uint8_t, 4> StridedSlice4DReverseUint8Test(
1638 armnn::IWorkloadFactory& workloadFactory,
1639 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1640
1641LayerTestResult<uint8_t, 4> StridedSliceSimpleStrideUint8Test(
1642 armnn::IWorkloadFactory& workloadFactory,
1643 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1644
1645LayerTestResult<uint8_t, 4> StridedSliceSimpleRangeMaskUint8Test(
1646 armnn::IWorkloadFactory& workloadFactory,
1647 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1648
1649LayerTestResult<uint8_t, 2> StridedSliceShrinkAxisMaskUint8Test(
1650 armnn::IWorkloadFactory& workloadFactory,
1651 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1652
1653LayerTestResult<uint8_t, 3> StridedSlice3DUint8Test(
1654 armnn::IWorkloadFactory& workloadFactory,
1655 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1656
1657LayerTestResult<uint8_t, 3> StridedSlice3DReverseUint8Test(
1658 armnn::IWorkloadFactory& workloadFactory,
1659 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1660
1661LayerTestResult<uint8_t, 2> StridedSlice2DUint8Test(
1662 armnn::IWorkloadFactory& workloadFactory,
1663 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1664
1665LayerTestResult<uint8_t, 2> StridedSlice2DReverseUint8Test(
1666 armnn::IWorkloadFactory& workloadFactory,
1667 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001668
Matteo Martincigh42666a12019-05-29 08:53:41 +01001669LayerTestResult<int16_t, 4> StridedSlice4DInt16Test(
1670 armnn::IWorkloadFactory& workloadFactory,
1671 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1672
1673LayerTestResult<int16_t, 4> StridedSlice4DReverseInt16Test(
1674 armnn::IWorkloadFactory& workloadFactory,
1675 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1676
1677LayerTestResult<int16_t, 4> StridedSliceSimpleStrideInt16Test(
1678 armnn::IWorkloadFactory& workloadFactory,
1679 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1680
1681LayerTestResult<int16_t, 4> StridedSliceSimpleRangeMaskInt16Test(
1682 armnn::IWorkloadFactory& workloadFactory,
1683 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1684
1685LayerTestResult<int16_t, 2> StridedSliceShrinkAxisMaskInt16Test(
1686 armnn::IWorkloadFactory& workloadFactory,
1687 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1688
1689LayerTestResult<int16_t, 3> StridedSlice3DInt16Test(
1690 armnn::IWorkloadFactory& workloadFactory,
1691 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1692
1693LayerTestResult<int16_t, 3> StridedSlice3DReverseInt16Test(
1694 armnn::IWorkloadFactory& workloadFactory,
1695 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1696
1697LayerTestResult<int16_t, 2> StridedSlice2DInt16Test(
1698 armnn::IWorkloadFactory& workloadFactory,
1699 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1700
1701LayerTestResult<int16_t, 2> StridedSlice2DReverseInt16Test(
1702 armnn::IWorkloadFactory& workloadFactory,
1703 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1704
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +00001705LayerTestResult<float, 4> Debug4DFloat32Test(
1706 armnn::IWorkloadFactory& workloadFactory,
1707 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1708
1709LayerTestResult<float, 3> Debug3DFloat32Test(
1710 armnn::IWorkloadFactory& workloadFactory,
1711 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1712
1713LayerTestResult<float, 2> Debug2DFloat32Test(
1714 armnn::IWorkloadFactory& workloadFactory,
1715 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1716
1717LayerTestResult<float, 1> Debug1DFloat32Test(
1718 armnn::IWorkloadFactory& workloadFactory,
1719 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1720
1721LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1722 armnn::IWorkloadFactory& workloadFactory,
1723 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1724
1725LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1726 armnn::IWorkloadFactory& workloadFactory,
1727 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1728
1729LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1730 armnn::IWorkloadFactory& workloadFactory,
1731 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1732
1733LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1734 armnn::IWorkloadFactory& workloadFactory,
1735 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Matteo Martincigh49124022019-01-11 13:25:59 +00001736
1737LayerTestResult<uint8_t, 4> PreCompiledConvolution2dTest(
1738 armnn::IWorkloadFactory& workloadFactory,
1739 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1740
1741LayerTestResult<uint8_t, 4> PreCompiledConvolution2dStride2x2Test(
1742 armnn::IWorkloadFactory& workloadFactory,
1743 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1744
1745LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dTest(
1746 armnn::IWorkloadFactory & workloadFactory,
1747 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1748
1749LayerTestResult<uint8_t, 4> PreCompiledDepthwiseConvolution2dStride2x2Test(
1750 armnn::IWorkloadFactory & workloadFactory,
1751 const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager);
1752
1753LayerTestResult<uint8_t, 4> PreCompiledMaxPooling2dTest(
1754 armnn::IWorkloadFactory& workloadFactory,
1755 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1756
1757LayerTestResult<float, 4> Debug4DFloat32Test(
1758 armnn::IWorkloadFactory& workloadFactory,
1759 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1760
1761LayerTestResult<float, 3> Debug3DFloat32Test(
1762 armnn::IWorkloadFactory& workloadFactory,
1763 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1764
1765LayerTestResult<float, 2> Debug2DFloat32Test(
1766 armnn::IWorkloadFactory& workloadFactory,
1767 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1768
1769LayerTestResult<float, 1> Debug1DFloat32Test(
1770 armnn::IWorkloadFactory& workloadFactory,
1771 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1772
1773LayerTestResult<uint8_t, 4> Debug4DUint8Test(
1774 armnn::IWorkloadFactory& workloadFactory,
1775 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1776
1777LayerTestResult<uint8_t, 3> Debug3DUint8Test(
1778 armnn::IWorkloadFactory& workloadFactory,
1779 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1780
1781LayerTestResult<uint8_t, 2> Debug2DUint8Test(
1782 armnn::IWorkloadFactory& workloadFactory,
1783 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1784
1785LayerTestResult<uint8_t, 1> Debug1DUint8Test(
1786 armnn::IWorkloadFactory& workloadFactory,
1787 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
narpra014951d842019-01-18 16:53:53 +00001788
1789LayerTestResult<float, 1> Gather1DParamsFloatTest(
1790 armnn::IWorkloadFactory& workloadFactory,
1791 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1792
1793LayerTestResult<uint8_t, 1> Gather1DParamsUint8Test(
1794 armnn::IWorkloadFactory& workloadFactory,
1795 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1796
1797LayerTestResult<float, 2> GatherMultiDimParamsFloatTest(
1798 armnn::IWorkloadFactory& workloadFactory,
1799 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1800
1801LayerTestResult<uint8_t, 2> GatherMultiDimParamsUint8Test(
1802 armnn::IWorkloadFactory& workloadFactory,
1803 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1804
1805LayerTestResult<float, 4> GatherMultiDimParamsMultiDimIndicesFloatTest(
1806 armnn::IWorkloadFactory& workloadFactory,
1807 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1808
1809LayerTestResult<uint8_t, 4> GatherMultiDimParamsMultiDimIndicesUint8Test(
1810 armnn::IWorkloadFactory& workloadFactory,
1811 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001812
Nattapat Chaimanowongafa4e3a2019-04-02 11:41:45 +01001813LayerTestResult<float, 4> DequantizeSimpleUint8Test(
1814 armnn::IWorkloadFactory& workloadFactory,
1815 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1816
1817LayerTestResult<float, 4> DequantizeOffsetUint8Test(
1818 armnn::IWorkloadFactory& workloadFactory,
1819 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1820
1821LayerTestResult<float, 4> DequantizeSimpleInt16Test(
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +00001822 armnn::IWorkloadFactory& workloadFactory,
1823 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Nattapat Chaimanowonga0beb3b2019-04-01 17:04:53 +01001824
1825LayerTestResult<uint8_t, 4> QuantizeSimpleUint8Test(
1826 armnn::IWorkloadFactory& workloadFactory,
1827 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1828
1829LayerTestResult<uint8_t, 4> QuantizeClampUint8Test(
1830 armnn::IWorkloadFactory& workloadFactory,
1831 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
1832
1833LayerTestResult<int16_t, 4> QuantizeClampInt16Test(
1834 armnn::IWorkloadFactory& workloadFactory,
1835 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager);
Francis Murtagh46c09d02019-05-28 08:15:28 +01001836
1837template<typename T, typename B>
1838LayerTestResult<T, 2> SimpleFullyConnectedTestImpl(
1839 armnn::IWorkloadFactory& workloadFactory,
1840 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1841 armnn::TensorInfo inputTensorInfo,
1842 armnn::TensorInfo outputTensorInfo,
1843 armnn::TensorInfo weightsDesc,
1844 armnn::TensorInfo biasesDesc,
1845 boost::multi_array<T, 2>& weights,
1846 boost::multi_array<B, 1>& bias,
1847 boost::multi_array<T, 4>& input,
1848 bool biasEnabled,
1849 bool transposeWeights)
1850{
1851 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1852 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1853
1854 armnn::FullyConnectedQueueDescriptor data;
1855 armnn::WorkloadInfo info;
1856 armnn::ScopedCpuTensorHandle weightsTensor(weightsDesc);
1857 armnn::ScopedCpuTensorHandle biasTensor(biasesDesc);
1858
1859 AllocateAndCopyDataToITensorHandle(&weightsTensor, &weights[0][0]);
1860 AllocateAndCopyDataToITensorHandle(&biasTensor, &bias[0]);
1861
1862 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
1863 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
1864 data.m_Weight = &weightsTensor;
1865 data.m_Bias = &biasTensor;
1866 data.m_Parameters.m_BiasEnabled = biasEnabled;
1867 data.m_Parameters.m_TransposeWeightMatrix = transposeWeights;
1868
1869 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFullyConnected(data, info);
1870 LayerTestResult<T, 2> result(outputTensorInfo);
1871
1872 inputHandle->Allocate();
1873 outputHandle->Allocate();
1874 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
1875
1876 ExecuteWorkload(*workload, memoryManager);
1877
1878 CopyDataFromITensorHandle(&result.output[0][0], outputHandle.get());
1879
1880 return result;
1881}
1882
1883template <armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
1884std::vector<T> ConvertToDataType(const std::vector<float>& input,
1885 const armnn::TensorInfo& inputTensorInfo)
1886{
1887 std::vector<T> output(input.size());
1888 auto outputTensorInfo = inputTensorInfo;
1889 outputTensorInfo.SetDataType(ArmnnType);
1890
1891 std::unique_ptr<armnn::Encoder<float>> pOutputEncoder = armnn::MakeEncoder<float>(outputTensorInfo, output.data());
1892 armnn::Encoder<float>& rOutputEncoder = *pOutputEncoder;
1893
1894 for (auto it = input.begin(); it != input.end(); ++it)
1895 {
1896 rOutputEncoder.Set(*it);
1897 ++rOutputEncoder;
1898 }
1899 return output;
1900}
1901
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01001902template<typename T>
nikraj0193f84a92019-06-05 10:48:46 +01001903LayerTestResult<T, 2> Rsqrt2dTestCommon(
1904 armnn::IWorkloadFactory& workloadFactory,
1905 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
1906 const armnn::TensorInfo inputTensorInfo,
1907 const armnn::TensorInfo outputTensorInfo,
1908 std::vector<T> inputValues,
1909 std::vector<T> expectedOutputValues)
1910{
1911 auto inputTensor = MakeTensor<T, 2>(inputTensorInfo, std::vector<T>(inputValues));
1912
1913 LayerTestResult<T, 2> result(outputTensorInfo);
1914 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo, std::vector<T>(expectedOutputValues));
1915
1916 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1917 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1918
1919 armnn::RsqrtQueueDescriptor descriptor;
1920
1921 armnn::WorkloadInfo info;
1922
1923 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
1924 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
1925
1926 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateRsqrt(descriptor, info);
1927
1928 inputHandle->Allocate();
1929 outputHandle->Allocate();
1930
1931 CopyDataToITensorHandle(inputHandle.get(), &inputTensor[0][0]);
1932
1933 workload->PostAllocationConfigure();
1934 workload->Execute();
1935
1936 CopyDataFromITensorHandle(&result.output[0][0], outputHandle.get());
1937
1938 return result;
1939}
1940
1941template<armnn::DataType ArmnnType, typename T>
1942LayerTestResult<T, 2> Rsqrt2dTest(
1943 armnn::IWorkloadFactory& workloadFactory,
1944 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
1945{
1946 const armnn::TensorShape inputShape{ 2, 2 };
1947 const armnn::TensorShape outputShape{ 2, 2 };
1948
1949 const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
1950 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType);
1951
1952 std::vector<T> inputValues
1953 {
1954 1.f, 4.f,
1955 16.f, 25.f
1956 };
1957
1958 std::vector<T> expectedOutputValues
1959 {
1960 1.f, 0.5f,
1961 0.25f, 0.2f
1962 };
1963
1964 return Rsqrt2dTestCommon<T>(workloadFactory, memoryManager,
1965 inputTensorInfo, outputTensorInfo,
1966 inputValues, expectedOutputValues);
1967}
1968
1969template<armnn::DataType ArmnnType, typename T>
1970LayerTestResult<T, 3> Rsqrt3dTest(
1971 armnn::IWorkloadFactory& workloadFactory,
1972 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
1973{
1974 const armnn::TensorShape inputShape{ 3, 1, 2 };
1975 const armnn::TensorShape outputShape{ 3, 1, 2 };
1976
1977 const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
1978 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType);
1979
1980 std::vector<T> inputValues
1981 {
1982 1.f, 4.f, 16.f,
1983 25.f, 64.f, 100.f
1984 };
1985
1986 std::vector<T> expectedOutputValues
1987 {
1988 1.f, 0.5f, 0.25f,
1989 0.2f, 0.125f, 0.1f
1990 };
1991
1992 auto inputTensor = MakeTensor<T, 3>(inputTensorInfo, std::vector<T>(inputValues));
1993
1994 LayerTestResult<T, 3> result(outputTensorInfo);
1995 result.outputExpected = MakeTensor<T, 3>(outputTensorInfo, std::vector<T>(expectedOutputValues));
1996
1997 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
1998 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
1999
2000 armnn::RsqrtQueueDescriptor descriptor;
2001
2002 armnn::WorkloadInfo info;
2003
2004 AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get());
2005 AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get());
2006
2007 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateRsqrt(descriptor, info);
2008
2009 inputHandle->Allocate();
2010 outputHandle->Allocate();
2011
2012 CopyDataToITensorHandle(inputHandle.get(), &inputTensor[0][0][0]);
2013
2014 workload->PostAllocationConfigure();
2015 workload->Execute();
2016
2017 CopyDataFromITensorHandle(&result.output[0][0][0], outputHandle.get());
2018
2019 return result;
2020}
2021
2022template<armnn::DataType ArmnnType, typename T>
2023LayerTestResult<T, 2> RsqrtZeroTest(
2024 armnn::IWorkloadFactory& workloadFactory,
2025 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
2026{
2027 const armnn::TensorShape inputShape{ 1, 2 };
2028 const armnn::TensorShape outputShape{ 1, 2 };
2029
2030 const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
2031 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType);
2032
2033 std::vector<T> inputValues
2034 {
2035 0.f, -0.f
2036 };
2037
2038 std::vector<T> expectedOutputValues
2039 {
2040 INFINITY, -INFINITY
2041 };
2042
2043 return Rsqrt2dTestCommon<T>(workloadFactory, memoryManager,
2044 inputTensorInfo, outputTensorInfo,
2045 inputValues, expectedOutputValues);
2046}
2047
2048template<armnn::DataType ArmnnType, typename T>
2049LayerTestResult<T, 2> RsqrtNegativeTest(
2050 armnn::IWorkloadFactory& workloadFactory,
2051 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
2052{
2053 const armnn::TensorShape inputShape{ 1, 2 };
2054 const armnn::TensorShape outputShape{ 1, 2 };
2055
2056 const armnn::TensorInfo inputTensorInfo(inputShape, ArmnnType);
2057 const armnn::TensorInfo outputTensorInfo(outputShape, ArmnnType);
2058
2059 std::vector<T> inputValues
2060 {
2061 -25.f, -16.f
2062 };
2063
2064 std::vector<T> expectedOutputValues
2065 {
2066 -NAN, -NAN
2067 };
2068
2069 return Rsqrt2dTestCommon<T>(workloadFactory, memoryManager,
2070 inputTensorInfo, outputTensorInfo,
2071 inputValues, expectedOutputValues);
2072}
2073
2074template<typename T>
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01002075LayerTestResult<T, 4> SimpleReshapeTestImpl(
2076 armnn::IWorkloadFactory& workloadFactory,
2077 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
2078 armnn::TensorInfo inputTensorInfo,
2079 armnn::TensorInfo outputTensorInfo,
2080 const std::vector<T>& inputData,
2081 const std::vector<T>& outputExpectedData)
2082{
2083 auto input = MakeTensor<T, 4>(inputTensorInfo, inputData);
2084
2085 LayerTestResult<T, 4> ret(outputTensorInfo);
2086 ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo, outputExpectedData);
2087
2088 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
2089 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
2090
2091 armnn::ReshapeQueueDescriptor data;
2092 armnn::WorkloadInfo info;
2093 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
2094 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
2095
2096 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReshape(data, info);
2097
2098 inputHandle->Allocate();
2099 outputHandle->Allocate();
2100
2101 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
2102
2103 workload->Execute();
2104
2105 CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
2106
2107 return ret;
2108}
2109
Francis Murtagh46c09d02019-05-28 08:15:28 +01002110template<armnn::DataType ArmnnType, typename T>
2111LayerTestResult<T, 2> FullyConnectedTest(
2112 armnn::IWorkloadFactory& workloadFactory,
2113 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
2114 bool biasEnabled)
2115{
2116 constexpr static unsigned int inputWidth = 3u;
2117 constexpr static unsigned int inputHeight = 2u;
2118 constexpr static unsigned int inputChannels = 1u;
2119
2120 constexpr static unsigned int inputSize = inputWidth * inputHeight * inputChannels;
2121
2122 constexpr static unsigned int outputChannels = 2u;
2123
2124 armnn::TensorInfo inputTensorInfo({ 1, inputChannels, inputHeight, inputWidth }, ArmnnType);
2125 inputTensorInfo.SetQuantizationScale(0.1f);
2126 inputTensorInfo.SetQuantizationOffset(63);
2127
2128 armnn::TensorInfo outputTensorInfo({ 1, outputChannels }, ArmnnType);
2129 outputTensorInfo.SetQuantizationScale(5.f);
2130 outputTensorInfo.SetQuantizationOffset(biasEnabled ? -50 : 10);
2131
2132 armnn::TensorInfo weightsDesc({ outputChannels, inputSize }, ArmnnType);
2133 weightsDesc.SetQuantizationScale(0.2f);
2134 weightsDesc.SetQuantizationOffset(93);
2135
2136 armnn::TensorInfo biasesDesc({ outputChannels }, GetBiasTypeFromWeightsType(weightsDesc.GetDataType()).value());
2137 biasesDesc.SetQuantizationScale(inputTensorInfo.GetQuantizationScale() * weightsDesc.GetQuantizationScale());
2138 biasesDesc.SetQuantizationOffset(0);
2139
2140 LayerTestResult<T, 2> result(outputTensorInfo);
2141
2142 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
2143 {
2144 -1.2f, 6.1f, -3.5f,
2145 18.8f, -5.5f, 2.9f
2146 },
2147 inputTensorInfo));
2148
2149 auto weights = MakeTensor<T, 2>(weightsDesc, ConvertToDataType<ArmnnType>(
2150 {
2151 -8.4f, 20.0f, -10.4f, -8, 16.4f, -11.8f,
2152 23.4f, 10.4f, -14.0f, -3.8f, -11.8f, 11.4f
2153 },
2154 weightsDesc));
2155
2156 auto bias = MakeTensor<int32_t, 1>(biasesDesc, std::vector<int32_t>{9250, 67500});
2157
2158 result = SimpleFullyConnectedTestImpl<T>(
2159 workloadFactory,
2160 memoryManager,
2161 inputTensorInfo, outputTensorInfo,
2162 weightsDesc, biasesDesc,
2163 weights, bias, input,
2164 biasEnabled, true
2165 );
2166
2167 if (biasEnabled)
2168 {
2169 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
2170 ConvertToDataType<ArmnnType>({80.f, 1460.f}, outputTensorInfo));
2171 }
2172 else
2173 {
2174 result.outputExpected = MakeTensor<T, 2>(outputTensorInfo,
2175 ConvertToDataType<ArmnnType>({-107.04f, 110.f}, outputTensorInfo));
2176 }
2177
2178 return result;
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01002179}
2180
Nina Drozd8ed4b8c2019-05-29 10:41:04 +01002181template<armnn::DataType ArmnnType, typename T>
2182LayerTestResult<T, 4> SimpleReshapeTest(
2183 armnn::IWorkloadFactory& workloadFactory,
2184 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
2185{
2186 armnn::TensorInfo inputTensorInfo;
2187 armnn::TensorInfo outputTensorInfo;
2188
2189 unsigned int inputShape[] = { 2, 2, 3, 3 };
2190 unsigned int outputShape[] = { 2, 2, 9, 1 };
2191
2192 inputTensorInfo = armnn::TensorInfo(4, inputShape, ArmnnType);
2193 inputTensorInfo.SetQuantizationScale(1.0f);
2194 outputTensorInfo = armnn::TensorInfo(4, outputShape, ArmnnType);
2195 outputTensorInfo.SetQuantizationScale(1.0f);
2196
2197 auto input = ConvertToDataType<ArmnnType>(
2198 {
2199 0.0f, 1.0f, 2.0f,
2200 3.0f, 4.0f, 5.0f,
2201 6.0f, 7.0f, 8.0f,
2202
2203 9.0f, 10.0f, 11.0f,
2204 12.0f, 13.0f, 14.0f,
2205 15.0f, 16.0f, 17.0f,
2206
2207 18.0f, 19.0f, 20.0f,
2208 21.0f, 22.0f, 23.0f,
2209 24.0f, 25.0f, 26.0f,
2210
2211 27.0f, 28.0f, 29.0f,
2212 30.0f, 31.0f, 32.0f,
2213 33.0f, 34.0f, 35.0f,
2214 },
2215 inputTensorInfo);
2216
2217 auto outputExpected = ConvertToDataType<ArmnnType>(
2218 {
2219 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f,
2220
2221 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f,
2222
2223 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 26.0f,
2224
2225 27.0f, 28.0f, 29.0f, 30.0f, 31.0f, 32.0f, 33.0f, 34.0f, 35.0f,
2226 },
2227 outputTensorInfo);
2228
2229 return SimpleReshapeTestImpl<T>(
2230 workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected);
Matteo Martincigh42666a12019-05-29 08:53:41 +01002231}
James Conroy83735b12019-05-30 16:36:59 +01002232
2233template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
2234LayerTestResult<T, 4> SimpleFloorTest(
2235 armnn::IWorkloadFactory& workloadFactory,
2236 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager)
2237{
James Conroyb40d7102019-06-04 12:32:09 +01002238 armnn::TensorInfo inputTensorInfo({1, 3, 2, 3}, ArmnnType);
2239 inputTensorInfo.SetQuantizationScale(0.1f);
2240
2241 armnn::TensorInfo outputTensorInfo(inputTensorInfo);
2242 outputTensorInfo.SetQuantizationScale(0.1f);
James Conroy83735b12019-05-30 16:36:59 +01002243
2244 auto input = MakeTensor<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
2245 { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f, -0.5f, -0.4f, 0.0f,
2246 1.0f, 0.4f, 0.5f, 1.3f, 1.5f, 2.0f, 8.76f, 15.2f, 37.5f },
2247 inputTensorInfo));
2248
2249 LayerTestResult<T, 4> ret(outputTensorInfo);
2250 ret.outputExpected = MakeTensor<T, 4>(outputTensorInfo, ConvertToDataType<ArmnnType>(
2251 { -38.0f, -16.0f, -9.0f, -2.0f, -2.0f, -2.0f, -1.0f, -1.0f, 0.0f,
2252 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 2.0f, 8.0f, 15.0f, 37.0f },
2253 outputTensorInfo));
2254
2255 std::unique_ptr<armnn::ITensorHandle> inputHandle = workloadFactory.CreateTensorHandle(inputTensorInfo);
2256 std::unique_ptr<armnn::ITensorHandle> outputHandle = workloadFactory.CreateTensorHandle(outputTensorInfo);
2257
2258 armnn::FloorQueueDescriptor data;
2259 armnn::WorkloadInfo info;
2260 AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get());
2261 AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get());
2262
2263 std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFloor(data, info);
2264
2265 inputHandle->Allocate();
2266 outputHandle->Allocate();
2267
2268 CopyDataToITensorHandle(inputHandle.get(), &input[0][0][0][0]);
2269
2270 workload->Execute();
2271
2272 CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get());
2273
2274 return ret;
Matteo Martincighf5507132019-06-04 10:59:47 +01002275}