1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 #pragma once 6 7 #include <armnn/Deprecated.hpp> 8 #include <armnn/DescriptorsFwd.hpp> 9 #include <armnn/Optional.hpp> 10 #include <armnn/Tensor.hpp> 11 #include <armnn/Types.hpp> 12 #include "LstmParams.hpp" 13 #include "QuantizedLstmParams.hpp" 14 15 namespace armnn 16 { 17 18 /// Deprecated in favor of IBackend and ILayerSupport interfaces 19 bool IsActivationSupported(const BackendId& backend, 20 const TensorInfo& input, 21 const TensorInfo& output, 22 const ActivationDescriptor& descriptor, 23 char* reasonIfUnsupported = nullptr, 24 size_t reasonIfUnsupportedMaxLength = 1024); 25 26 /// Deprecated in favor of IBackend and ILayerSupport interfaces 27 bool IsAdditionSupported(const BackendId& backend, 28 const TensorInfo& input0, 29 const TensorInfo& input1, 30 const TensorInfo& output, 31 char* reasonIfUnsupported = nullptr, 32 size_t reasonIfUnsupportedMaxLength = 1024); 33 34 /// Deprecated in favor of IBackend and ILayerSupport interfaces 35 bool IsBatchNormalizationSupported(const BackendId& backend, 36 const TensorInfo& input, 37 const TensorInfo& output, 38 const TensorInfo& mean, 39 const TensorInfo& var, 40 const TensorInfo& beta, 41 const TensorInfo& gamma, 42 const BatchNormalizationDescriptor& descriptor, 43 char* reasonIfUnsupported = nullptr, 44 size_t reasonIfUnsupportedMaxLength = 1024); 45 46 /// Deprecated in favor of IBackend and ILayerSupport interfaces 47 bool IsBatchToSpaceNdSupported(const BackendId& backend, 48 const TensorInfo& input, 49 const TensorInfo& output, 50 const BatchToSpaceNdDescriptor& descriptor, 51 char* reasonIfUnsupported = nullptr, 52 size_t reasonIfUnsupportedMaxLength = 1024); 53 54 /// Deprecated in favor of IBackend and ILayerSupport interfaces 55 bool IsConcatSupported(const BackendId& backend, 56 const std::vector<const TensorInfo*> inputs, 57 const TensorInfo& output, 58 const OriginsDescriptor& descriptor, 59 char* reasonIfUnsupported = nullptr, 60 size_t reasonIfUnsupportedMaxLength = 1024); 61 62 /// Deprecated in favor of IBackend and ILayerSupport interfaces 63 bool IsConstantSupported(const BackendId& backend, 64 const TensorInfo& output, 65 char* reasonIfUnsupported = nullptr, 66 size_t reasonIfUnsupportedMaxLength = 1024); 67 68 /// Deprecated in favor of IBackend and ILayerSupport interfaces 69 bool IsConvertFp16ToFp32Supported(const BackendId& backend, 70 const TensorInfo& input, 71 const TensorInfo& output, 72 char* reasonIfUnsupported = nullptr, 73 size_t reasonIfUnsupportedMaxLength = 1024); 74 75 /// Deprecated in favor of IBackend and ILayerSupport interfaces 76 bool IsConvertFp32ToFp16Supported(const BackendId& backend, 77 const TensorInfo& input, 78 const TensorInfo& output, 79 char* reasonIfUnsupported = nullptr, 80 size_t reasonIfUnsupportedMaxLength = 1024); 81 82 /// Deprecated in favor of IBackend and ILayerSupport interfaces 83 bool IsConvolution2dSupported(const BackendId& backend, 84 const TensorInfo& input, 85 const TensorInfo& output, 86 const Convolution2dDescriptor& descriptor, 87 const TensorInfo& weights, 88 const Optional<TensorInfo>& biases, 89 char* reasonIfUnsupported = nullptr, 90 size_t reasonIfUnsupportedMaxLength = 1024); 91 92 /// Deprecated in favor of IBackend and ILayerSupport interfaces 93 bool IsDebugSupported(const BackendId& backend, 94 const TensorInfo& input, 95 const TensorInfo& output, 96 char* reasonIfUnsupported = nullptr, 97 size_t reasonIfUnsupportedMaxLength = 1024); 98 99 /// Deprecated in favor of IBackend and ILayerSupport interfaces 100 bool IsDepthwiseConvolutionSupported(const BackendId& backend, 101 const TensorInfo& input, 102 const TensorInfo& output, 103 const DepthwiseConvolution2dDescriptor& descriptor, 104 const TensorInfo& weights, 105 const Optional<TensorInfo>& biases, 106 char* reasonIfUnsupported = nullptr, 107 size_t reasonIfUnsupportedMaxLength = 1024); 108 109 /// Deprecated in favor of IBackend and ILayerSupport interfaces 110 bool IsDequantizeSupported(const BackendId& backend, 111 const TensorInfo& input, 112 const TensorInfo& output, 113 char* reasonIfUnsupported = nullptr, 114 size_t reasonIfUnsupportedMaxLength = 1024); 115 116 /// Deprecated in favor of IBackend and ILayerSupport interfaces 117 bool IsDivisionSupported(const BackendId& backend, 118 const TensorInfo& input0, 119 const TensorInfo& input1, 120 const TensorInfo& output, 121 char* reasonIfUnsupported = nullptr, 122 size_t reasonIfUnsupportedMaxLength = 1024); 123 124 /// Deprecated in favor of IBackend and ILayerSupport interfaces 125 bool IsEqualSupported(const BackendId& backend, 126 const TensorInfo& input0, 127 const TensorInfo& input1, 128 const TensorInfo& output, 129 char* reasonIfUnsupported = nullptr, 130 size_t reasonIfUnsupportedMaxLength = 1024); 131 132 /// Deprecated in favor of IBackend and ILayerSupport interfaces 133 bool IsFakeQuantizationSupported(const BackendId& backend, 134 const TensorInfo& input, 135 const FakeQuantizationDescriptor& descriptor, 136 char* reasonIfUnsupported = nullptr, 137 size_t reasonIfUnsupportedMaxLength = 1024); 138 139 /// Deprecated in favor of IBackend and ILayerSupport interfaces 140 bool IsFloorSupported(const BackendId& backend, 141 const TensorInfo& input, 142 const TensorInfo& output, 143 char* reasonIfUnsupported = nullptr, 144 size_t reasonIfUnsupportedMaxLength = 1024); 145 146 /// Deprecated in favor of IBackend and ILayerSupport interfaces 147 bool IsFullyConnectedSupported(const BackendId& backend, 148 const TensorInfo& input, 149 const TensorInfo& output, 150 const TensorInfo& weights, 151 const TensorInfo& biases, 152 const FullyConnectedDescriptor& descriptor, 153 char* reasonIfUnsupported = nullptr, 154 size_t reasonIfUnsupportedMaxLength = 1024); 155 156 /// Deprecated in favor of IBackend and ILayerSupport interfaces 157 bool IsGreaterSupported(const BackendId& backend, 158 const TensorInfo& input0, 159 const TensorInfo& input1, 160 const TensorInfo& output, 161 char* reasonIfUnsupported = nullptr, 162 size_t reasonIfUnsupportedMaxLength = 1024); 163 164 /// Deprecated in favor of IBackend and ILayerSupport interfaces 165 bool IsInputSupported(const BackendId& backend, 166 const TensorInfo& input, 167 char* reasonIfUnsupported = nullptr, 168 size_t reasonIfUnsupportedMaxLength = 1024); 169 170 /// Deprecated in favor of IBackend and ILayerSupport interfaces 171 bool IsL2NormalizationSupported(const BackendId& backend, 172 const TensorInfo& input, 173 const TensorInfo& output, 174 const L2NormalizationDescriptor& descriptor, 175 char* reasonIfUnsupported = nullptr, 176 size_t reasonIfUnsupportedMaxLength = 1024); 177 178 /// Deprecated in favor of IBackend and ILayerSupport interfaces 179 bool IsLstmSupported(const BackendId& backend, const TensorInfo& input, const TensorInfo& outputStateIn, 180 const TensorInfo& cellStateIn, const TensorInfo& scratchBuffer, 181 const TensorInfo& outputStateOut, const TensorInfo& cellStateOut, 182 const TensorInfo& output, const LstmDescriptor& descriptor, 183 const LstmInputParamsInfo& paramsInfo, char* reasonIfUnsupported = nullptr, 184 size_t reasonIfUnsupportedMaxLength = 1024); 185 186 /// Deprecated in favor of IBackend and ILayerSupport interfaces 187 bool IsMaximumSupported(const BackendId& backend, 188 const TensorInfo& input0, 189 const TensorInfo& input1, 190 const TensorInfo& output, 191 char* reasonIfUnSupported = nullptr, 192 size_t reasonIfUnSupportedMaxLength = 0); 193 194 /// Deprecated in favor of IBackend and ILayerSupport interfaces 195 bool IsMeanSupported(const BackendId& backend, 196 const TensorInfo& input, 197 const TensorInfo& output, 198 const MeanDescriptor& descriptor, 199 char* reasonIfUnsupported = nullptr, 200 size_t reasonIfUnsupportedMaxLength = 1024); 201 202 /// Deprecated in favor of IBackend and ILayerSupport interfaces 203 bool IsMemCopySupported(const BackendId& backend, 204 const TensorInfo& input, 205 const TensorInfo& output, 206 char* reasonIfUnsupported = nullptr, 207 size_t reasonIfUnsupportedMaxLength = 1024); 208 209 /// Deprecated in favor of IBackend and ILayerSupport interfaces 210 bool IsMergeSupported(const BackendId& backend, 211 const TensorInfo& input0, 212 const TensorInfo& input1, 213 const TensorInfo& output, 214 char* reasonIfUnsupported = nullptr, 215 size_t reasonIfUnsupportedMaxLength = 1024); 216 217 /// Deprecated in favor of IBackend and ILayerSupport interfaces 218 ARMNN_DEPRECATED_MSG("Use IsConcatSupported instead") 219 bool IsMergerSupported(const BackendId& backend, 220 const std::vector<const TensorInfo*> inputs, 221 const TensorInfo& output, 222 const OriginsDescriptor& descriptor, 223 char* reasonIfUnsupported = nullptr, 224 size_t reasonIfUnsupportedMaxLength = 1024); 225 226 /// Deprecated in favor of IBackend and ILayerSupport interfaces 227 bool IsMinimumSupported(const BackendId& backend, 228 const TensorInfo& input0, 229 const TensorInfo& input1, 230 const TensorInfo& output, 231 char* reasonIfUnsupported = nullptr, 232 size_t reasonIfUnsupportedMaxLength = 1024); 233 234 /// Deprecated in favor of IBackend and ILayerSupport interfaces 235 bool IsMultiplicationSupported(const BackendId& backend, 236 const TensorInfo& input0, 237 const TensorInfo& input1, 238 const TensorInfo& output, 239 char* reasonIfUnsupported = nullptr, 240 size_t reasonIfUnsupportedMaxLength = 1024); 241 242 /// Deprecated in favor of IBackend and ILayerSupport interfaces 243 bool IsNormalizationSupported(const BackendId& backend, 244 const TensorInfo& input, 245 const TensorInfo& output, 246 const NormalizationDescriptor& descriptor, 247 char* reasonIfUnsupported = nullptr, 248 size_t reasonIfUnsupportedMaxLength = 1024); 249 250 /// Deprecated in favor of IBackend and ILayerSupport interfaces 251 bool IsOutputSupported(const BackendId& backend, 252 const TensorInfo& output, 253 char* reasonIfUnsupported = nullptr, 254 size_t reasonIfUnsupportedMaxLength = 1024); 255 256 /// Deprecated in favor of IBackend and ILayerSupport interfaces 257 bool IsPadSupported(const BackendId& backend, 258 const TensorInfo& input, 259 const TensorInfo& output, 260 const PadDescriptor& descriptor, 261 char* reasonIfUnsupported = nullptr, 262 size_t reasonIfUnsupportedMaxLength = 1024); 263 264 /// Deprecated in favor of IBackend and ILayerSupport interfaces 265 bool IsPermuteSupported(const BackendId& backend, 266 const TensorInfo& input, 267 const TensorInfo& output, 268 const PermuteDescriptor& descriptor, 269 char* reasonIfUnsupported = nullptr, 270 size_t reasonIfUnsupportedMaxLength = 1024); 271 272 /// Deprecated in favor of IBackend and ILayerSupport interfaces 273 bool IsPreCompiledSupported(const BackendId& backend, 274 const TensorInfo& input, 275 char* reasonIfUnsupported = nullptr, 276 size_t reasonIfUnsupportedMaxLength = 1024); 277 278 /// Deprecated in favor of IBackend and ILayerSupport interfaces 279 bool IsPreluSupported(const BackendId& backend, 280 const TensorInfo& input, 281 const TensorInfo& alpha, 282 const TensorInfo& output, 283 char* reasonIfUnsupported = nullptr, 284 size_t reasonIfUnsupportedMaxLength = 1024); 285 286 /// Deprecated in favor of IBackend and ILayerSupport interfaces 287 bool IsPooling2dSupported(const BackendId& backend, 288 const TensorInfo& input, 289 const TensorInfo& output, 290 const Pooling2dDescriptor& descriptor, 291 char* reasonIfUnsupported = nullptr, 292 size_t reasonIfUnsupportedMaxLength = 1024); 293 294 /// Deprecated in favor of IBackend and ILayerSupport interfaces 295 bool IsQuantizedLstmSupported(const BackendId& backend, 296 const TensorInfo& input, 297 const TensorInfo& previousCellStateIn, 298 const TensorInfo& previousOutputIn, 299 const TensorInfo& cellStateOut, 300 const TensorInfo& output, 301 const QuantizedLstmInputParamsInfo& paramsInfo, 302 char* reasonIfUnsupported = nullptr, 303 size_t reasonIfUnsupportedMaxLength = 1024); 304 305 /// Deprecated in favor of IBackend and ILayerSupport interfaces 306 bool IsReshapeSupported(const BackendId& backend, 307 const TensorInfo& input, 308 const ReshapeDescriptor& descriptor, 309 char* reasonIfUnsupported = nullptr, 310 size_t reasonIfUnsupportedMaxLength = 1024); 311 312 /// Deprecated in favor of IBackend and ILayerSupport interfaces 313 ARMNN_DEPRECATED_MSG("Use IsResizeSupported instead") 314 bool IsResizeBilinearSupported(const BackendId& backend, 315 const TensorInfo& input, 316 const TensorInfo& output, 317 char* reasonIfUnsupported = nullptr, 318 size_t reasonIfUnsupportedMaxLength = 1024); 319 320 /// Deprecated in favor of IBackend and ILayerSupport interfaces 321 bool IsResizeSupported(const BackendId& backend, 322 const TensorInfo& input, 323 const TensorInfo& output, 324 const ResizeDescriptor& descriptor, 325 char* reasonIfUnsupported = nullptr, 326 size_t reasonIfUnsupportedMaxLength = 1024); 327 328 /// Deprecated in favor of IBackend and ILayerSupport interfaces 329 bool IsRsqrtSupported(const BackendId& backend, 330 const TensorInfo& input, 331 const TensorInfo& output, 332 char* reasonIfUnsupported = nullptr, 333 size_t reasonIfUnsupportedMaxLength = 1024); 334 335 /// Deprecated in favor of IBackend and ILayerSupport interfaces 336 bool IsSoftmaxSupported(const BackendId& backend, 337 const TensorInfo& input, 338 const TensorInfo& output, 339 const SoftmaxDescriptor& descriptor, 340 char* reasonIfUnsupported = nullptr, 341 size_t reasonIfUnsupportedMaxLength = 1024); 342 343 /// Deprecated in favor of IBackend and ILayerSupport interfaces 344 bool IsSpaceToBatchNdSupported(const BackendId& backend, 345 const TensorInfo& input, 346 const TensorInfo& output, 347 const SpaceToBatchNdDescriptor& descriptor, 348 char* reasonIfUnsupported = nullptr, 349 size_t reasonIfUnsupportedMaxLength = 1024); 350 351 /// Deprecated in favor of IBackend and ILayerSupport interfaces 352 bool IsSpaceToDepthSupported(const BackendId& backend, 353 const TensorInfo& input, 354 const TensorInfo& output, 355 const SpaceToDepthDescriptor& descriptor, 356 char* reasonIfUnsupported = nullptr, 357 size_t reasonIfUnsupportedMaxLength = 1024); 358 359 ARMNN_DEPRECATED_MSG("Use IsSplitterSupported with outputs instead") 360 bool IsSplitterSupported(const BackendId& backend, 361 const TensorInfo& input, 362 const ViewsDescriptor& descriptor, 363 char* reasonIfUnsupported = nullptr, 364 size_t reasonIfUnsupportedMaxLength = 1024); 365 366 /// Deprecated in favor of IBackend and ILayerSupport interfaces 367 bool IsSplitterSupported(const BackendId& backend, 368 const TensorInfo& input, 369 const std::vector<std::reference_wrapper<TensorInfo>>& outputs, 370 const ViewsDescriptor& descriptor, 371 char* reasonIfUnsupported = nullptr, 372 size_t reasonIfUnsupportedMaxLength = 1024); 373 374 /// Deprecated in favor of IBackend and ILayerSupport interfaces 375 bool IsStackSupported(const BackendId& backend, 376 const std::vector<const TensorInfo*> inputs, 377 const TensorInfo& output, 378 const StackDescriptor& descriptor, 379 char* reasonIfUnsupported = nullptr, 380 size_t reasonIfUnsupportedMaxLength = 1024); 381 382 /// Deprecated in favor of IBackend and ILayerSupport interfaces 383 bool IsStridedSliceSupported(const BackendId& backend, 384 const TensorInfo& input, 385 const TensorInfo& output, 386 const StridedSliceDescriptor& descriptor, 387 char* reasonIfUnsupported = nullptr, 388 size_t reasonIfUnsupportedMaxLength = 1024); 389 390 /// Deprecated in favor of IBackend and ILayerSupport interfaces 391 bool IsSubtractionSupported(const BackendId& backend, 392 const TensorInfo& input0, 393 const TensorInfo& input1, 394 const TensorInfo& output, 395 char* reasonIfUnsupported = nullptr, 396 size_t reasonIfUnsupportedMaxLength = 1024); 397 398 /// Deprecated in favor of IBackend and ILayerSupport interfaces 399 bool IsSwitchSupported(const BackendId& backend, 400 const TensorInfo& input0, 401 const TensorInfo& input1, 402 const TensorInfo& output0, 403 const TensorInfo& output1, 404 char* reasonIfUnsupported = nullptr, 405 size_t reasonIfUnsupportedMaxLength = 1024); 406 407 /// Deprecated in favor of IBackend and ILayerSupport interfaces 408 bool IsTransposeConvolution2dSupported(const BackendId& backend, 409 const TensorInfo& input, 410 const TensorInfo& output, 411 const TransposeConvolution2dDescriptor& descriptor, 412 const TensorInfo& weights, 413 const Optional<TensorInfo>& biases, 414 char* reasonIfUnsupported = nullptr, 415 size_t reasonIfUnsupportedMaxLength = 1024); 416 } 417