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