blob: e23cd325836d46a59a7cea141d508485aca5800f [file] [log] [blame]
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Sadik Armagana097d2a2021-11-24 15:47:28 +00008#include <armnnTestUtils/LayerTestResult.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01009
Matteo Martincighe5b8eb92019-11-28 15:45:42 +000010#include <armnn/backends/IBackendInternal.hpp>
Colm Donelan0c479742021-12-10 12:43:54 +000011#include <armnn/backends/WorkloadFactory.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010012
13//
14// Sigmoid
15//
16
17LayerTestResult<float, 4> SimpleSigmoidTest(
18 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010019 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
20 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010021
22LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
23 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010024 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
25 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010026
27LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
28 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010029 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010031
32//
33// TanH
34//
35
36LayerTestResult<float, 4> TanhTest(
37 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010038 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
39 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010040
41LayerTestResult<uint8_t, 4> TanhUint8Test(
42 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010043 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
44 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010045
46LayerTestResult<int16_t, 4> TanhInt16Test(
47 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010048 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
49 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010050
51//
52// Linear
53//
54
55LayerTestResult<float, 4> ConstantLinearActivationTest(
56 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010057 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
58 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010059
60LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
61 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010062 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
63 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010064
65LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
66 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010067 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
68 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010069
70//
71// ReLu
72//
73
74LayerTestResult<float, 4> ReLuTest(
75 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010076 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010078
79LayerTestResult<uint8_t, 4> ReLuUint8Test(
80 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010081 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
82 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010083
84LayerTestResult<int16_t, 4> ReLuInt16Test(
85 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +010086 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
87 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010088
89//
90// BoundedReLu
91//
92
93LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
94 armnn::IWorkloadFactory& workloadFactory,
95 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
96 float upperBound);
97
98LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
99 armnn::IWorkloadFactory& workloadFactory,
100 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
101 float upperBound,
102 float lowerBound);
103
104LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
105 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100106 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
107 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100108
109LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
110 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100111 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100113
114LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
115 armnn::IWorkloadFactory& workloadFactor,
Keith Davis33a626f2020-08-27 15:38:12 +0100116 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery,
117 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100118
119LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
120 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
122 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100123
124LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
125 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100126 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
127 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100128
129LayerTestResult<float, 4> CompareBoundedReLuTest(
130 armnn::IWorkloadFactory& workloadFactory,
131 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
132 armnn::IWorkloadFactory& refWorkloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100133 const armnn::ITensorHandleFactory& tensorHandleFactory,
134 const armnn::ITensorHandleFactory& refTensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100135 float upperBound,
136 float lowerBound);
137
138//
139// SoftReLu
140//
141
142LayerTestResult<float, 4> SoftReLuTest(
143 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100144 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
145 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100146
147LayerTestResult<uint8_t, 4> SoftReLuUint8Test(
148 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100149 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100151
152LayerTestResult<int16_t, 4> SoftReLuInt16Test(
153 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100154 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100156
157//
158// LeakyReLu
159//
160
161LayerTestResult<float, 4> LeakyReLuTest(
162 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100163 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
164 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100165
166LayerTestResult<uint8_t, 4> LeakyReLuUint8Test(
167 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100168 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
169 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100170
171LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
172 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100173 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
174 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100175
176//
David Monahan3b3c3812020-02-25 09:03:29 +0000177// Elu
178//
179
180LayerTestResult<float, 4> EluTest(
181 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100182 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
183 const armnn::ITensorHandleFactory& tensorHandleFactory);
David Monahan3b3c3812020-02-25 09:03:29 +0000184
185LayerTestResult<uint8_t, 4> EluUint8Test(
186 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100187 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
188 const armnn::ITensorHandleFactory& tensorHandleFactory);
David Monahan3b3c3812020-02-25 09:03:29 +0000189
190LayerTestResult<int16_t, 4> EluInt16Test(
191 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100192 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
193 const armnn::ITensorHandleFactory& tensorHandleFactory);
David Monahan3b3c3812020-02-25 09:03:29 +0000194
195//
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100196// Abs
197//
198
199LayerTestResult<float, 4> AbsTest(
200 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100201 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
202 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100203
204LayerTestResult<uint8_t, 4> AbsUint8Test(
205 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100206 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
207 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100208
209LayerTestResult<int16_t, 4> AbsInt16Test(
210 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100211 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
212 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100213
214//
215// Sqrt
216//
217
218LayerTestResult<float, 4> SqrtTest(
219 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100220 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
221 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100222
Sadik Armagan6095ba52019-09-13 17:07:19 +0100223LayerTestResult<float, 5> SqrtNNTest(
224 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100225 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
226 const armnn::ITensorHandleFactory& tensorHandleFactory);
Sadik Armagan6095ba52019-09-13 17:07:19 +0100227
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100228LayerTestResult<uint8_t, 4> SqrtUint8Test(
229 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100230 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
231 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100232
233LayerTestResult<int16_t, 4> SqrtInt16Test(
234 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100235 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
236 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100237
238//
239// Square
240//
241
242LayerTestResult<float, 4> SquareTest(
243 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100244 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
245 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100246
247LayerTestResult<uint8_t, 4> SquareUint8Test(
248 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100249 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
250 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100251
252LayerTestResult<int16_t, 4> SquareInt16Test(
253 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100254 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
255 const armnn::ITensorHandleFactory& tensorHandleFactory);
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100256
257//
Colm Donelan03fbeaf2020-02-26 15:39:23 +0000258// HardSwish
259//
260
261LayerTestResult<float, 4> HardSwishTest(
262 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100263 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
264 const armnn::ITensorHandleFactory& tensorHandleFactory);
Colm Donelan03fbeaf2020-02-26 15:39:23 +0000265
266LayerTestResult<uint8_t, 4> HardSwishUint8Test(
267 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100268 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
269 const armnn::ITensorHandleFactory& tensorHandleFactory);
Colm Donelan03fbeaf2020-02-26 15:39:23 +0000270
271LayerTestResult<int16_t, 4> HardSwishInt16Test(
272 armnn::IWorkloadFactory& workloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100273 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
274 const armnn::ITensorHandleFactory& tensorHandleFactory);
Colm Donelan03fbeaf2020-02-26 15:39:23 +0000275
276//
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100277// Other
278//
279
280LayerTestResult<float, 4> CompareActivationTest(
281 armnn::IWorkloadFactory& workloadFactory,
282 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
283 armnn::IWorkloadFactory& refWorkloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100284 const armnn::ITensorHandleFactory& tensorHandleFactory,
285 const armnn::ITensorHandleFactory& refTensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100286 armnn::ActivationFunction f,
287 unsigned int batchSize);
288
289LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
290 armnn::IWorkloadFactory& workloadFactory,
291 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
292 armnn::IWorkloadFactory& refWorkloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100293 const armnn::ITensorHandleFactory& tensorHandleFactory,
294 const armnn::ITensorHandleFactory& refTensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100295 armnn::ActivationFunction f);
296
297LayerTestResult<int16_t, 4> CompareActivationInt16Test(
298 armnn::IWorkloadFactory& workloadFactory,
299 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
300 armnn::IWorkloadFactory& refWorkloadFactory,
Keith Davis33a626f2020-08-27 15:38:12 +0100301 const armnn::ITensorHandleFactory& tensorHandleFactory,
302 const armnn::ITensorHandleFactory& refTensorHandleFactory,
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +0100303 armnn::ActivationFunction f);