ArmNN
 23.08
BackendHelper.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017-2019,2021-2023 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnn/BackendId.hpp>
10 #include <armnn/Descriptors.hpp>
11 #include <armnn/Optional.hpp>
12 #include <functional>
13 #include <memory>
14 #include <string>
15 #include <utility>
16 #include <vector>
17 
18 namespace armnn
19 {
20 class ILayerSupport;
21 class TensorInfo;
22 struct LstmInputParamsInfo;
23 struct QuantizedLstmInputParamsInfo;
24 
25 // This handle calls its own IsXXXLayerSupported() functions which then call the polymorphic
26 // ILayerSupport::IsXXXLayerSupported() at the framework level so there is no risk of VTable misalignment.
27 // This is to make ILayerSupport in its abstract form a solely Backend interface alongside a
28 // separate ABI stable frontend class free of virtual functions via an added layer of indirection.
30 {
31 public:
32  explicit LayerSupportHandle(std::shared_ptr<ILayerSupport> layerSupport)
33  : m_LayerSupport(std::move(layerSupport)), m_BackendId(Compute::Undefined) {};
34 
35  explicit LayerSupportHandle(std::shared_ptr<ILayerSupport> layerSupport, const BackendId& backendId)
36  : m_LayerSupport(std::move(layerSupport)), m_BackendId(backendId) {};
37 
38  bool IsBackendRegistered() const;
39 
40  bool IsActivationSupported(const TensorInfo& input,
41  const TensorInfo& output,
42  const ActivationDescriptor& descriptor,
43  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
44 
45  ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use IsElementwiseBinarySupported instead", "24.02")
46  bool IsAdditionSupported(const TensorInfo& input0,
47  const TensorInfo& input1,
48  const TensorInfo& output,
49  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
50 
51  bool IsArgMinMaxSupported(const TensorInfo& input,
52  const TensorInfo& output,
53  const ArgMinMaxDescriptor& descriptor,
54  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
55 
56  bool IsBatchMatMulSupported(const TensorInfo& input0,
57  const TensorInfo& input1,
58  const TensorInfo& output,
59  const BatchMatMulDescriptor& descriptor,
60  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
61 
62  bool IsBatchNormalizationSupported(const TensorInfo& input,
63  const TensorInfo& output,
64  const TensorInfo& mean,
65  const TensorInfo& var,
66  const TensorInfo& beta,
67  const TensorInfo& gamma,
68  const BatchNormalizationDescriptor& descriptor,
69  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
70 
71  bool IsBatchToSpaceNdSupported(const TensorInfo& input,
72  const TensorInfo& output,
73  const BatchToSpaceNdDescriptor& descriptor,
74  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
75 
76  bool IsCastSupported(const TensorInfo& input,
77  const TensorInfo& output,
78  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
79 
80  bool IsChannelShuffleSupported(const TensorInfo& input,
81  const TensorInfo& output,
82  const ChannelShuffleDescriptor& descriptor,
83  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
84 
85  bool IsComparisonSupported(const TensorInfo& input0,
86  const TensorInfo& input1,
87  const TensorInfo& output,
88  const ComparisonDescriptor& descriptor,
89  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
90 
91  bool IsConcatSupported(const std::vector<const TensorInfo*> inputs,
92  const TensorInfo& output,
93  const OriginsDescriptor& descriptor,
94  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
95 
96  bool IsConstantSupported(const TensorInfo& output,
97  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
98 
99  bool IsConvertFp16ToFp32Supported(const TensorInfo& input,
100  const TensorInfo& output,
101  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
102 
103  bool IsConvertFp32ToFp16Supported(const TensorInfo& input,
104  const TensorInfo& output,
105  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
106 
107  bool IsConvolution2dSupported(const TensorInfo& input,
108  const TensorInfo& output,
109  const Convolution2dDescriptor& descriptor,
110  const TensorInfo& weights,
111  const Optional<TensorInfo>& biases,
112  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
113 
114  bool IsConvolution3dSupported(const TensorInfo& input,
115  const TensorInfo& output,
116  const Convolution3dDescriptor& descriptor,
117  const TensorInfo& weights,
118  const Optional<TensorInfo>& biases,
119  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
120 
121  bool IsDebugSupported(const TensorInfo& input,
122  const TensorInfo& output,
123  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
124 
125  bool IsDepthToSpaceSupported(const TensorInfo& input,
126  const TensorInfo& output,
127  const DepthToSpaceDescriptor& descriptor,
128  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
129 
131  const TensorInfo& input,
132  const TensorInfo& output,
133  const DepthwiseConvolution2dDescriptor& descriptor,
134  const TensorInfo& weights,
135  const Optional<TensorInfo>& biases,
136  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
137 
138  bool IsDequantizeSupported(const TensorInfo& input,
139  const TensorInfo& output,
140  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
141 
142  bool IsDetectionPostProcessSupported(const TensorInfo& boxEncodings,
143  const TensorInfo& scores,
144  const TensorInfo& anchors,
145  const TensorInfo& detectionBoxes,
146  const TensorInfo& detectionClasses,
147  const TensorInfo& detectionScores,
148  const TensorInfo& numDetections,
149  const DetectionPostProcessDescriptor& descriptor,
150  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
151 
153  const TensorInfo& input,
154  const TensorInfo& output,
155  const DepthwiseConvolution2dDescriptor& descriptor,
156  const TensorInfo& weights,
157  const Optional<TensorInfo>& biases,
158  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
159 
161  bool IsDivisionSupported(const TensorInfo& input0,
162  const TensorInfo& input1,
163  const TensorInfo& output,
164  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
165 
166  bool IsElementwiseBinarySupported(const TensorInfo& input0,
167  const TensorInfo& input1,
168  const TensorInfo& output,
169  const ElementwiseBinaryDescriptor& descriptor,
170  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
171 
172  bool IsElementwiseUnarySupported(const TensorInfo& input,
173  const TensorInfo& output,
174  const ElementwiseUnaryDescriptor& descriptor,
175  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
176 
177  bool IsFakeQuantizationSupported(const TensorInfo& input,
178  const FakeQuantizationDescriptor& descriptor,
179  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
180 
181  bool IsFillSupported(const TensorInfo& input,
182  const TensorInfo& output,
183  const FillDescriptor& descriptor,
184  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
185 
186  bool IsFloorSupported(const TensorInfo& input,
187  const TensorInfo& output,
188  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
189 
190  bool IsFullyConnectedSupported(const TensorInfo& input,
191  const TensorInfo& output,
192  const TensorInfo& weights,
193  const TensorInfo& biases,
194  const FullyConnectedDescriptor& descriptor,
195  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
196 
197  bool IsGatherSupported(const TensorInfo& input0,
198  const TensorInfo& input1,
199  const TensorInfo& output,
200  const GatherDescriptor& descriptor,
201  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
202 
203  bool IsGatherNdSupported(const TensorInfo& input0,
204  const TensorInfo& input1,
205  const TensorInfo& output,
206  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
207 
208  bool IsInputSupported(const TensorInfo& input,
209  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
210 
212  const TensorInfo& input,
213  const TensorInfo& output,
214  const InstanceNormalizationDescriptor& descriptor,
215  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
216 
217  bool IsL2NormalizationSupported(const TensorInfo& input,
218  const TensorInfo& output,
219  const L2NormalizationDescriptor& descriptor,
220  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
221 
222  bool IsLogicalBinarySupported(const TensorInfo& input0,
223  const TensorInfo& input1,
224  const TensorInfo& output,
225  const LogicalBinaryDescriptor& descriptor,
226  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
227 
228  bool IsLogicalUnarySupported(const TensorInfo& input,
229  const TensorInfo& output,
230  const ElementwiseUnaryDescriptor& descriptor,
231  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
232 
233  bool IsLogSoftmaxSupported(const TensorInfo& input,
234  const TensorInfo& output,
235  const LogSoftmaxDescriptor& descriptor,
236  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
237 
238  bool IsLstmSupported(const TensorInfo& input,
239  const TensorInfo& outputStateIn,
240  const TensorInfo& cellStateIn,
241  const TensorInfo& scratchBuffer,
242  const TensorInfo& outputStateOut,
243  const TensorInfo& cellStateOut,
244  const TensorInfo& output,
245  const LstmDescriptor& descriptor,
246  const LstmInputParamsInfo& paramsInfo,
247  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
248 
250  bool IsMaximumSupported(const TensorInfo& input0,
251  const TensorInfo& input1,
252  const TensorInfo& output,
253  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
254 
255  bool IsMeanSupported(const TensorInfo& input,
256  const TensorInfo& output,
257  const MeanDescriptor& descriptor,
258  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
259 
260  bool IsMemCopySupported(const TensorInfo& input,
261  const TensorInfo& output,
262  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
263 
264  bool IsMemImportSupported(const TensorInfo& input,
265  const TensorInfo& output,
266  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
267 
268  bool IsMergeSupported(const TensorInfo& input0,
269  const TensorInfo& input1,
270  const TensorInfo& output,
271  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
272 
274  bool IsMinimumSupported(const TensorInfo& input0,
275  const TensorInfo& input1,
276  const TensorInfo& output,
277  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
278 
280  bool IsMultiplicationSupported(const TensorInfo& input0,
281  const TensorInfo& input1,
282  const TensorInfo& output,
283  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
284 
285  bool IsNormalizationSupported(const TensorInfo& input,
286  const TensorInfo& output,
287  const NormalizationDescriptor& descriptor,
288  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
289 
290  bool IsOutputSupported(const TensorInfo& output,
291  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
292 
293  bool IsPadSupported(const TensorInfo& input,
294  const TensorInfo& output,
295  const PadDescriptor& descriptor,
296  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
297 
298  bool IsPermuteSupported(const TensorInfo& input,
299  const TensorInfo& output,
300  const PermuteDescriptor& descriptor,
301  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
302 
303  bool IsPooling2dSupported(const TensorInfo& input,
304  const TensorInfo& output,
305  const Pooling2dDescriptor& descriptor,
306  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
307 
308  bool IsPooling3dSupported(const TensorInfo& input,
309  const TensorInfo& output,
310  const Pooling3dDescriptor& descriptor,
311  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
312 
313  bool IsPreCompiledSupported(const TensorInfo& input,
314  const PreCompiledDescriptor& descriptor,
315  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
316 
317  bool IsPreluSupported(const TensorInfo& input,
318  const TensorInfo& alpha,
319  const TensorInfo& output,
320  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
321 
322  bool IsQuantizeSupported(const TensorInfo& input,
323  const TensorInfo& output,
324  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
325 
326  bool IsQLstmSupported(const TensorInfo& input,
327  const TensorInfo& previousOutputIn,
328  const TensorInfo& previousCellStateIn,
329  const TensorInfo& outputStateOut,
330  const TensorInfo& cellStateOut,
331  const TensorInfo& output,
332  const QLstmDescriptor& descriptor,
333  const LstmInputParamsInfo& paramsInfo,
334  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
335 
336  bool IsQuantizedLstmSupported(const TensorInfo& input,
337  const TensorInfo& previousCellStateIn,
338  const TensorInfo& previousOutputIn,
339  const TensorInfo& cellStateOut,
340  const TensorInfo& output,
341  const QuantizedLstmInputParamsInfo& paramsInfo,
342  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
343 
344  bool IsRankSupported(const TensorInfo& input,
345  const TensorInfo& output,
346  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
347 
348  bool IsReduceSupported(const TensorInfo& input,
349  const TensorInfo& output,
350  const ReduceDescriptor& descriptor,
351  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
352 
353  bool IsReshapeSupported(const TensorInfo& input,
354  const TensorInfo& output,
355  const ReshapeDescriptor& descriptor,
356  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
357 
358  bool IsResizeSupported(const TensorInfo& input,
359  const TensorInfo& output,
360  const ResizeDescriptor& descriptor,
361  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
362 
363  bool IsReverseV2Supported(const TensorInfo& input0,
364  const TensorInfo& input1,
365  const TensorInfo& output,
366  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
367 
368  bool IsShapeSupported(const TensorInfo& input,
369  const TensorInfo& output,
370  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
371 
372  bool IsSliceSupported(const TensorInfo& input,
373  const TensorInfo& output,
374  const SliceDescriptor& descriptor,
375  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
376 
377  bool IsSoftmaxSupported(const TensorInfo& input,
378  const TensorInfo& output,
379  const SoftmaxDescriptor& descriptor,
380  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
381 
382  bool IsSpaceToBatchNdSupported(const TensorInfo& input,
383  const TensorInfo& output,
384  const SpaceToBatchNdDescriptor& descriptor,
385  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
386 
387  bool IsSpaceToDepthSupported(const TensorInfo& input,
388  const TensorInfo& output,
389  const SpaceToDepthDescriptor& descriptor,
390  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
391 
392  bool IsSplitterSupported(const TensorInfo& input,
393  const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
394  const ViewsDescriptor& descriptor,
395  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
396 
397  bool IsStackSupported(const std::vector<const TensorInfo*>& inputs,
398  const TensorInfo& output,
399  const StackDescriptor& descriptor,
400  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
401 
402  bool IsStandInSupported(const std::vector<const TensorInfo*>& inputs,
403  const std::vector<const TensorInfo*>& outputs,
404  const StandInDescriptor& descriptor,
405  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
406 
407 
408  bool IsStridedSliceSupported(const TensorInfo& input,
409  const TensorInfo& output,
410  const StridedSliceDescriptor& descriptor,
411  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
412 
414  bool IsSubtractionSupported(const TensorInfo& input0,
415  const TensorInfo& input1,
416  const TensorInfo& output,
417  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
418 
419  bool IsSwitchSupported(const TensorInfo& input0,
420  const TensorInfo& input1,
421  const TensorInfo& output0,
422  const TensorInfo& output1,
423  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
424 
425  bool IsTileSupported(const TensorInfo& input,
426  const TensorInfo& output,
427  const TileDescriptor& descriptor,
428  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
429 
431  const TensorInfo& input,
432  const TensorInfo& output,
433  const TransposeConvolution2dDescriptor& descriptor,
434  const TensorInfo& weights,
435  const Optional<TensorInfo>& biases,
436  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
437 
438  bool IsTransposeSupported(const TensorInfo& input,
439  const TensorInfo& output,
440  const TransposeDescriptor& descriptor,
441  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
442 
444  const TensorInfo& input,
445  const TensorInfo& outputStateIn,
446  const TensorInfo& cellStateIn,
447  const TensorInfo& outputStateOut,
448  const TensorInfo& cellStateOut,
449  const TensorInfo& output,
450  const LstmDescriptor& descriptor,
451  const LstmInputParamsInfo& paramsInfo,
452  Optional<std::string&> reasonIfUnsupported = EmptyOptional());
453 
454 private:
455  std::shared_ptr<ILayerSupport> m_LayerSupport;
456  const BackendId m_BackendId;
457 };
458 
459 /// Convenience function to retrieve the ILayerSupportHandle for a backend
461 
462 /// Convenience function to check if a capability exists in a BackendCapabilites struct
463 bool HasCapability(const std::string& name,const BackendCapabilities& capabilities);
464 
465 /// Convenience function to check if a capability exists in a backend
466 bool HasCapability(const std::string& name, const armnn::BackendId& backend);
467 
468 /// Convenience function to check if a given capability matches a capability in a BackendCapabilities struct
470 bool HasCapability(const BackendOptions::BackendOption& capability, const BackendCapabilities& capabilities);
471 
472 /// Convenience function to check if a given capability matches a capability in a backend
474 bool HasCapability(const BackendOptions::BackendOption& backendOption, const armnn::BackendId& backend);
475 
476 /// Convenience function to check if a given capability matches a capability in a BackendCapabilities struct
477 bool HasMatchingCapability(const BackendOptions::BackendOption& capability, const BackendCapabilities& capabilities);
478 
479 /// Convenience function to check if a given capability matches a capability in a backend
480 bool HasMatchingCapability(const BackendOptions::BackendOption& backendOption, const armnn::BackendId& backend);
481 
482 /// Returns a BackendCapability if the backend lists the capability
483 /// The BackendCapability must then be inspected to check whether or not that BackendCapability is supported
484 /// Otherwise returns an EmptyOptional if the BackendCapability is unlisted
485 Optional<const BackendOptions::BackendOption> GetCapability(const std::string& backendCapabilityName,
486  const BackendCapabilities& capabilities);
487 
488 /// Returns a BackendCapability if the backend lists the capability
489 /// The BackendCapability must then be inspected to check whether or not that BackendCapability is supported
490 /// Otherwise returns an EmptyOptional if the BackendCapability is unlisted
491 Optional<const BackendOptions::BackendOption> GetCapability(const std::string& backendCapabilityName,
492  const armnn::BackendId& backend);
493 
494 /// Returns the number of cached files if backend supports caching
495 unsigned int GetNumberOfCacheFiles(const armnn::BackendId& backend);
496 
497 }
armnn::BatchNormalizationDescriptor
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
Definition: Descriptors.hpp:828
armnn::Compute::Undefined
@ Undefined
armnn::ViewsDescriptor
A ViewsDescriptor for the SplitterLayer.
Definition: Descriptors.hpp:244
armnn::ActivationDescriptor
An ActivationDescriptor for the ActivationLayer.
Definition: Descriptors.hpp:36
armnn::LayerSupportHandle::IsSpaceToDepthSupported
bool IsSpaceToDepthSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1298
armnn::FullyConnectedDescriptor
A FullyConnectedDescriptor for the FullyConnectedLayer.
Definition: Descriptors.hpp:507
armnn::LayerSupportHandle::LayerSupportHandle
LayerSupportHandle(std::shared_ptr< ILayerSupport > layerSupport, const BackendId &backendId)
Definition: BackendHelper.hpp:35
armnn::LayerSupportHandle::IsStackSupported
bool IsStackSupported(const std::vector< const TensorInfo * > &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1332
armnn::QLstmDescriptor
A QLstmDescriptor for the QLstmLayer.
Definition: Descriptors.hpp:1359
armnn::LayerSupportHandle::IsDetectionPostProcessSupported
bool IsDetectionPostProcessSupported(const TensorInfo &boxEncodings, const TensorInfo &scores, const TensorInfo &anchors, const TensorInfo &detectionBoxes, const TensorInfo &detectionClasses, const TensorInfo &detectionScores, const TensorInfo &numDetections, const DetectionPostProcessDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:524
armnn::Optional
Definition: Optional.hpp:270
armnn::LayerSupportHandle::IsOutputSupported
bool IsOutputSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1011
Descriptors.hpp
armnn::LayerSupportHandle::IsMemImportSupported
bool IsMemImportSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:937
armnn::LayerSupportHandle::IsMultiplicationSupported
bool IsMultiplicationSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:981
armnn::Pooling3dDescriptor
A Pooling3dDescriptor for the Pooling3dLayer.
Definition: Descriptors.hpp:431
armnn::LayerSupportHandle::IsTransposeConvolution2dSupported
bool IsTransposeConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1437
armnn::LayerSupportHandle::IsArgMinMaxSupported
bool IsArgMinMaxSupported(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:184
armnn::ResizeDescriptor
A ResizeDescriptor for the ResizeLayer.
Definition: Descriptors.hpp:964
armnn::ArgMinMaxDescriptor
An ArgMinMaxDescriptor for ArgMinMaxLayer.
Definition: Descriptors.hpp:67
armnn::InstanceNormalizationDescriptor
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
Definition: Descriptors.hpp:847
armnn::LayerSupportHandle::IsMeanSupported
bool IsMeanSupported(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:908
armnn::GatherDescriptor
A GatherDescriptor for the GatherLayer.
Definition: Descriptors.hpp:944
armnn::LayerSupportHandle::IsShapeSupported
bool IsShapeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1239
armnn::LayerSupportHandle::IsDepthToSpaceSupported
bool IsDepthToSpaceSupported(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:441
armnn::TensorInfo
Definition: Tensor.hpp:152
armnn::L2NormalizationDescriptor
A L2NormalizationDescriptor for the L2NormalizationLayer.
Definition: Descriptors.hpp:809
armnn::LayerSupportHandle::IsMinimumSupported
bool IsMinimumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:966
armnn::LayerSupportHandle::IsFullyConnectedSupported
bool IsFullyConnectedSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:687
armnn::NormalizationDescriptor
A NormalizationDescriptor for the NormalizationLayer.
Definition: Descriptors.hpp:769
armnn::LayerSupportHandle::IsPermuteSupported
bool IsPermuteSupported(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1039
BackendId.hpp
armnn::ChannelShuffleDescriptor
A ChannelShuffleDescriptor for the ChannelShuffle operator.
Definition: Descriptors.hpp:1541
armnn::LayerSupportHandle::IsNormalizationSupported
bool IsNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:996
armnn::LayerSupportHandle::IsReverseV2Supported
bool IsReverseV2Supported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1224
armnn::LayerSupportHandle::IsLogicalBinarySupported
bool IsLogicalBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:826
armnn::LayerSupportHandle::IsStridedSliceSupported
bool IsStridedSliceSupported(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1376
armnn::LayerSupportHandle::IsGatherNdSupported
bool IsGatherNdSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:767
armnn::LayerSupportHandle::IsElementwiseBinarySupported
bool IsElementwiseBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ElementwiseBinaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:613
armnn::LayerSupportHandle::IsPooling2dSupported
bool IsPooling2dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1054
armnn::StackDescriptor
A StackDescriptor for the StackLayer.
Definition: Descriptors.hpp:1230
armnn::LayerSupportHandle::IsSoftmaxSupported
bool IsSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1268
armnn::LayerSupportHandle::IsGatherSupported
bool IsGatherSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:751
armnn::GetILayerSupportByBackendId
LayerSupportHandle GetILayerSupportByBackendId(const armnn::BackendId &backend)
Convenience function to retrieve the ILayerSupportHandle for a backend.
Definition: BackendHelper.cpp:23
armnn::LayerSupportHandle::IsInputSupported
bool IsInputSupported(const TensorInfo &input, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:782
armnn::LayerSupportHandle::IsLogSoftmaxSupported
bool IsLogSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:857
armnn::LayerSupportHandle::LayerSupportHandle
LayerSupportHandle(std::shared_ptr< ILayerSupport > layerSupport)
Definition: BackendHelper.hpp:32
armnn::LayerSupportHandle::IsL2NormalizationSupported
bool IsL2NormalizationSupported(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:811
armnn::LayerSupportHandle::IsDebugSupported
bool IsDebugSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:427
armnn::LayerSupportHandle::IsBatchToSpaceNdSupported
bool IsBatchToSpaceNdSupported(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:234
armnn::Compute
Compute
The Compute enum is now deprecated and it is now being replaced by BackendId.
Definition: BackendId.hpp:21
armnn::QuantizedLstmInputParamsInfo
Definition: QuantizedLstmParams.hpp:119
armnn::ElementwiseBinaryDescriptor
A ElementwiseBinaryDescriptor for the ElementwiseBinaryLayer.
Definition: Descriptors.hpp:109
armnn::LayerSupportHandle::IsComparisonSupported
bool IsComparisonSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:278
Optional.hpp
armnn::LayerSupportHandle::IsPadSupported
bool IsPadSupported(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1024
armnn::LayerSupportHandle::IsDepthwiseConvolutionSupported
bool IsDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:456
armnn::LayerSupportHandle::IsSplitterSupported
bool IsSplitterSupported(const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1313
armnn::LayerSupportHandle::IsSliceSupported
bool IsSliceSupported(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1253
armnn::PadDescriptor
A PadDescriptor for the PadLayer.
Definition: Descriptors.hpp:1175
armnn::TransposeDescriptor
A TransposeDescriptor for the TransposeLayer.
Definition: Descriptors.hpp:1469
armnn::EmptyOptional
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
Definition: Optional.hpp:32
armnn::SliceDescriptor
A SliceDescriptor for the SliceLayer.
Definition: Descriptors.hpp:1207
armnn::LayerSupportHandle::IsBatchMatMulSupported
bool IsBatchMatMulSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const BatchMatMulDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:199
armnn::ReshapeDescriptor
A ReshapeDescriptor for the ReshapeLayer.
Definition: Descriptors.hpp:1002
armnn::LayerSupportHandle::IsRankSupported
bool IsRankSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1165
armnn::LayerSupportHandle::IsTransposeSupported
bool IsTransposeSupported(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1456
armnn::LayerSupportHandle::IsMemCopySupported
bool IsMemCopySupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:923
armnn::LayerSupportHandle::IsTileSupported
bool IsTileSupported(const TensorInfo &input, const TensorInfo &output, const TileDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1422
armnn::LayerSupportHandle::IsUnidirectionalSequenceLstmSupported
bool IsUnidirectionalSequenceLstmSupported(const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const LstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1471
armnn::PermuteDescriptor
A PermuteDescriptor for the PermuteLayer.
Definition: Descriptors.hpp:149
armnn::BatchMatMulDescriptor
A BatchMatMulDescriptor for the BatchMatMul operator.
Definition: Descriptors.hpp:1563
armnn::LayerSupportHandle::IsCastSupported
bool IsCastSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:249
armnn::SpaceToBatchNdDescriptor
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
Definition: Descriptors.hpp:1022
armnn::Convolution3dDescriptor
A Convolution3dDescriptor for the Convolution3dLayer.
Definition: Descriptors.hpp:588
armnn::LayerSupportHandle::IsFloorSupported
bool IsFloorSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:673
armnn::LayerSupportHandle::IsDivisionSupported
bool IsDivisionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:598
armnn::LayerSupportHandle::IsPooling3dSupported
bool IsPooling3dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1069
armnn::LayerSupportHandle::IsMergeSupported
bool IsMergeSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:951
armnn::HasCapability
bool HasCapability(const std::string &name, const BackendCapabilities &capabilities)
Convenience function to check if a capability exists in a BackendCapabilites struct.
Definition: BackendHelper.cpp:65
armnn::LayerSupportHandle::IsConcatSupported
bool IsConcatSupported(const std::vector< const TensorInfo * > inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:294
armnn::BatchToSpaceNdDescriptor
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
Definition: Descriptors.hpp:875
armnn::LayerSupportHandle::IsLogicalUnarySupported
bool IsLogicalUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:842
armnn::Convolution2dDescriptor
A Convolution2dDescriptor for the Convolution2dLayer.
Definition: Descriptors.hpp:534
armnn::LayerSupportHandle::IsFakeQuantizationSupported
bool IsFakeQuantizationSupported(const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:644
armnn::LayerSupportHandle::IsConvolution3dSupported
bool IsConvolution3dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:409
armnn::ComparisonDescriptor
A ComparisonDescriptor for the ComparisonLayer.
Definition: Descriptors.hpp:89
armnn::FillDescriptor
A FillDescriptor for the FillLayer.
Definition: Descriptors.hpp:925
armnn::LayerSupportHandle
Definition: BackendHelper.hpp:29
armnn::LayerSupportHandle::IsDilatedDepthwiseConvolutionSupported
bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:544
armnn::LayerSupportHandle::IsConvolution2dSupported
bool IsConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:355
armnn::StandInDescriptor
A StandInDescriptor for the StandIn layer.
Definition: Descriptors.hpp:1260
armnn::LayerSupportHandle::IsInstanceNormalizationSupported
bool IsInstanceNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:795
armnn::BackendOptions
Struct for the users to pass backend specific options.
Definition: BackendOptions.hpp:22
armnn::LayerSupportHandle::IsMaximumSupported
bool IsMaximumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:893
armnn::LstmDescriptor
An LstmDescriptor for the LstmLayer.
Definition: Descriptors.hpp:1081
armnn::StridedSliceDescriptor
A StridedSliceDescriptor for the StridedSliceLayer.
Definition: Descriptors.hpp:1282
armnn::LayerSupportHandle::IsBackendRegistered
bool IsBackendRegistered() const
Definition: BackendHelper.cpp:142
armnn::LayerSupportHandle::IsPreCompiledSupported
bool IsPreCompiledSupported(const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1084
armnn::LayerSupportHandle::IsBatchNormalizationSupported
bool IsBatchNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &mean, const TensorInfo &var, const TensorInfo &beta, const TensorInfo &gamma, const BatchNormalizationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:215
armnn::LogicalBinaryDescriptor
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
Definition: Descriptors.hpp:1497
armnn::LayerSupportHandle::IsChannelShuffleSupported
bool IsChannelShuffleSupported(const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:263
std
Definition: BackendId.hpp:149
armnn::LayerSupportHandle::IsPreluSupported
bool IsPreluSupported(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1098
ARMNN_DEPRECATED_MSG_REMOVAL_DATE
#define ARMNN_DEPRECATED_MSG_REMOVAL_DATE(message, removed_in_release)
Definition: Deprecated.hpp:44
armnn::ILayerSupport
Definition: ILayerSupport.hpp:23
BackendOptions.hpp
armnn::BackendId
Definition: BackendId.hpp:75
armnn::LayerSupportHandle::IsDequantizeSupported
bool IsDequantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:510
armnn::OriginsDescriptor
An OriginsDescriptor for the ConcatLayer.
Definition: Descriptors.hpp:201
armnn::GetNumberOfCacheFiles
unsigned int GetNumberOfCacheFiles(const armnn::BackendId &backend)
Returns the number of cached files if backend supports caching.
Definition: BackendHelper.cpp:130
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition: 01_00_quick_start.dox:6
armnn::ElementwiseUnaryDescriptor
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
Definition: Descriptors.hpp:129
armnn::TransposeConvolution2dDescriptor
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
Definition: Descriptors.hpp:1419
armnn::LayerSupportHandle::IsSpaceToBatchNdSupported
bool IsSpaceToBatchNdSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1283
armnn::LstmInputParamsInfo
Definition: LstmParams.hpp:63
armnn::LayerSupportHandle::IsLstmSupported
bool IsLstmSupported(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, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:872
armnn::LayerSupportHandle::IsConvertFp16ToFp32Supported
bool IsConvertFp16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:327
armnn::LayerSupportHandle::IsReshapeSupported
bool IsReshapeSupported(const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1194
armnn::LayerSupportHandle::IsConvertFp32ToFp16Supported
bool IsConvertFp32ToFp16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:341
armnn::LayerSupportHandle::IsSubtractionSupported
bool IsSubtractionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1391
armnn::DetectionPostProcessDescriptor
Definition: Descriptors.hpp:713
armnn::PreCompiledDescriptor
A PreCompiledDescriptor for the PreCompiledLayer.
Definition: Descriptors.hpp:1346
armnn::LayerSupportHandle::IsQuantizedLstmSupported
bool IsQuantizedLstmSupported(const TensorInfo &input, const TensorInfo &previousCellStateIn, const TensorInfo &previousOutputIn, const TensorInfo &cellStateOut, const TensorInfo &output, const QuantizedLstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1147
armnn::Pooling2dDescriptor
A Pooling2dDescriptor for the Pooling2dLayer.
Definition: Descriptors.hpp:371
armnn::DepthwiseConvolution2dDescriptor
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
Definition: Descriptors.hpp:659
armnn::LayerSupportHandle::IsConstantSupported
bool IsConstantSupported(const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:314
armnn::LayerSupportHandle::IsQLstmSupported
bool IsQLstmSupported(const TensorInfo &input, const TensorInfo &previousOutputIn, const TensorInfo &previousCellStateIn, const TensorInfo &outputStateOut, const TensorInfo &cellStateOut, const TensorInfo &output, const QLstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1127
armnn::ReduceDescriptor
A ReduceDescriptor for the REDUCE operators.
Definition: Descriptors.hpp:1517
armnn::LayerSupportHandle::IsSwitchSupported
bool IsSwitchSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1406
armnn::FakeQuantizationDescriptor
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
Definition: Descriptors.hpp:906
armnn::LayerSupportHandle::IsReduceSupported
bool IsReduceSupported(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1179
armnn::LayerSupportHandle::IsStandInSupported
bool IsStandInSupported(const std::vector< const TensorInfo * > &inputs, const std::vector< const TensorInfo * > &outputs, const StandInDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1352
armnn::MeanDescriptor
A MeanDescriptor for the MeanLayer.
Definition: Descriptors.hpp:1151
armnn::LayerSupportHandle::IsQuantizeSupported
bool IsQuantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1113
armnn::TileDescriptor
Definition: Descriptors.hpp:1619
armnn::LayerSupportHandle::IsAdditionSupported
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:169
armnn::SoftmaxDescriptor
A SoftmaxDescriptor for the SoftmaxLayer.
Definition: Descriptors.hpp:177
armnn::LayerSupportHandle::IsElementwiseUnarySupported
bool IsElementwiseUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:629
armnn::LayerSupportHandle::IsResizeSupported
bool IsResizeSupported(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:1209
armnn::SpaceToDepthDescriptor
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
Definition: Descriptors.hpp:1054
armnn::LayerSupportHandle::IsActivationSupported
bool IsActivationSupported(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:154
armnn::GetCapability
Optional< const BackendOptions::BackendOption > GetCapability(const std::string &backendCapabilityName, const BackendCapabilities &capabilities)
Returns a BackendCapability if the backend lists the capability The BackendCapability must then be in...
Definition: BackendHelper.cpp:37
armnn::LayerSupportHandle::IsFillSupported
bool IsFillSupported(const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string & > reasonIfUnsupported=EmptyOptional())
Definition: BackendHelper.cpp:658
armnn::HasMatchingCapability
bool HasMatchingCapability(const BackendOptions::BackendOption &capability, const BackendCapabilities &capabilities)
Convenience function to check if a given capability matches a capability in a BackendCapabilities str...
Definition: BackendHelper.cpp:85