25 auto factoryFunc = backendRegistry.
GetFactory(backend);
26 auto backendObject = factoryFunc();
35 const auto& capability = capabilities.
GetOption(i);
36 if (backendCapabilityName == capability.GetName())
48 if (backendRegistry.IsBackendRegistered(backend))
50 auto factoryFunc = backendRegistry.GetFactory(backend);
51 auto backendObject = factoryFunc();
52 auto capabilities = backendObject->GetCapabilities();
72 const auto& backendCapability = capabilities.
GetOption(i);
73 if (capability.
GetName() == backendCapability.GetName())
75 if (capability.
GetValue().
IsBool() && backendCapability.GetValue().IsBool())
77 return capability.
GetValue().
AsBool() == backendCapability.GetValue().AsBool();
79 else if(capability.
GetValue().
IsFloat() && backendCapability.GetValue().IsFloat())
81 return capability.
GetValue().
AsFloat() == backendCapability.GetValue().AsFloat();
83 else if(capability.
GetValue().
IsInt() && backendCapability.GetValue().IsInt())
85 return capability.
GetValue().
AsInt() == backendCapability.GetValue().AsInt();
87 else if(capability.
GetValue().
IsString() && backendCapability.GetValue().IsString())
89 return capability.
GetValue().
AsString() == backendCapability.GetValue().AsString();
103 if (backendRegistry.IsBackendRegistered(backend))
105 auto factoryFunc = backendRegistry.GetFactory(backend);
106 auto backendObject = factoryFunc();
107 auto capabilities = backendObject->GetCapabilities();
116 bool hasCapability =
false;
118 if (backendRegistry.IsBackendRegistered(backend))
120 auto factoryFunc = backendRegistry.GetFactory(backend);
121 auto backendObject = factoryFunc();
123 hasCapability = backendObject->HasCapability(capability);
126 return hasCapability;
145 return m_LayerSupport->IsAbsSupported(input, output, reasonIfUnsupported.
value());
153 return m_LayerSupport->IsActivationSupported(input, output, descriptor, reasonIfUnsupported.
value());
161 return m_LayerSupport->IsAdditionSupported(input0, input1, output, reasonIfUnsupported.
value());
169 return m_LayerSupport->IsArgMinMaxSupported(input, output, descriptor, reasonIfUnsupported.
value());
181 return m_LayerSupport->IsBatchNormalizationSupported(input,
188 reasonIfUnsupported.
value());
196 return m_LayerSupport->IsBatchToSpaceNdSupported(input,
199 reasonIfUnsupported.
value());
206 return m_LayerSupport->IsCastSupported(input, output, reasonIfUnsupported.
value());
215 return m_LayerSupport->IsComparisonSupported(input0, input1, output, descriptor, reasonIfUnsupported.
value());
223 return m_LayerSupport->IsConcatSupported(inputs, output, descriptor, reasonIfUnsupported.
value());
229 return m_LayerSupport->IsConstantSupported(output, reasonIfUnsupported.
value());
236 return m_LayerSupport->IsConvertBf16ToFp32Supported(input, output, reasonIfUnsupported.
value());
243 return m_LayerSupport->IsConvertFp32ToBf16Supported(input, output, reasonIfUnsupported.
value());
250 return m_LayerSupport->IsConvertFp16ToFp32Supported(input, output, reasonIfUnsupported.
value());
257 return m_LayerSupport->IsConvertFp32ToFp16Supported(input, output, reasonIfUnsupported.
value());
267 return m_LayerSupport->IsConvolution2dSupported(input,
272 reasonIfUnsupported.
value());
279 return m_LayerSupport->IsDebugSupported(input, output, reasonIfUnsupported.
value());
287 return m_LayerSupport->IsDepthToSpaceSupported(input, output, descriptor, reasonIfUnsupported.
value());
298 return m_LayerSupport->IsDepthwiseConvolutionSupported(input,
303 reasonIfUnsupported.
value());
310 return m_LayerSupport->IsDequantizeSupported(input, output, reasonIfUnsupported.
value());
323 return m_LayerSupport->IsDetectionPostProcessSupported(boxEncodings,
331 reasonIfUnsupported);
342 return m_LayerSupport->IsDilatedDepthwiseConvolutionSupported(input,
347 reasonIfUnsupported);
355 return m_LayerSupport->IsDivisionSupported(input0, input1, output, reasonIfUnsupported.
value());
363 return m_LayerSupport->IsElementwiseUnarySupported(input, output, descriptor, reasonIfUnsupported.
value());
371 return m_LayerSupport->IsEqualSupported(input0, input1, output, reasonIfUnsupported.
value());
378 return m_LayerSupport->IsFakeQuantizationSupported(input, descriptor, reasonIfUnsupported.
value());
386 return m_LayerSupport->IsFillSupported(input, output, descriptor, reasonIfUnsupported.
value());
393 return m_LayerSupport->IsFloorSupported(input, output, reasonIfUnsupported.
value());
405 auto capability =
GetCapability(
"ConstantTensorsAsInputs", m_BackendId);
406 if(!capability.has_value() || capability.value().GetValue().AsBool() ==
false)
410 reasonIfUnsupported.
value() =
411 "This backend might not support non constant weights. " 412 "If weights are constant make sure to set IsConstant when creating TensorInfo";
419 reasonIfUnsupported.
value() =
420 "This backend might not support non constant bias. " 421 "If bias are constant make sure to set IsConstant when creating TensorInfo";
428 ARMNN_LOG(
warning) <<
"The backend makes use of a deprecated interface to read constant tensors. " 429 "If you are a backend developer please find more information in our " 430 "doxygen documentation on github https://github.com/ARM-software/armnn " 431 "under the keyword 'ConstTensorsAsInputs'.";
436 auto capability =
GetCapability(
"NonConstWeights", m_BackendId);
437 if (capability.has_value() && capability.value().GetValue().AsBool() ==
true)
445 return m_LayerSupport->IsFullyConnectedSupported(input,
450 reasonIfUnsupported.
value());
458 return m_LayerSupport->IsGatherSupported(input0, input1, output, reasonIfUnsupported.
value());
467 return m_LayerSupport->IsGatherSupported(input0, input1, output, descriptor, reasonIfUnsupported.
value());
475 return m_LayerSupport->IsGreaterSupported(input0, input1, ouput, reasonIfUnsupported.
value());
481 return m_LayerSupport->IsInputSupported(input, reasonIfUnsupported.
value());
490 return m_LayerSupport->IsInstanceNormalizationSupported(input, output, descriptor, reasonIfUnsupported.
value());
498 return m_LayerSupport->IsL2NormalizationSupported(input, output, descriptor, reasonIfUnsupported.
value());
507 return m_LayerSupport->IsLogicalBinarySupported(input0,
511 reasonIfUnsupported.
value());
519 return m_LayerSupport->IsLogicalUnarySupported(input, output, descriptor, reasonIfUnsupported.
value());
527 return m_LayerSupport->IsLogSoftmaxSupported(input, output, descriptor, reasonIfUnsupported.
value());
541 return m_LayerSupport->IsLstmSupported(input,
550 reasonIfUnsupported);
558 return m_LayerSupport->IsMaximumSupported(input0, input1, output, reasonIfUnsupported.
value());
566 return m_LayerSupport->IsMeanSupported(input, output, descriptor, reasonIfUnsupported.
value());
573 return m_LayerSupport->IsMemCopySupported(input, output, reasonIfUnsupported.
value());
580 return m_LayerSupport->IsMemImportSupported(input, output, reasonIfUnsupported.
value());
588 return m_LayerSupport->IsMergeSupported(input0, input1, output, reasonIfUnsupported.
value());
596 return m_LayerSupport->IsMergerSupported(inputs, output, descriptor, reasonIfUnsupported.
value());
604 return m_LayerSupport->IsMinimumSupported(input0, input1, output, reasonIfUnsupported.
value());
612 return m_LayerSupport->IsMultiplicationSupported(input0, input1, output, reasonIfUnsupported.
value());
620 return m_LayerSupport->IsNormalizationSupported(input, output, descriptor, reasonIfUnsupported.
value());
626 return m_LayerSupport->IsOutputSupported(output, reasonIfUnsupported.
value());
634 return m_LayerSupport->IsPadSupported(input, output, descriptor, reasonIfUnsupported.
value());
642 return m_LayerSupport->IsPermuteSupported(input, output, descriptor, reasonIfUnsupported.
value());
650 return m_LayerSupport->IsPooling2dSupported(input, output, descriptor, reasonIfUnsupported.
value());
657 return m_LayerSupport->IsPreCompiledSupported(input, descriptor, reasonIfUnsupported.
value());
665 return m_LayerSupport->IsPreluSupported(input, alpha, output, reasonIfUnsupported.
value());
672 return m_LayerSupport->IsQuantizeSupported(input, output, reasonIfUnsupported.
value());
685 return m_LayerSupport->IsQLstmSupported(input,
693 reasonIfUnsupported);
704 return m_LayerSupport->IsQuantizedLstmSupported(input,
710 reasonIfUnsupported);
717 return m_LayerSupport->IsRankSupported(input, output, reasonIfUnsupported.
value());
725 return m_LayerSupport->IsReduceSupported(input, output, descriptor, reasonIfUnsupported.
value());
733 return m_LayerSupport->IsReshapeSupported(input, output, descriptor, reasonIfUnsupported.
value());
740 return m_LayerSupport->IsResizeBilinearSupported(input, output, reasonIfUnsupported.
value());
748 return m_LayerSupport->IsResizeSupported(input, output, descriptor, reasonIfUnsupported.
value());
755 return m_LayerSupport->IsRsqrtSupported(input, output, reasonIfUnsupported.
value());
762 return m_LayerSupport->IsShapeSupported(input, output, reasonIfUnsupported.
value());
770 return m_LayerSupport->IsSliceSupported(input, output, descriptor, reasonIfUnsupported.
value());
778 return m_LayerSupport->IsSoftmaxSupported(input, output, descriptor, reasonIfUnsupported.
value());
786 return m_LayerSupport->IsSpaceToBatchNdSupported(input, output, descriptor, reasonIfUnsupported.
value());
794 return m_LayerSupport->IsSpaceToDepthSupported(input, output, descriptor, reasonIfUnsupported.
value());
801 return m_LayerSupport->IsSplitterSupported(input, descriptor, reasonIfUnsupported.
value());
805 const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
809 return m_LayerSupport->IsSplitterSupported(input, outputs, descriptor, reasonIfUnsupported.
value());
817 return m_LayerSupport->IsStackSupported(inputs, output, descriptor, reasonIfUnsupported.
value());
821 const std::vector<const TensorInfo*>& outputs,
825 return m_LayerSupport->IsStandInSupported(inputs, outputs, descriptor, reasonIfUnsupported.
value());
834 return m_LayerSupport->IsStridedSliceSupported(input, output, descriptor, reasonIfUnsupported.
value());
842 return m_LayerSupport->IsSubtractionSupported(input0, input1, output, reasonIfUnsupported.
value());
851 return m_LayerSupport->IsSwitchSupported(input0, input1, output0, output1, reasonIfUnsupported.
value());
862 return m_LayerSupport->IsTransposeConvolution2dSupported(input,
867 reasonIfUnsupported.
value());
875 return m_LayerSupport->IsTransposeSupported(input, output, descriptor, reasonIfUnsupported.
value());
888 return m_LayerSupport->IsUnidirectionalSequenceLstmSupported(input,
896 reasonIfUnsupported);
bool IsDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsL2NormalizationSupported(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
const BackendOption & GetOption(size_t idx) const
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 ¶msInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsStridedSliceSupported(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool HasCapability(const std::string &name, const BackendCapabilities &capabilities)
Convenience function to check if a capability exists in a BackendCapabilites struct.
bool IsSpaceToDepthSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
FactoryFunction GetFactory(const BackendId &id) const
A ViewsDescriptor for the SplitterLayer.
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())
bool IsElementwiseUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsBackendRegistered(const BackendId &id) const
A TransposeConvolution2dDescriptor for the TransposeConvolution2dLayer.
bool IsComparisonSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A ReshapeDescriptor for the ReshapeLayer.
bool IsPreluSupported(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsPadSupported(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
A ComparisonDescriptor for the ComparisonLayer.
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
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...
bool IsLogicalBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsDebugSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsPooling2dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A Convolution2dDescriptor for the Convolution2dLayer.
bool IsReduceSupported(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsInstanceNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsLogicalUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsMemImportSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsMultiplicationSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsArgMinMaxSupported(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
#define ARMNN_LOG(severity)
bool IsInputSupported(const TensorInfo &input, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsSubtractionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
BackendRegistry & BackendRegistryInstance()
bool IsConvertFp16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A LogicalBinaryDescriptor for the LogicalBinaryLayer.
Copyright (c) 2021 ARM Limited and Contributors.
bool IsLogSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsFakeQuantizationSupported(const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A SpaceToDepthDescriptor for the SpaceToDepthLayer.
bool IsMergeSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsRankSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsMergerSupported(const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A BatchToSpaceNdDescriptor for the BatchToSpaceNdLayer.
bool IsAbsSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsEqualSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsConvertFp32ToFp16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A ResizeDescriptor for the ResizeLayer.
bool IsResizeSupported(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsDepthToSpaceSupported(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A StackDescriptor for the StackLayer.
bool IsQuantizedLstmSupported(const TensorInfo &input, const TensorInfo &previousCellStateIn, const TensorInfo &previousOutputIn, const TensorInfo &cellStateOut, const TensorInfo &output, const QuantizedLstmInputParamsInfo ¶msInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A PadDescriptor for the PadLayer.
bool IsFullyConnectedSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsStackSupported(const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsSpaceToBatchNdSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
size_t GetOptionCount() const noexcept
bool IsMinimumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsPermuteSupported(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsQuantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
An LstmDescriptor for the LstmLayer.
#define ARMNN_NO_DEPRECATE_WARN_END
bool IsUnidirectionalSequenceLstmSupported(const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &output, const Optional< TensorInfo > &hiddenStateOutput, const Optional< TensorInfo > &cellStateOutput, const LstmDescriptor &descriptor, const LstmInputParamsInfo ¶msInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A L2NormalizationDescriptor for the L2NormalizationLayer.
BackendCapability
BackendCapability class.
bool IsFillSupported(const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
An ArgMinMaxDescriptor for ArgMinMaxLayer.
An OriginsDescriptor for the ConcatLayer.
A ReduceDescriptor for the REDUCE operators.
A FullyConnectedDescriptor for the FullyConnectedLayer.
bool IsSliceSupported(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool m_BiasEnabled
Enable/disable bias.
A FakeQuantizationDescriptor for the FakeQuantizationLayer.
bool IsTransposeConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A GatherDescriptor for the GatherLayer.
std::string AsString() const
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())
bool IsConcatSupported(const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A StandInDescriptor for the StandIn layer.
A QLstmDescriptor for the QLstmLayer.
bool IsConstantSupported(const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsBatchToSpaceNdSupported(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsGatherSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsCastSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
An ActivationDescriptor for the ActivationLayer.
bool IsReshapeSupported(const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A SliceDescriptor for the SliceLayer.
bool IsOutputSupported(const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsMemCopySupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsResizeBilinearSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsPreCompiledSupported(const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
unsigned int AsUnsignedInt() const
bool IsDivisionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A SpaceToBatchNdDescriptor for the SpaceToBatchNdLayer.
Struct for the users to pass backend specific options.
bool IsStandInSupported(const std::vector< const TensorInfo *> &inputs, const std::vector< const TensorInfo *> &outputs, const StandInDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
A ElementwiseUnaryDescriptor for the ElementwiseUnaryLayer.
bool IsTransposeSupported(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsShapeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool AsBool() const
Value getters.
std::string GetName() const
bool IsCapabilitySupported(const armnn::BackendId &backend, armnn::BackendCapability capability)
Convenience function to check a capability on a backend.
bool IsConvertFp32ToBf16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
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 ¶msInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsBool() const
Type getters.
bool IsRsqrtSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsBackendRegistered() const
bool IsSwitchSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A MeanDescriptor for the MeanLayer.
A TransposeDescriptor for the TransposeLayer.
A StridedSliceDescriptor for the StridedSliceLayer.
bool IsConvertBf16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsSplitterSupported(const TensorInfo &input, const ViewsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsMaximumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsUnsignedInt() const
A PreCompiledDescriptor for the PreCompiledLayer.
bool IsMeanSupported(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A Pooling2dDescriptor for the Pooling2dLayer.
LayerSupportHandle GetILayerSupportByBackendId(const armnn::BackendId &backend)
Convenience function to retrieve the ILayerSupportHandle for a backend.
A NormalizationDescriptor for the NormalizationLayer.
bool IsDequantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
An InstanceNormalizationDescriptor for InstanceNormalizationLayer.
bool IsActivationSupported(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsGreaterSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &ouput, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
A SoftmaxDescriptor for the SoftmaxLayer.
A DepthwiseConvolution2dDescriptor for the DepthwiseConvolution2dLayer.
A FillDescriptor for the FillLayer.
A BatchNormalizationDescriptor for the BatchNormalizationLayer.
A PermuteDescriptor for the PermuteLayer.
bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool IsFloorSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
bool m_ConstantWeights
Enable/disable constant weights and biases.