xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. 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,   5> SimpleMaxPooling3dSize2x2x2Stride1x1x1Test(
16     armnn::IWorkloadFactory& workloadFactory,
17     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
18     const armnn::ITensorHandleFactory& tensorHandleFactory,
19     const armnn::DataLayout dataLayout);
20 
21 LayerTestResult<uint8_t, 5>SimpleMaxPooling3dSize2x2x2Stride1x1x1Uint8Test(
22     armnn::IWorkloadFactory& workloadFactory,
23     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
24     const armnn::ITensorHandleFactory& tensorHandleFactory,
25     const armnn::DataLayout dataLayout);
26 
27 LayerTestResult<int16_t, 5> SimpleMaxPooling3dSize2x2x2Stride1x1x1Int16Test(
28     armnn::IWorkloadFactory& workloadFactory,
29     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30     const armnn::ITensorHandleFactory& tensorHandleFactory,
31     const armnn::DataLayout dataLayout);
32 
33 LayerTestResult<float,   5> SimpleMaxPooling3dTest(
34     armnn::IWorkloadFactory& workloadFactory,
35     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
36     const armnn::ITensorHandleFactory& tensorHandleFactory,
37     const armnn::DataLayout dataLayout);
38 
39 LayerTestResult<uint8_t, 5> SimpleMaxPooling3dUint8Test(
40     armnn::IWorkloadFactory& workloadFactory,
41     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
42     const armnn::ITensorHandleFactory& tensorHandleFactory,
43     const armnn::DataLayout dataLayout);
44 
45 LayerTestResult<int16_t, 5> SimpleMaxPooling3dInt16Test(
46     armnn::IWorkloadFactory& workloadFactory,
47     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
48     const armnn::ITensorHandleFactory& tensorHandleFactory,
49     const armnn::DataLayout dataLayout);
50 
51 LayerTestResult<float,   5> IgnorePaddingSimpleMaxPooling3dTest(
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, 5> IgnorePaddingSimpleMaxPooling3dUint8Test(
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, 5> IgnorePaddingSimpleMaxPooling3dInt16Test(
64     armnn::IWorkloadFactory& workloadFactory,
65     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
66     const armnn::ITensorHandleFactory& tensorHandleFactory,
67     const armnn::DataLayout dataLayout);
68 
69 LayerTestResult<float,   5> SimpleAveragePooling3dTest(
70     armnn::IWorkloadFactory& workloadFactory,
71     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
72     const armnn::ITensorHandleFactory& tensorHandleFactory,
73     const armnn::DataLayout dataLayout);
74 
75 LayerTestResult<uint8_t, 5> SimpleAveragePooling3dUint8Test(
76     armnn::IWorkloadFactory& workloadFactory,
77     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
78     const armnn::ITensorHandleFactory& tensorHandleFactory,
79     const armnn::DataLayout dataLayout);
80 
81 LayerTestResult<int16_t, 5> SimpleAveragePooling3dInt16Test(
82     armnn::IWorkloadFactory& workloadFactory,
83     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
84     const armnn::ITensorHandleFactory& tensorHandleFactory,
85     const armnn::DataLayout dataLayout);
86 
87 LayerTestResult<float,   5> LargeTensorsAveragePooling3dTest(
88     armnn::IWorkloadFactory& workloadFactory,
89     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
90     const armnn::ITensorHandleFactory& tensorHandleFactory,
91     const armnn::DataLayout dataLayout);
92 
93 LayerTestResult<uint8_t, 5> LargeTensorsAveragePooling3dUint8Test(
94     armnn::IWorkloadFactory& workloadFactory,
95     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
96     const armnn::ITensorHandleFactory& tensorHandleFactory,
97     const armnn::DataLayout dataLayout);
98 
99 LayerTestResult<int16_t, 5> LargeTensorsAveragePooling3dInt16Test(
100     armnn::IWorkloadFactory& workloadFactory,
101     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
102     const armnn::ITensorHandleFactory& tensorHandleFactory,
103     const armnn::DataLayout dataLayout);
104 
105 LayerTestResult<float,   5> IgnorePaddingSimpleAveragePooling3dTest(
106     armnn::IWorkloadFactory& workloadFactory,
107     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
108     const armnn::ITensorHandleFactory& tensorHandleFactory,
109     const armnn::DataLayout dataLayout);
110 
111 LayerTestResult<uint8_t, 5> IgnorePaddingSimpleAveragePooling3dUint8Test(
112     armnn::IWorkloadFactory& workloadFactory,
113     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
114     const armnn::ITensorHandleFactory& tensorHandleFactory,
115     const armnn::DataLayout dataLayout);
116 
117 LayerTestResult<int16_t, 5> IgnorePaddingSimpleAveragePooling3dInt16Test(
118     armnn::IWorkloadFactory& workloadFactory,
119     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
120     const armnn::ITensorHandleFactory& tensorHandleFactory,
121     const armnn::DataLayout dataLayout);
122 
123 LayerTestResult<float,   5> SimpleL2Pooling3dTest(
124     armnn::IWorkloadFactory& workloadFactory,
125     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
126     const armnn::ITensorHandleFactory& tensorHandleFactory,
127     const armnn::DataLayout dataLayout);
128 
129 LayerTestResult<uint8_t, 5> SimpleL2Pooling3dUint8Test(
130     armnn::IWorkloadFactory& workloadFactory,
131     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
132     const armnn::ITensorHandleFactory& tensorHandleFactory,
133     const armnn::DataLayout dataLayout);
134 
135 LayerTestResult<int16_t, 5> SimpleL2Pooling3dInt16Test(
136     armnn::IWorkloadFactory& workloadFactory,
137     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
138     const armnn::ITensorHandleFactory& tensorHandleFactory,
139     const armnn::DataLayout dataLayout);
140 
141 LayerTestResult<float,   5> IgnorePaddingSimpleL2Pooling3dTest(
142     armnn::IWorkloadFactory& workloadFactory,
143     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
144     const armnn::ITensorHandleFactory& tensorHandleFactory,
145     const armnn::DataLayout dataLayout);
146 
147 LayerTestResult<uint8_t, 5> IgnorePaddingSimpleL2Pooling3dUint8Test(
148     armnn::IWorkloadFactory& workloadFactory,
149     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
150     const armnn::ITensorHandleFactory& tensorHandleFactory,
151     const armnn::DataLayout dataLayout);
152 
153 LayerTestResult<int16_t, 5> IgnorePaddingSimpleL2Pooling3dInt16Test(
154     armnn::IWorkloadFactory& workloadFactory,
155     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156     const armnn::ITensorHandleFactory& tensorHandleFactory,
157     const armnn::DataLayout dataLayout);
158 
159 LayerTestResult<float,   5> AsymmetricNonSquareMaxPooling3dTest(
160     armnn::IWorkloadFactory& workloadFactory,
161     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
162     const armnn::ITensorHandleFactory& tensorHandleFactory,
163     const armnn::DataLayout dataLayout);
164 
165 LayerTestResult<uint8_t, 5> AsymmetricNonSquareMaxPooling3dUint8Test(
166     armnn::IWorkloadFactory& workloadFactory,
167     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
168     const armnn::ITensorHandleFactory& tensorHandleFactor,
169     const armnn::DataLayout dataLayout);
170 
171 LayerTestResult<int16_t, 5> AsymmetricNonSquareMaxPooling3dInt16Test(
172     armnn::IWorkloadFactory& workloadFactory,
173     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
174     const armnn::ITensorHandleFactory& tensorHandleFactory,
175     const armnn::DataLayout dataLayout);
176 
177 LayerTestResult<float,   5> AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTest(
178         armnn::IWorkloadFactory& workloadFactory,
179         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
180         const armnn::ITensorHandleFactory& tensorHandleFactory,
181         const armnn::DataLayout dataLayout);
182 
183 LayerTestResult<uint8_t, 5> AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolUint8Test(
184         armnn::IWorkloadFactory& workloadFactory,
185         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
186         const armnn::ITensorHandleFactory& tensorHandleFactor,
187         const armnn::DataLayout dataLayout);
188 
189 LayerTestResult<int16_t, 5> AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolInt16Test(
190         armnn::IWorkloadFactory& workloadFactory,
191         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
192         const armnn::ITensorHandleFactory& tensorHandleFactory,
193         const armnn::DataLayout dataLayout);
194 
195 LayerTestResult<float,   5> AsymmetricNonSquareAveragePooling3dTest(
196     armnn::IWorkloadFactory& workloadFactory,
197     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
198     const armnn::ITensorHandleFactory& tensorHandleFactory,
199     const armnn::DataLayout dataLayout);
200 
201 LayerTestResult<uint8_t, 5> AsymmetricNonSquareAveragePooling3dUint8Test(
202     armnn::IWorkloadFactory& workloadFactory,
203     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
204     const armnn::ITensorHandleFactory& tensorHandleFactory,
205     const armnn::DataLayout dataLayout);
206 
207 LayerTestResult<int16_t, 5> AsymmetricNonSquareAveragePooling3dInt16Test(
208     armnn::IWorkloadFactory& workloadFactory,
209     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
210     const armnn::ITensorHandleFactory& tensorHandleFactory,
211     const armnn::DataLayout dataLayout);
212 
213 LayerTestResult<float,   5> AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTest(
214         armnn::IWorkloadFactory& workloadFactory,
215         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
216         const armnn::ITensorHandleFactory& tensorHandleFactory,
217         const armnn::DataLayout dataLayout);
218 
219 LayerTestResult<uint8_t, 5> AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolUint8Test(
220         armnn::IWorkloadFactory& workloadFactory,
221         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
222         const armnn::ITensorHandleFactory& tensorHandleFactory,
223         const armnn::DataLayout dataLayout);
224 
225 LayerTestResult<int16_t, 5> AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolInt16Test(
226         armnn::IWorkloadFactory& workloadFactory,
227         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
228         const armnn::ITensorHandleFactory& tensorHandleFactory,
229         const armnn::DataLayout dataLayout);
230 
231 LayerTestResult<float,   5> AsymmetricNonSquareL2Pooling3dTest(
232     armnn::IWorkloadFactory& workloadFactory,
233     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
234     const armnn::ITensorHandleFactory& tensorHandleFactory,
235     const armnn::DataLayout dataLayout);
236 
237 LayerTestResult<uint8_t, 5> AsymmetricNonSquareL2Pooling3dUint8Test(
238     armnn::IWorkloadFactory& workloadFactory,
239     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
240     const armnn::ITensorHandleFactory& tensorHandleFactory,
241     const armnn::DataLayout dataLayout);
242 
243 LayerTestResult<int16_t, 5> AsymmetricNonSquareL2Pooling3dInt16Test(
244     armnn::IWorkloadFactory& workloadFactory,
245     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
246     const armnn::ITensorHandleFactory& tensorHandleFactory,
247     const armnn::DataLayout dataLayout);
248 
249 LayerTestResult<float,   5> AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTest(
250         armnn::IWorkloadFactory& workloadFactory,
251         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
252         const armnn::ITensorHandleFactory& tensorHandleFactory,
253         const armnn::DataLayout dataLayout);
254 
255 LayerTestResult<uint8_t, 5> AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolUint8Test(
256         armnn::IWorkloadFactory& workloadFactory,
257         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
258         const armnn::ITensorHandleFactory& tensorHandleFactory,
259         const armnn::DataLayout dataLayout);
260 
261 LayerTestResult<int16_t, 5> AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolInt16Test(
262         armnn::IWorkloadFactory& workloadFactory,
263         const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
264         const armnn::ITensorHandleFactory& tensorHandleFactory,
265         const armnn::DataLayout dataLayout);
266 
267 LayerTestResult<float,   5> ComparePooling3dTest(
268     armnn::IWorkloadFactory& workloadFactory,
269     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
270     armnn::IWorkloadFactory& refWorkloadFactory,
271     const armnn::ITensorHandleFactory& tensorHandleFactory,
272     const armnn::ITensorHandleFactory& refTensorHandleFactory,
273     armnn::PoolingAlgorithm  poolingType,
274     const armnn::DataLayout dataLayout);
275 
276 LayerTestResult<uint8_t, 5> ComparePooling3dUint8Test(
277     armnn::IWorkloadFactory& workloadFactory,
278     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
279     armnn::IWorkloadFactory& refWorkloadFactory,
280     const armnn::ITensorHandleFactory& tensorHandleFactory,
281     const armnn::ITensorHandleFactory& refTensorHandleFactory,
282     armnn::PoolingAlgorithm  poolingType,
283     const armnn::DataLayout dataLayout);
284 
285 LayerTestResult<int16_t, 5> ComparePooling3dInt16Test(
286     armnn::IWorkloadFactory& workloadFactory,
287     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
288     armnn::IWorkloadFactory& refWorkloadFactory,
289     const armnn::ITensorHandleFactory& tensorHandleFactory,
290     const armnn::ITensorHandleFactory& refTensorHandleFactory,
291     armnn::PoolingAlgorithm  poolingType,
292     const armnn::DataLayout dataLayout);
293