xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.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/Types.hpp>
11 
12 #include <armnn/backends/IBackendInternal.hpp>
13 #include <armnn/backends/WorkloadFactory.hpp>
14 
15 LayerTestResult<float,   4> SimpleMaxPooling2dSize2x2Stride2x2Test(
16     armnn::IWorkloadFactory& workloadFactory,
17     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
18     const armnn::ITensorHandleFactory& tensorHandleFactory,
19     bool forceNoPadding);
20 
21 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Uint8Test(
22     armnn::IWorkloadFactory& workloadFactory,
23     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
24     const armnn::ITensorHandleFactory& tensorHandleFactory,
25     bool forceNoPadding);
26 
27 LayerTestResult<int16_t, 4> SimpleMaxPooling2dSize2x2Stride2x2Int16Test(
28     armnn::IWorkloadFactory& workloadFactory,
29     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30     const armnn::ITensorHandleFactory& tensorHandleFactory,
31     bool forceNoPadding);
32 
33 LayerTestResult<float,   4> SimpleMaxPooling2dSize3x3Stride2x4Test(
34     armnn::IWorkloadFactory& workloadFactory,
35     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
36     const armnn::ITensorHandleFactory& tensorHandleFactory,
37     bool forceNoPadding);
38 
39 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Uint8Test(
40     armnn::IWorkloadFactory& workloadFactory,
41     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
42     const armnn::ITensorHandleFactory& tensorHandleFactory,
43     bool forceNoPadding);
44 
45 LayerTestResult<int16_t, 4> SimpleMaxPooling2dSize3x3Stride2x4Int16Test(
46     armnn::IWorkloadFactory& workloadFactory,
47     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
48     const armnn::ITensorHandleFactory& tensorHandleFactory,
49     bool forceNoPadding);
50 
51 LayerTestResult<float,   4> SimpleMaxPooling2dTest(
52     armnn::IWorkloadFactory& workloadFactory,
53     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
54     const armnn::ITensorHandleFactory& tensorHandleFactory,
55     const armnn::DataLayout dataLayout);
56 
57 LayerTestResult<uint8_t, 4> SimpleMaxPooling2dUint8Test(
58     armnn::IWorkloadFactory& workloadFactory,
59     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
60     const armnn::ITensorHandleFactory& tensorHandleFactory,
61     const armnn::DataLayout dataLayout);
62 
63 LayerTestResult<int16_t, 4> SimpleMaxPooling2dInt16Test(
64     armnn::IWorkloadFactory& workloadFactory,
65     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
66     const armnn::ITensorHandleFactory& tensorHandleFactory,
67     const armnn::DataLayout dataLayout);
68 
69 LayerTestResult<float,   4> IgnorePaddingSimpleMaxPooling2dTest(
70     armnn::IWorkloadFactory& workloadFactory,
71     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
72     const armnn::ITensorHandleFactory& tensorHandleFactory);
73 
74 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleMaxPooling2dUint8Test(
75     armnn::IWorkloadFactory& workloadFactory,
76     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77     const armnn::ITensorHandleFactory& tensorHandleFactory);
78 
79 LayerTestResult<int16_t, 4> IgnorePaddingSimpleMaxPooling2dInt16Test(
80     armnn::IWorkloadFactory& workloadFactory,
81     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
82     const armnn::ITensorHandleFactory& tensorHandleFactory);
83 
84 LayerTestResult<float,   4> IgnorePaddingMaxPooling2dSize3Test(
85     armnn::IWorkloadFactory& workloadFactory,
86     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
87     const armnn::ITensorHandleFactory& tensorHandleFactory);
88 
89 LayerTestResult<uint8_t, 4> IgnorePaddingMaxPooling2dSize3Uint8Test(
90     armnn::IWorkloadFactory& workloadFactory,
91     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
92     const armnn::ITensorHandleFactory& tensorHandleFactory);
93 
94 LayerTestResult<int16_t, 4> IgnorePaddingMaxPooling2dSize3Int16Test(
95     armnn::IWorkloadFactory& workloadFactory,
96     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
97     const armnn::ITensorHandleFactory& tensorHandleFactory);
98 
99 LayerTestResult<float,   4> SimpleAveragePooling2dTest(
100     armnn::IWorkloadFactory& workloadFactory,
101     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
102     const armnn::ITensorHandleFactory& tensorHandleFactory,
103     const armnn::DataLayout dataLayout);
104 
105 LayerTestResult<uint8_t, 4> SimpleAveragePooling2dUint8Test(
106     armnn::IWorkloadFactory& workloadFactory,
107     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
108     const armnn::ITensorHandleFactory& tensorHandleFactory,
109     const armnn::DataLayout dataLayout);
110 
111 LayerTestResult<int16_t, 4> SimpleAveragePooling2dInt16Test(
112     armnn::IWorkloadFactory& workloadFactory,
113     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
114     const armnn::ITensorHandleFactory& tensorHandleFactory,
115     const armnn::DataLayout dataLayout);
116 
117 LayerTestResult<float,   4> LargeTensorsAveragePooling2dTest(
118     armnn::IWorkloadFactory& workloadFactory,
119     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
120     const armnn::ITensorHandleFactory& tensorHandleFactory);
121 
122 LayerTestResult<uint8_t, 4> LargeTensorsAveragePooling2dUint8Test(
123     armnn::IWorkloadFactory& workloadFactory,
124     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
125     const armnn::ITensorHandleFactory& tensorHandleFactory);
126 
127 LayerTestResult<int16_t, 4> LargeTensorsAveragePooling2dInt16Test(
128     armnn::IWorkloadFactory& workloadFactory,
129     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
130     const armnn::ITensorHandleFactory& tensorHandleFactory);
131 
132 LayerTestResult<float,   4> IgnorePaddingAveragePooling2dSize3x2Stride2x2Test(
133     armnn::IWorkloadFactory& workloadFactory,
134     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
135     const armnn::ITensorHandleFactory& tensorHandleFactory,
136     bool forceNoPadding );
137 
138 LayerTestResult<float,   4> IgnorePaddingSimpleAveragePooling2dTest(
139     armnn::IWorkloadFactory& workloadFactory,
140     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
141     const armnn::ITensorHandleFactory& tensorHandleFactory);
142 
143 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dUint8Test(
144     armnn::IWorkloadFactory& workloadFactory,
145     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
146     const armnn::ITensorHandleFactory& tensorHandleFactory);
147 
148 LayerTestResult<int16_t, 4> IgnorePaddingSimpleAveragePooling2dInt16Test(
149     armnn::IWorkloadFactory& workloadFactory,
150     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
151     const armnn::ITensorHandleFactory& tensorHandleFactory);
152 
153 LayerTestResult<float, 4>   IgnorePaddingSimpleAveragePooling2dNoPaddingTest(
154     armnn::IWorkloadFactory& workloadFactory,
155     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156     const armnn::ITensorHandleFactory& tensorHandleFactory);
157 
158 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingUint8Test(
159     armnn::IWorkloadFactory& workloadFactory,
160     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
161     const armnn::ITensorHandleFactory& tensorHandleFactory);
162 
163 LayerTestResult<int16_t, 4> IgnorePaddingSimpleAveragePooling2dNoPaddingInt16Test(
164     armnn::IWorkloadFactory& workloadFactory,
165     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
166     const armnn::ITensorHandleFactory& tensorHandleFactory);
167 
168 LayerTestResult<float,   4> IgnorePaddingAveragePooling2dSize3Test(
169     armnn::IWorkloadFactory& workloadFactory,
170     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
171     const armnn::ITensorHandleFactory& tensorHandleFactory);
172 
173 LayerTestResult<uint8_t, 4> IgnorePaddingAveragePooling2dSize3Uint8Test(
174     armnn::IWorkloadFactory& workloadFactory,
175     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
176     const armnn::ITensorHandleFactory& tensorHandleFactory);
177 
178 LayerTestResult<int16_t, 4> IgnorePaddingAveragePooling2dSize3Int16Test(
179         armnn::IWorkloadFactory& workloadFactory,
180         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
181     const armnn::ITensorHandleFactory& tensorHandleFactory);
182 
183 LayerTestResult<float,   4> SimpleL2Pooling2dTest(
184     armnn::IWorkloadFactory& workloadFactory,
185     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
186     const armnn::ITensorHandleFactory& tensorHandleFactory,
187     const armnn::DataLayout dataLayout);
188 
189 LayerTestResult<uint8_t, 4> SimpleL2Pooling2dUint8Test(
190     armnn::IWorkloadFactory& workloadFactory,
191     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
192     const armnn::ITensorHandleFactory& tensorHandleFactory,
193     const armnn::DataLayout dataLayout);
194 
195 LayerTestResult<int16_t, 4> SimpleL2Pooling2dInt16Test(
196     armnn::IWorkloadFactory& workloadFactory,
197     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
198     const armnn::ITensorHandleFactory& tensorHandleFactory,
199     const armnn::DataLayout dataLayout);
200 
201 LayerTestResult<float,   4> L2Pooling2dSize3Stride1Test(
202     armnn::IWorkloadFactory& workloadFactory,
203     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
204     const armnn::ITensorHandleFactory& tensorHandleFactory);
205 
206 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride1Uint8Test(
207     armnn::IWorkloadFactory& workloadFactory,
208     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
209     const armnn::ITensorHandleFactory& tensorHandleFactory);
210 
211 LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride1Int16Test(
212     armnn::IWorkloadFactory& workloadFactory,
213     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
214     const armnn::ITensorHandleFactory& tensorHandleFactory);
215 
216 LayerTestResult<float,   4> L2Pooling2dSize3Stride3Test(
217     armnn::IWorkloadFactory& workloadFactory,
218     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
219     const armnn::ITensorHandleFactory& tensorHandleFactory);
220 
221 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride3Uint8Test(
222     armnn::IWorkloadFactory& workloadFactory,
223     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
224     const armnn::ITensorHandleFactory& tensorHandleFactory);
225 
226 LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride3Int16Test(
227     armnn::IWorkloadFactory& workloadFactory,
228     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
229     const armnn::ITensorHandleFactory& tensorHandleFactory);
230 
231 LayerTestResult<float,   4> L2Pooling2dSize3Stride4Test(
232     armnn::IWorkloadFactory& workloadFactory,
233     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
234     const armnn::ITensorHandleFactory& tensorHandleFactory);
235 
236 LayerTestResult<uint8_t, 4> L2Pooling2dSize3Stride4Uint8Test(
237     armnn::IWorkloadFactory& workloadFactory,
238     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
239     const armnn::ITensorHandleFactory& tensorHandleFactory);
240 
241 LayerTestResult<int16_t, 4> L2Pooling2dSize3Stride4Int16Test(
242     armnn::IWorkloadFactory& workloadFactory,
243     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
244     const armnn::ITensorHandleFactory& tensorHandleFactory);
245 
246 LayerTestResult<float,   4> L2Pooling2dSize7Test(
247     armnn::IWorkloadFactory& workloadFactory,
248     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
249     const armnn::ITensorHandleFactory& tensorHandleFactory);
250 
251 LayerTestResult<uint8_t, 4> L2Pooling2dSize7Uint8Test(
252     armnn::IWorkloadFactory& workloadFactory,
253     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
254     const armnn::ITensorHandleFactory& tensorHandleFactory);
255 
256 LayerTestResult<int16_t, 4> L2Pooling2dSize7Int16Test(
257     armnn::IWorkloadFactory& workloadFactory,
258     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
259     const armnn::ITensorHandleFactory& tensorHandleFactory);
260 
261 LayerTestResult<float,   4> L2Pooling2dSize9Test(
262     armnn::IWorkloadFactory& workloadFactory,
263     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
264     const armnn::ITensorHandleFactory& tensorHandleFactory);
265 
266 LayerTestResult<uint8_t, 4> L2Pooling2dSize9Uint8Test(
267     armnn::IWorkloadFactory& workloadFactory,
268     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
269     const armnn::ITensorHandleFactory& tensorHandleFactory);
270 
271 LayerTestResult<int16_t, 4> L2Pooling2dSize9Int16Test(
272     armnn::IWorkloadFactory& workloadFactory,
273     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
274     const armnn::ITensorHandleFactory& tensorHandleFactory);
275 
276 LayerTestResult<float,   4> IgnorePaddingSimpleL2Pooling2dTest(
277     armnn::IWorkloadFactory& workloadFactory,
278     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
279     const armnn::ITensorHandleFactory& tensorHandleFactory);
280 
281 LayerTestResult<uint8_t, 4> IgnorePaddingSimpleL2Pooling2dUint8Test(
282     armnn::IWorkloadFactory& workloadFactory,
283     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
284     const armnn::ITensorHandleFactory& tensorHandleFactory);
285 
286 LayerTestResult<int16_t, 4> IgnorePaddingSimpleL2Pooling2dInt16Test(
287     armnn::IWorkloadFactory& workloadFactory,
288     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
289     const armnn::ITensorHandleFactory& tensorHandleFactory);
290 
291 LayerTestResult<float,   4> IgnorePaddingL2Pooling2dSize3Test(
292     armnn::IWorkloadFactory& workloadFactory,
293     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
294     const armnn::ITensorHandleFactory& tensorHandleFactory);
295 
296 LayerTestResult<uint8_t, 4> IgnorePaddingL2Pooling2dSize3Uint8Test(
297     armnn::IWorkloadFactory& workloadFactory,
298     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
299     const armnn::ITensorHandleFactory& tensorHandleFactory);
300 
301 LayerTestResult<int16_t, 4> IgnorePaddingL2Pooling2dSize3Int16Test(
302     armnn::IWorkloadFactory& workloadFactory,
303     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
304     const armnn::ITensorHandleFactory& tensorHandleFactory);
305 
306 LayerTestResult<float,   4> AsymmetricNonSquarePooling2dTest(
307     armnn::IWorkloadFactory& workloadFactory,
308     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
309     const armnn::ITensorHandleFactory& tensorHandleFactory);
310 
311 LayerTestResult<uint8_t, 4> AsymmetricNonSquarePooling2dUint8Test(
312     armnn::IWorkloadFactory& workloadFactory,
313     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
314     const armnn::ITensorHandleFactory& tensorHandleFactory);
315 
316 LayerTestResult<int16_t, 4> AsymmetricNonSquarePooling2dInt16Test(
317     armnn::IWorkloadFactory& workloadFactory,
318     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
319     const armnn::ITensorHandleFactory& tensorHandleFactory);
320 
321 LayerTestResult<float, 4> ComparePooling2dTest(
322     armnn::IWorkloadFactory& workloadFactory,
323     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
324     armnn::IWorkloadFactory& refWorkloadFactory,
325     const armnn::ITensorHandleFactory& tensorHandleFactory,
326     const armnn::ITensorHandleFactory& refTensorHandleFactory,
327     armnn::PoolingAlgorithm  poolingType);
328 
329 LayerTestResult<uint8_t, 4> ComparePooling2dUint8Test(
330     armnn::IWorkloadFactory& workloadFactory,
331     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
332     armnn::IWorkloadFactory& refWorkloadFactory,
333     const armnn::ITensorHandleFactory& tensorHandleFactory,
334     const armnn::ITensorHandleFactory& refTensorHandleFactory,
335     armnn::PoolingAlgorithm  poolingType);
336 
337 LayerTestResult<int16_t, 4> ComparePooling2dInt16Test(
338     armnn::IWorkloadFactory& workloadFactory,
339     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
340     armnn::IWorkloadFactory& refWorkloadFactory,
341     const armnn::ITensorHandleFactory& tensorHandleFactory,
342     const armnn::ITensorHandleFactory& refTensorHandleFactory,
343     armnn::PoolingAlgorithm  poolingType);
344