ArmNN
 22.08
ILayerSupport.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include <armnn/Deprecated.hpp>
8 #include <armnn/Descriptors.hpp>
9 #include <armnn/LstmParams.hpp>
10 #include <armnn/Optional.hpp>
12 
13 #include <cctype>
14 #include <functional>
15 #include <memory>
16 #include <vector>
17 
18 namespace armnn
19 {
20 
21 class TensorInfo;
22 
24 {
25 protected:
27  virtual ~ILayerSupport() {}
28 
29 public:
30  virtual bool IsLayerSupported(const LayerType& type,
31  const std::vector<TensorInfo>& infos,
33  const Optional<LstmInputParamsInfo>& lstmParamsInfo = EmptyOptional(),
34  const Optional<QuantizedLstmInputParamsInfo>& quantizedLstmParamsInfo =
35  EmptyOptional(),
37 
38  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
39  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
40  virtual bool IsActivationSupported(const TensorInfo& input,
42  const ActivationDescriptor& descriptor,
44 
45  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
46  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
47  virtual bool IsAdditionSupported(const TensorInfo& input0,
49  const TensorInfo& output,
51 
52  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
53  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
54  virtual bool IsArgMinMaxSupported(const TensorInfo& input,
55  const TensorInfo& output,
56  const ArgMinMaxDescriptor& descriptor,
58 
59  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
60  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
61  virtual bool IsBatchNormalizationSupported(const TensorInfo& input,
62  const TensorInfo& output,
63  const TensorInfo& mean,
64  const TensorInfo& var,
65  const TensorInfo& beta,
66  const TensorInfo& gamma,
67  const BatchNormalizationDescriptor& descriptor,
69 
70  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
71  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
72  virtual bool IsBatchToSpaceNdSupported(const TensorInfo& input,
73  const TensorInfo& output,
74  const BatchToSpaceNdDescriptor& descriptor,
76 
77  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
78  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
79  virtual bool IsCastSupported(const TensorInfo& input,
80  const TensorInfo& output,
82 
83  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
84  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
85  virtual bool IsChannelShuffleSupported(const TensorInfo& input,
86  const TensorInfo& output,
87  const ChannelShuffleDescriptor& descriptor,
89 
90  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
91  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
92  virtual bool IsComparisonSupported(const TensorInfo& input0,
93  const TensorInfo& input1,
94  const TensorInfo& output,
95  const ComparisonDescriptor& descriptor,
97 
98  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
99  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
100  virtual bool IsConcatSupported(const std::vector<const TensorInfo*> inputs,
101  const TensorInfo& output,
102  const OriginsDescriptor& descriptor,
103  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
104 
105  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
106  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
107  virtual bool IsConstantSupported(const TensorInfo& output,
109 
110  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
111  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
112  virtual bool IsConvertBf16ToFp32Supported(const TensorInfo& input,
113  const TensorInfo& output,
114  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
115 
116  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
117  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
118  virtual bool IsConvertFp32ToBf16Supported(const TensorInfo& input,
119  const TensorInfo& output,
120  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
121 
122  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
123  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
124  virtual bool IsConvertFp16ToFp32Supported(const TensorInfo& input,
125  const TensorInfo& output,
126  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
127 
128  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
129  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
130  virtual bool IsConvertFp32ToFp16Supported(const TensorInfo& input,
131  const TensorInfo& output,
132  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
133 
134  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
135  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
136  virtual bool IsConvolution2dSupported(const TensorInfo& input,
137  const TensorInfo& output,
138  const Convolution2dDescriptor& descriptor,
139  const TensorInfo& weights,
140  const Optional<TensorInfo>& biases,
142 
143  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
144  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
145  virtual bool IsConvolution3dSupported(const TensorInfo& input,
146  const TensorInfo& output,
147  const Convolution3dDescriptor& descriptor,
148  const TensorInfo& weights,
149  const Optional<TensorInfo>& biases,
151 
152  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
153  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
154  virtual bool IsDebugSupported(const TensorInfo& input,
155  const TensorInfo& output,
156  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
157 
158  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
159  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
160  virtual bool IsDepthToSpaceSupported(const TensorInfo& input,
161  const TensorInfo& output,
162  const DepthToSpaceDescriptor& descriptor,
164 
165  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
166  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
167  virtual bool IsDepthwiseConvolutionSupported(
168  const TensorInfo& input,
169  const TensorInfo& output,
170  const DepthwiseConvolution2dDescriptor& descriptor,
171  const TensorInfo& weights,
172  const Optional<TensorInfo>& biases,
174 
175  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
176  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
177  virtual bool IsDequantizeSupported(const TensorInfo& input,
178  const TensorInfo& output,
179  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
180 
181  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
182  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
183  virtual bool IsDetectionPostProcessSupported(const TensorInfo& boxEncodings,
185  const TensorInfo& anchors,
186  const TensorInfo& detectionBoxes,
189  const TensorInfo& numDetections,
190  const DetectionPostProcessDescriptor& descriptor,
192 
193  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
194  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
195  virtual bool IsDilatedDepthwiseConvolutionSupported(
196  const TensorInfo& input,
197  const TensorInfo& output,
198  const DepthwiseConvolution2dDescriptor& descriptor,
199  const TensorInfo& weights,
200  const Optional<TensorInfo>& biases,
201  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
202 
203  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
204  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
205  virtual bool IsDivisionSupported(const TensorInfo& input0,
206  const TensorInfo& input1,
207  const TensorInfo& output,
208  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
209 
210  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
211  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
212  virtual bool IsElementwiseUnarySupported(const TensorInfo& input,
213  const TensorInfo& output,
214  const ElementwiseUnaryDescriptor& descriptor,
216 
217  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
218  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
219  virtual bool IsFakeQuantizationSupported(const TensorInfo& input,
220  const FakeQuantizationDescriptor& descriptor,
222 
223  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
224  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
225  virtual bool IsFillSupported(const TensorInfo& input,
226  const TensorInfo& output,
227  const FillDescriptor& descriptor,
229 
230  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
231  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
232  virtual bool IsFloorSupported(const TensorInfo& input,
233  const TensorInfo& output,
234  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
235 
236  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
237  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
238  virtual bool IsFullyConnectedSupported(const TensorInfo& input,
239  const TensorInfo& output,
240  const TensorInfo& weights,
241  const TensorInfo& biases,
242  const FullyConnectedDescriptor& descriptor,
244 
245  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
246  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
247  virtual bool IsGatherSupported(const TensorInfo& input0,
248  const TensorInfo& input1,
249  const TensorInfo& output,
250  const GatherDescriptor& descriptor,
252 
253  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
254  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
255  virtual bool IsInputSupported(const TensorInfo& input,
257 
258  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
259  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
260  virtual bool IsInstanceNormalizationSupported(
261  const TensorInfo& input,
262  const TensorInfo& output,
263  const InstanceNormalizationDescriptor& descriptor,
265 
266  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
267  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
268  virtual bool IsL2NormalizationSupported(const TensorInfo& input,
269  const TensorInfo& output,
270  const L2NormalizationDescriptor& descriptor,
272 
273  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
274  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
275  virtual bool IsLogicalBinarySupported(const TensorInfo& input0,
276  const TensorInfo& input1,
277  const TensorInfo& output,
278  const LogicalBinaryDescriptor& descriptor,
280 
281  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
282  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
283  virtual bool IsLogicalUnarySupported(const TensorInfo& input,
284  const TensorInfo& output,
285  const ElementwiseUnaryDescriptor& descriptor,
286  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
287 
288  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
289  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
290  virtual bool IsLogSoftmaxSupported(const TensorInfo& input,
291  const TensorInfo& output,
292  const LogSoftmaxDescriptor& descriptor,
294 
295  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
296  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
297  virtual bool IsLstmSupported(const TensorInfo& input,
299  const TensorInfo& cellStateIn,
300  const TensorInfo& scratchBuffer,
301  const TensorInfo& outputStateOut,
302  const TensorInfo& cellStateOut,
303  const TensorInfo& output,
304  const LstmDescriptor& descriptor,
307 
308  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
309  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
310  virtual bool IsMaximumSupported(const TensorInfo& input0,
311  const TensorInfo& input1,
312  const TensorInfo& output,
313  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
314 
315  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
316  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
317  virtual bool IsMeanSupported(const TensorInfo& input,
318  const TensorInfo& output,
319  const MeanDescriptor& descriptor,
321 
322  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
323  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
324  virtual bool IsMemCopySupported(const TensorInfo& input,
325  const TensorInfo& output,
326  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
327 
328  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
329  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
330  virtual bool IsMemImportSupported(const TensorInfo& input,
331  const TensorInfo& output,
332  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
333 
334  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
335  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
336  virtual bool IsMergeSupported(const TensorInfo& input0,
337  const TensorInfo& input1,
338  const TensorInfo& output,
339  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
340 
341  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
342  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
343  virtual bool IsMinimumSupported(const TensorInfo& input0,
344  const TensorInfo& input1,
345  const TensorInfo& ouput,
346  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
347 
348  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
349  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
350  virtual bool IsMultiplicationSupported(const TensorInfo& input0,
351  const TensorInfo& input1,
352  const TensorInfo& output,
353  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
354 
355  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
356  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
357  virtual bool IsNormalizationSupported(const TensorInfo& input,
358  const TensorInfo& output,
359  const NormalizationDescriptor& descriptor,
361 
362  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
363  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
364  virtual bool IsOutputSupported(const TensorInfo& output,
365  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
366 
367  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
368  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
369  virtual bool IsPadSupported(const TensorInfo& input,
370  const TensorInfo& output,
371  const PadDescriptor& descriptor,
373 
374  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
375  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
376  virtual bool IsPermuteSupported(const TensorInfo& input,
377  const TensorInfo& output,
378  const PermuteDescriptor& descriptor,
380 
381  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
382  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
383  virtual bool IsPooling2dSupported(const TensorInfo& input,
384  const TensorInfo& output,
385  const Pooling2dDescriptor& descriptor,
387 
388  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
389  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
390  virtual bool IsPooling3dSupported(const TensorInfo& input,
391  const TensorInfo& output,
392  const Pooling3dDescriptor& descriptor,
394 
395  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
396  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
397  virtual bool IsPreCompiledSupported(const TensorInfo& input,
398  const PreCompiledDescriptor& descriptor,
400 
401  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
402  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
403  virtual bool IsPreluSupported(const TensorInfo& input,
405  const TensorInfo& output,
406  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
407 
408  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
409  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
410  virtual bool IsQuantizeSupported(const TensorInfo& input,
411  const TensorInfo& output,
412  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
413 
414  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
415  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
416  virtual bool IsQLstmSupported(const TensorInfo& input,
419  const TensorInfo& outputStateOut,
420  const TensorInfo& cellStateOut,
421  const TensorInfo& output,
422  const QLstmDescriptor& descriptor,
423  const LstmInputParamsInfo& paramsInfo,
425 
426  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
427  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
428  virtual bool IsQuantizedLstmSupported(const TensorInfo& input,
429  const TensorInfo& previousCellStateIn,
430  const TensorInfo& previousOutputIn,
431  const TensorInfo& cellStateOut,
432  const TensorInfo& output,
433  const QuantizedLstmInputParamsInfo& paramsInfo,
435 
436  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
437  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
438  virtual bool IsRankSupported(const TensorInfo& input,
439  const TensorInfo& output,
440  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
441 
442  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
443  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
444  virtual bool IsReduceSupported(const TensorInfo& input,
445  const TensorInfo& output,
446  const ReduceDescriptor& descriptor,
448 
449  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
450  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
451  virtual bool IsReshapeSupported(const TensorInfo& input,
452  const TensorInfo& output,
453  const ReshapeDescriptor& descriptor,
455 
456  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
457  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
458  virtual bool IsResizeSupported(const TensorInfo& input,
459  const TensorInfo& output,
460  const ResizeDescriptor& descriptor,
462 
463  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
464  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
465  virtual bool IsShapeSupported(const TensorInfo& input,
466  const TensorInfo& output,
467  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
468 
469  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
470  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
471  virtual bool IsSliceSupported(const TensorInfo& input,
472  const TensorInfo& output,
473  const SliceDescriptor& descriptor,
475 
476  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
477  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
478  virtual bool IsSoftmaxSupported(const TensorInfo& input,
479  const TensorInfo& output,
480  const SoftmaxDescriptor& descriptor,
482 
483  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
484  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
485  virtual bool IsSpaceToBatchNdSupported(const TensorInfo& input,
486  const TensorInfo& output,
487  const SpaceToBatchNdDescriptor& descriptor,
489 
490  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
491  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
492  virtual bool IsSpaceToDepthSupported(const TensorInfo& input,
493  const TensorInfo& output,
494  const SpaceToDepthDescriptor& descriptor,
496 
497  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
498  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
499  virtual bool IsSplitterSupported(const TensorInfo& input,
500  const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
501  const ViewsDescriptor& descriptor,
503 
504  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
505  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
506  virtual bool IsStackSupported(const std::vector<const TensorInfo*>& inputs,
507  const TensorInfo& output,
508  const StackDescriptor& descriptor,
509  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
510 
511  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
512  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
513  virtual bool IsStandInSupported(const std::vector<const TensorInfo*>& inputs,
514  const std::vector<const TensorInfo*>& outputs,
515  const StandInDescriptor& descriptor,
516  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
517 
518  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
519  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
520  virtual bool IsStridedSliceSupported(const TensorInfo& input,
521  const TensorInfo& output,
522  const StridedSliceDescriptor& descriptor,
524 
525  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
526  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
527  virtual bool IsSubtractionSupported(const TensorInfo& input0,
528  const TensorInfo& input1,
529  const TensorInfo& output,
530  Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
531 
532  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
533  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
534  virtual bool IsSwitchSupported(const TensorInfo& input0,
535  const TensorInfo& input1,
536  const TensorInfo& output0,
537  const TensorInfo& output1,
539 
540  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
541  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
543  const TensorInfo& input,
544  const TensorInfo& output,
545  const TransposeConvolution2dDescriptor& descriptor,
546  const TensorInfo& weights,
547  const Optional<TensorInfo>& biases,
549 
550  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
551  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
552  virtual bool IsTransposeSupported(const TensorInfo& input,
553  const TensorInfo& output,
554  const TransposeDescriptor& descriptor,
556 
557  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. "
558  "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08")
559  virtual bool IsUnidirectionalSequenceLstmSupported(
560  const TensorInfo& input,
561  const TensorInfo& outputStateIn,
562  const TensorInfo& cellStateIn,
563  const TensorInfo& outputStateOut,
564  const TensorInfo& cellStateOut,
565  const TensorInfo& output,
566  const LstmDescriptor& descriptor,
567  const LstmInputParamsInfo& paramsInfo,
569 
570 }; // class ILayerSupport
571 
573 
574 } // namespace armnn
bool IsMemCopySupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsSoftmaxSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsConcatSupported(const BackendId &backend, const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsOutputSupported(const BackendId &backend, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A ViewsDescriptor for the SplitterLayer.
const TensorInfo const TensorInfo & anchors
bool IsQuantizedLstmSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &previousCellStateIn, const TensorInfo &previousOutputIn, const TensorInfo &cellStateOut, const TensorInfo &output, const QuantizedLstmInputParamsInfo &paramsInfo, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsSwitchSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfo & paramsInfo
const TensorInfo & output
A ReshapeDescriptor for the ReshapeLayer.
bool IsLstmSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &scratchBuffer, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const LstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
bool IsBatchNormalizationSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const TensorInfo &mean, const TensorInfo &var, const TensorInfo &beta, const TensorInfo &gamma, const BatchNormalizationDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & gamma
const TensorInfo const TensorInfo & ouput
const std::vector< std::reference_wrapper< TensorInfo > > & outputs
bool IsDebugSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsPreCompiledSupported(const BackendId &backend, const TensorInfo &input, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A Convolution2dDescriptor for the Convolution2dLayer.
std::shared_ptr< ILayerSupport > ILayerSupportSharedPtr
bool IsDequantizeSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
virtual bool IsLayerSupported(const LayerType &type, const std::vector< TensorInfo > &infos, const BaseDescriptor &descriptor, const Optional< LstmInputParamsInfo > &lstmParamsInfo=EmptyOptional(), const Optional< QuantizedLstmInputParamsInfo > &quantizedLstmParamsInfo=EmptyOptional(), Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const
bool IsMaximumSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnSupported=nullptr, size_t reasonIfUnSupportedMaxLength=0)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsL2NormalizationSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsStridedSliceSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
bool IsTransposeConvolution2dSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsDepthwiseConvolutionSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
const TensorInfo & scores
const TensorInfo const TensorInfo & output0
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & detectionClasses
bool IsMergeSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
Copyright (c) 2021 ARM Limited and Contributors.
const TensorInfo const ActivationDescriptor & descriptor
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
bool IsResizeSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
bool IsSpaceToBatchNdSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo & outputStateIn
const TensorInfo const TensorInfo & previousCellStateIn
const TensorInfo const TensorInfo const TensorInfo & output1
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & numDetections
A ResizeBilinearDescriptor for the ResizeBilinearLayer.
const TensorInfo & alpha
bool IsFakeQuantizationSupported(const BackendId &backend, const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
Base class for all descriptors.
Definition: Descriptors.hpp:22
A StackDescriptor for the StackLayer.
bool IsSubtractionSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsFullyConnectedSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A PadDescriptor for the PadLayer.
const TensorInfo const TensorInfo & cellStateIn
An LstmDescriptor for the LstmLayer.
A L2NormalizationDescriptor for the L2NormalizationLayer.
const TensorInfo const TensorInfo const TensorInfo & var
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
An OriginsDescriptor for the ConcatLayer.
A ReduceDescriptor for the REDUCE operators.
bool IsDivisionSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A FullyConnectedDescriptor for the FullyConnectedLayer.
bool IsStackSupported(const BackendId &backend, const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const StackDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & outputStateOut
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
bool IsSpaceToDepthSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & cellStateOut
bool IsConvertFp32ToFp16Supported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A GatherDescriptor for the GatherLayer.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & beta
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
bool IsMinimumSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
A SliceDescriptor for the SliceLayer.
bool IsNormalizationSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A Convolution3dDescriptor for the Convolution3dLayer.
bool IsMeanSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo & previousOutputIn
A Pooling3dDescriptor for the Pooling3dLayer.
bool IsConvolution2dSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
bool IsInputSupported(const BackendId &backend, const TensorInfo &input, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsPermuteSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & detectionScores
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "23.08") virtual bool IsActivationSupported(const TensorInfo &input
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
Definition: Optional.hpp:32
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
bool IsConvertFp16ToFp32Supported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsBatchToSpaceNdSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A MeanDescriptor for the MeanLayer.
const TensorInfo const TensorInfo const TensorInfo & detectionBoxes
bool IsFloorSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
bool IsPreluSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsSplitterSupported(const BackendId &backend, const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsReduceSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo & input1
bool IsConstantSupported(const BackendId &backend, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsAdditionSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A PreCompiledDescriptor for the PreCompiledLayer.
bool IsPooling2dSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A Pooling2dDescriptor for the Pooling2dLayer.
A NormalizationDescriptor for the NormalizationLayer.
const TensorInfo const TensorInfo const TensorInfo & scratchBuffer
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
A ChannelShuffleDescriptor for the ChannelShuffle operator.
A SoftmaxDescriptor for the SoftmaxLayer.
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
bool IsActivationSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
bool IsPadSupported(const BackendId &backend, const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A FillDescriptor for the FillLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
bool IsMultiplicationSupported(const BackendId &backend, const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.
const TensorInfo const TensorInfo & mean
A PermuteDescriptor for the PermuteLayer.
LayerType
When adding a new layer, adapt also the LastLayer enum value in the enum class LayerType below...
Definition: Types.hpp:468
bool IsReshapeSupported(const BackendId &backend, const TensorInfo &input, const ReshapeDescriptor &descriptor, char *reasonIfUnsupported=nullptr, size_t reasonIfUnsupportedMaxLength=1024)
Deprecated in favor of IBackend and ILayerSupport interfaces.