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