xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnnTestUtils/LayerTestResult.hpp>
9 
10 #include <armnn/backends/IBackendInternal.hpp>
11 #include <armnn/backends/WorkloadFactory.hpp>
12 
13 //
14 // Sigmoid
15 //
16 
17 LayerTestResult<float, 4> SimpleSigmoidTest(
18     armnn::IWorkloadFactory& workloadFactory,
19     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
20     const armnn::ITensorHandleFactory& tensorHandleFactory);
21 
22 LayerTestResult<uint8_t, 4> SimpleSigmoidUint8Test(
23     armnn::IWorkloadFactory& workloadFactory,
24     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
25     const armnn::ITensorHandleFactory& tensorHandleFactory);
26 
27 LayerTestResult<int16_t, 4> SimpleSigmoidInt16Test(
28         armnn::IWorkloadFactory& workloadFactory,
29         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30         const armnn::ITensorHandleFactory& tensorHandleFactory);
31 
32 //
33 // TanH
34 //
35 
36 LayerTestResult<float, 4> TanhTest(
37         armnn::IWorkloadFactory& workloadFactory,
38         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
39         const armnn::ITensorHandleFactory& tensorHandleFactory);
40 
41 LayerTestResult<uint8_t, 4> TanhUint8Test(
42         armnn::IWorkloadFactory& workloadFactory,
43         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
44         const armnn::ITensorHandleFactory& tensorHandleFactory);
45 
46 LayerTestResult<int16_t, 4> TanhInt16Test(
47         armnn::IWorkloadFactory& workloadFactory,
48         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
49         const armnn::ITensorHandleFactory& tensorHandleFactory);
50 
51 //
52 // Linear
53 //
54 
55 LayerTestResult<float, 4> ConstantLinearActivationTest(
56     armnn::IWorkloadFactory& workloadFactory,
57     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
58     const armnn::ITensorHandleFactory& tensorHandleFactory);
59 
60 LayerTestResult<uint8_t, 4> ConstantLinearActivationUint8Test(
61     armnn::IWorkloadFactory& workloadFactory,
62     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
63     const armnn::ITensorHandleFactory& tensorHandleFactory);
64 
65 LayerTestResult<int16_t, 4> ConstantLinearActivationInt16Test(
66     armnn::IWorkloadFactory& workloadFactory,
67     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
68     const armnn::ITensorHandleFactory& tensorHandleFactory);
69 
70 //
71 // ReLu
72 //
73 
74 LayerTestResult<float, 4> ReLuTest(
75         armnn::IWorkloadFactory& workloadFactory,
76         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77         const armnn::ITensorHandleFactory& tensorHandleFactory);
78 
79 LayerTestResult<uint8_t, 4> ReLuUint8Test(
80         armnn::IWorkloadFactory& workloadFactory,
81         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
82         const armnn::ITensorHandleFactory& tensorHandleFactory);
83 
84 LayerTestResult<int16_t, 4> ReLuInt16Test(
85         armnn::IWorkloadFactory& workloadFactory,
86         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
87         const armnn::ITensorHandleFactory& tensorHandleFactory);
88 
89 //
90 // BoundedReLu
91 //
92 
93 LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
94     armnn::IWorkloadFactory& workloadFactory,
95     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
96     float upperBound);
97 
98 LayerTestResult<uint8_t, 4> BoundedReLuUint8Test(
99     armnn::IWorkloadFactory& workloadFactory,
100     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
101     float upperBound,
102     float lowerBound);
103 
104 LayerTestResult<int16_t, 4> BoundedReLuInt16Test(
105         armnn::IWorkloadFactory& workloadFactory,
106         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
107         const armnn::ITensorHandleFactory& tensorHandleFactory);
108 
109 LayerTestResult<float, 4> BoundedReLuUpperAndLowerBoundTest(
110     armnn::IWorkloadFactory& workloadFactory,
111     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
112     const armnn::ITensorHandleFactory& tensorHandleFactory);
113 
114 LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperAndLowerBoundTest(
115     armnn::IWorkloadFactory& workloadFactor,
116     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManagery,
117     const armnn::ITensorHandleFactory& tensorHandleFactory);
118 
119 LayerTestResult<float, 4> BoundedReLuUpperBoundOnlyTest(
120     armnn::IWorkloadFactory& workloadFactory,
121     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
122     const armnn::ITensorHandleFactory& tensorHandleFactory);
123 
124 LayerTestResult<uint8_t, 4> BoundedReLuUint8UpperBoundOnlyTest(
125     armnn::IWorkloadFactory& workloadFactory,
126     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
127     const armnn::ITensorHandleFactory& tensorHandleFactory);
128 
129 LayerTestResult<float, 4> CompareBoundedReLuTest(
130     armnn::IWorkloadFactory& workloadFactory,
131     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
132     armnn::IWorkloadFactory& refWorkloadFactory,
133     const armnn::ITensorHandleFactory& tensorHandleFactory,
134     const armnn::ITensorHandleFactory& refTensorHandleFactory,
135     float upperBound,
136     float lowerBound);
137 
138 //
139 // SoftReLu
140 //
141 
142 LayerTestResult<float, 4> SoftReLuTest(
143         armnn::IWorkloadFactory& workloadFactory,
144         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
145         const armnn::ITensorHandleFactory& tensorHandleFactory);
146 
147 LayerTestResult<uint8_t, 4> SoftReLuUint8Test(
148         armnn::IWorkloadFactory& workloadFactory,
149         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150         const armnn::ITensorHandleFactory& tensorHandleFactory);
151 
152 LayerTestResult<int16_t, 4> SoftReLuInt16Test(
153         armnn::IWorkloadFactory& workloadFactory,
154         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
155         const armnn::ITensorHandleFactory& tensorHandleFactory);
156 
157 //
158 // LeakyReLu
159 //
160 
161 LayerTestResult<float, 4> LeakyReLuTest(
162         armnn::IWorkloadFactory& workloadFactory,
163         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
164         const armnn::ITensorHandleFactory& tensorHandleFactory);
165 
166 LayerTestResult<uint8_t, 4> LeakyReLuUint8Test(
167         armnn::IWorkloadFactory& workloadFactory,
168         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
169         const armnn::ITensorHandleFactory& tensorHandleFactory);
170 
171 LayerTestResult<int16_t, 4> LeakyReLuInt16Test(
172         armnn::IWorkloadFactory& workloadFactory,
173         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
174         const armnn::ITensorHandleFactory& tensorHandleFactory);
175 
176 //
177 // Elu
178 //
179 
180 LayerTestResult<float, 4> EluTest(
181         armnn::IWorkloadFactory& workloadFactory,
182         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
183         const armnn::ITensorHandleFactory& tensorHandleFactory);
184 
185 LayerTestResult<uint8_t, 4> EluUint8Test(
186         armnn::IWorkloadFactory& workloadFactory,
187         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
188         const armnn::ITensorHandleFactory& tensorHandleFactory);
189 
190 LayerTestResult<int16_t, 4> EluInt16Test(
191         armnn::IWorkloadFactory& workloadFactory,
192         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
193         const armnn::ITensorHandleFactory& tensorHandleFactory);
194 
195 //
196 // Abs
197 //
198 
199 LayerTestResult<float, 4> AbsTest(
200         armnn::IWorkloadFactory& workloadFactory,
201         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
202         const armnn::ITensorHandleFactory& tensorHandleFactory);
203 
204 LayerTestResult<uint8_t, 4> AbsUint8Test(
205         armnn::IWorkloadFactory& workloadFactory,
206         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
207         const armnn::ITensorHandleFactory& tensorHandleFactory);
208 
209 LayerTestResult<int16_t, 4> AbsInt16Test(
210         armnn::IWorkloadFactory& workloadFactory,
211         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
212         const armnn::ITensorHandleFactory& tensorHandleFactory);
213 
214 //
215 // Sqrt
216 //
217 
218 LayerTestResult<float, 4> SqrtTest(
219         armnn::IWorkloadFactory& workloadFactory,
220         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
221         const armnn::ITensorHandleFactory& tensorHandleFactory);
222 
223 LayerTestResult<float, 5> SqrtNNTest(
224     armnn::IWorkloadFactory& workloadFactory,
225     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
226     const armnn::ITensorHandleFactory& tensorHandleFactory);
227 
228 LayerTestResult<uint8_t, 4> SqrtUint8Test(
229         armnn::IWorkloadFactory& workloadFactory,
230         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
231         const armnn::ITensorHandleFactory& tensorHandleFactory);
232 
233 LayerTestResult<int16_t, 4> SqrtInt16Test(
234         armnn::IWorkloadFactory& workloadFactory,
235         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
236         const armnn::ITensorHandleFactory& tensorHandleFactory);
237 
238 //
239 // Square
240 //
241 
242 LayerTestResult<float, 4> SquareTest(
243         armnn::IWorkloadFactory& workloadFactory,
244         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
245         const armnn::ITensorHandleFactory& tensorHandleFactory);
246 
247 LayerTestResult<uint8_t, 4> SquareUint8Test(
248         armnn::IWorkloadFactory& workloadFactory,
249         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
250         const armnn::ITensorHandleFactory& tensorHandleFactory);
251 
252 LayerTestResult<int16_t, 4> SquareInt16Test(
253         armnn::IWorkloadFactory& workloadFactory,
254         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
255         const armnn::ITensorHandleFactory& tensorHandleFactory);
256 
257 //
258 // HardSwish
259 //
260 
261 LayerTestResult<float, 4> HardSwishTest(
262     armnn::IWorkloadFactory& workloadFactory,
263     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
264     const armnn::ITensorHandleFactory& tensorHandleFactory);
265 
266 LayerTestResult<uint8_t, 4> HardSwishUint8Test(
267     armnn::IWorkloadFactory& workloadFactory,
268     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
269     const armnn::ITensorHandleFactory& tensorHandleFactory);
270 
271 LayerTestResult<int16_t, 4> HardSwishInt16Test(
272     armnn::IWorkloadFactory& workloadFactory,
273     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
274     const armnn::ITensorHandleFactory& tensorHandleFactory);
275 
276 //
277 // Other
278 //
279 
280 LayerTestResult<float, 4> CompareActivationTest(
281     armnn::IWorkloadFactory& workloadFactory,
282     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
283     armnn::IWorkloadFactory& refWorkloadFactory,
284     const armnn::ITensorHandleFactory& tensorHandleFactory,
285     const armnn::ITensorHandleFactory& refTensorHandleFactory,
286     armnn::ActivationFunction f,
287     unsigned int batchSize);
288 
289 LayerTestResult<uint8_t, 4> CompareActivationUint8Test(
290     armnn::IWorkloadFactory& workloadFactory,
291     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
292     armnn::IWorkloadFactory& refWorkloadFactory,
293     const armnn::ITensorHandleFactory& tensorHandleFactory,
294     const armnn::ITensorHandleFactory& refTensorHandleFactory,
295     armnn::ActivationFunction f);
296 
297 LayerTestResult<int16_t, 4> CompareActivationInt16Test(
298         armnn::IWorkloadFactory& workloadFactory,
299         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
300         armnn::IWorkloadFactory& refWorkloadFactory,
301         const armnn::ITensorHandleFactory& tensorHandleFactory,
302         const armnn::ITensorHandleFactory& refTensorHandleFactory,
303         armnn::ActivationFunction f);
304