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