ArmNN
 21.11
LayerSupportHandle Class Reference

#include <BackendHelper.hpp>

Public Member Functions

 LayerSupportHandle (std::shared_ptr< ILayerSupport > layerSupport)
 
 LayerSupportHandle (std::shared_ptr< ILayerSupport > layerSupport, const BackendId &backendId)
 
bool IsBackendRegistered () const
 
bool IsActivationSupported (const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsAdditionSupported (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())
 
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 IsBatchToSpaceNdSupported (const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsCastSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsChannelShuffleSupported (const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsComparisonSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &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())
 
bool IsConstantSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertBf16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp32ToBf16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp32ToFp16Supported (const TensorInfo &input, const TensorInfo &output, 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 IsConvolution3dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDebugSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDepthToSpaceSupported (const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDequantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
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 IsDilatedDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDivisionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsElementwiseUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFakeQuantizationSupported (const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFillSupported (const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFloorSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFullyConnectedSupported (const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsGatherSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsInputSupported (const TensorInfo &input, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsInstanceNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsL2NormalizationSupported (const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsLogicalBinarySupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsLogicalUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsLogSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
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())
 
bool IsMaximumSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsMeanSupported (const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsMemCopySupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsMemImportSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsMergeSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsMinimumSupported (const TensorInfo &input0, const TensorInfo &input1, 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 IsNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsOutputSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsPadSupported (const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsPermuteSupported (const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsPooling2dSupported (const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsPreCompiledSupported (const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsPreluSupported (const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsQuantizeSupported (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 &paramsInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
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())
 
bool IsRankSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsReduceSupported (const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsReshapeSupported (const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsResizeSupported (const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsShapeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSliceSupported (const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSpaceToBatchNdSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSpaceToDepthSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSplitterSupported (const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &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 IsStandInSupported (const std::vector< const TensorInfo *> &inputs, const std::vector< const TensorInfo *> &outputs, const StandInDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsStridedSliceSupported (const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSubtractionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsSwitchSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsTransposeConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsTransposeSupported (const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
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 &paramsInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 

Detailed Description

Definition at line 20 of file BackendHelper.hpp.

Constructor & Destructor Documentation

◆ LayerSupportHandle() [1/2]

LayerSupportHandle ( std::shared_ptr< ILayerSupport layerSupport)
inlineexplicit

Definition at line 23 of file BackendHelper.hpp.

24  : m_LayerSupport(std::move(layerSupport)), m_BackendId(Compute::Undefined) {};

◆ LayerSupportHandle() [2/2]

LayerSupportHandle ( std::shared_ptr< ILayerSupport layerSupport,
const BackendId backendId 
)
inlineexplicit

Definition at line 26 of file BackendHelper.hpp.

References armnn::ARMNN_DEPRECATED_MSG_REMOVAL_DATE(), armnn::GetCapability(), armnn::GetILayerSupportByBackendId(), armnn::GetNumberOfCacheFiles(), armnn::HasCapability(), LayerSupportHandle::IsActivationSupported(), LayerSupportHandle::IsAdditionSupported(), LayerSupportHandle::IsArgMinMaxSupported(), LayerSupportHandle::IsBackendRegistered(), LayerSupportHandle::IsBatchNormalizationSupported(), LayerSupportHandle::IsBatchToSpaceNdSupported(), armnn::IsCapabilitySupported(), LayerSupportHandle::IsCastSupported(), LayerSupportHandle::IsChannelShuffleSupported(), LayerSupportHandle::IsComparisonSupported(), LayerSupportHandle::IsConcatSupported(), LayerSupportHandle::IsConstantSupported(), LayerSupportHandle::IsConvertBf16ToFp32Supported(), LayerSupportHandle::IsConvertFp16ToFp32Supported(), LayerSupportHandle::IsConvertFp32ToBf16Supported(), LayerSupportHandle::IsConvertFp32ToFp16Supported(), LayerSupportHandle::IsConvolution2dSupported(), LayerSupportHandle::IsConvolution3dSupported(), LayerSupportHandle::IsDebugSupported(), LayerSupportHandle::IsDepthToSpaceSupported(), LayerSupportHandle::IsDepthwiseConvolutionSupported(), LayerSupportHandle::IsDequantizeSupported(), LayerSupportHandle::IsDetectionPostProcessSupported(), LayerSupportHandle::IsDilatedDepthwiseConvolutionSupported(), LayerSupportHandle::IsDivisionSupported(), LayerSupportHandle::IsElementwiseUnarySupported(), LayerSupportHandle::IsFakeQuantizationSupported(), LayerSupportHandle::IsFillSupported(), LayerSupportHandle::IsFloorSupported(), LayerSupportHandle::IsFullyConnectedSupported(), LayerSupportHandle::IsGatherSupported(), LayerSupportHandle::IsInputSupported(), LayerSupportHandle::IsInstanceNormalizationSupported(), LayerSupportHandle::IsL2NormalizationSupported(), LayerSupportHandle::IsLogicalBinarySupported(), LayerSupportHandle::IsLogicalUnarySupported(), LayerSupportHandle::IsLogSoftmaxSupported(), LayerSupportHandle::IsLstmSupported(), LayerSupportHandle::IsMaximumSupported(), LayerSupportHandle::IsMeanSupported(), LayerSupportHandle::IsMemCopySupported(), LayerSupportHandle::IsMemImportSupported(), LayerSupportHandle::IsMergeSupported(), LayerSupportHandle::IsMinimumSupported(), LayerSupportHandle::IsMultiplicationSupported(), LayerSupportHandle::IsNormalizationSupported(), LayerSupportHandle::IsOutputSupported(), LayerSupportHandle::IsPadSupported(), LayerSupportHandle::IsPermuteSupported(), LayerSupportHandle::IsPooling2dSupported(), LayerSupportHandle::IsPreCompiledSupported(), LayerSupportHandle::IsPreluSupported(), LayerSupportHandle::IsQLstmSupported(), LayerSupportHandle::IsQuantizedLstmSupported(), LayerSupportHandle::IsQuantizeSupported(), LayerSupportHandle::IsRankSupported(), LayerSupportHandle::IsReduceSupported(), LayerSupportHandle::IsReshapeSupported(), LayerSupportHandle::IsResizeSupported(), LayerSupportHandle::IsShapeSupported(), LayerSupportHandle::IsSliceSupported(), LayerSupportHandle::IsSoftmaxSupported(), LayerSupportHandle::IsSpaceToBatchNdSupported(), LayerSupportHandle::IsSpaceToDepthSupported(), LayerSupportHandle::IsSplitterSupported(), LayerSupportHandle::IsStackSupported(), LayerSupportHandle::IsStandInSupported(), LayerSupportHandle::IsStridedSliceSupported(), LayerSupportHandle::IsSubtractionSupported(), LayerSupportHandle::IsSwitchSupported(), LayerSupportHandle::IsTransposeConvolution2dSupported(), LayerSupportHandle::IsTransposeSupported(), and LayerSupportHandle::IsUnidirectionalSequenceLstmSupported().

27  : m_LayerSupport(std::move(layerSupport)), m_BackendId(backendId) {};

Member Function Documentation

◆ IsActivationSupported()

bool IsActivationSupported ( const TensorInfo input,
const TensorInfo output,
const ActivationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 151 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

155 {
156  return m_LayerSupport->IsActivationSupported(input, output, descriptor, reasonIfUnsupported.value());
157 }

◆ IsAdditionSupported()

bool IsAdditionSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 159 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

163 {
164  return m_LayerSupport->IsAdditionSupported(input0, input1, output, reasonIfUnsupported.value());
165 }

◆ IsArgMinMaxSupported()

bool IsArgMinMaxSupported ( const TensorInfo input,
const TensorInfo output,
const ArgMinMaxDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 167 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

171 {
172  return m_LayerSupport->IsArgMinMaxSupported(input, output, descriptor, reasonIfUnsupported.value());
173 }

◆ IsBackendRegistered()

bool IsBackendRegistered ( ) const

Definition at line 141 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

142 {
143  if (m_LayerSupport)
144  {
145  return true;
146  }
147 
148  return false;
149 }

◆ 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 at line 175 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

183 {
184  return m_LayerSupport->IsBatchNormalizationSupported(input,
185  output,
186  mean,
187  var,
188  beta,
189  gamma,
190  descriptor,
191  reasonIfUnsupported.value());
192 }

◆ IsBatchToSpaceNdSupported()

bool IsBatchToSpaceNdSupported ( const TensorInfo input,
const TensorInfo output,
const BatchToSpaceNdDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 194 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

198 {
199  return m_LayerSupport->IsBatchToSpaceNdSupported(input,
200  output,
201  descriptor,
202  reasonIfUnsupported.value());
203 }

◆ IsCastSupported()

bool IsCastSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 205 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

208 {
209  return m_LayerSupport->IsCastSupported(input, output, reasonIfUnsupported.value());
210 }

◆ IsChannelShuffleSupported()

bool IsChannelShuffleSupported ( const TensorInfo input,
const TensorInfo output,
const ChannelShuffleDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 212 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

215 {
216  return m_LayerSupport->IsChannelShuffleSupported(input,
217  output,
218  descriptor,
219  reasonIfUnsupported.value());
220 }

◆ IsComparisonSupported()

bool IsComparisonSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
const ComparisonDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 222 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

227 {
228  return m_LayerSupport->IsComparisonSupported(input0, input1, output, descriptor, reasonIfUnsupported.value());
229 }

◆ IsConcatSupported()

bool IsConcatSupported ( const std::vector< const TensorInfo *>  inputs,
const TensorInfo output,
const OriginsDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 231 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

235 {
236  return m_LayerSupport->IsConcatSupported(inputs, output, descriptor, reasonIfUnsupported.value());
237 }

◆ IsConstantSupported()

bool IsConstantSupported ( const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 239 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

241 {
242  return m_LayerSupport->IsConstantSupported(output, reasonIfUnsupported.value());
243 }

◆ IsConvertBf16ToFp32Supported()

bool IsConvertBf16ToFp32Supported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 245 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

248 {
249  return m_LayerSupport->IsConvertBf16ToFp32Supported(input, output, reasonIfUnsupported.value());
250 }

◆ IsConvertFp16ToFp32Supported()

bool IsConvertFp16ToFp32Supported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 259 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

262 {
263  return m_LayerSupport->IsConvertFp16ToFp32Supported(input, output, reasonIfUnsupported.value());
264 }

◆ IsConvertFp32ToBf16Supported()

bool IsConvertFp32ToBf16Supported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 252 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

255 {
256  return m_LayerSupport->IsConvertFp32ToBf16Supported(input, output, reasonIfUnsupported.value());
257 }

◆ IsConvertFp32ToFp16Supported()

bool IsConvertFp32ToFp16Supported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 266 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

269 {
270  return m_LayerSupport->IsConvertFp32ToFp16Supported(input, output, reasonIfUnsupported.value());
271 }

◆ 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 at line 273 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

279 {
280  return m_LayerSupport->IsConvolution2dSupported(input,
281  output,
282  descriptor,
283  weights,
284  biases,
285  reasonIfUnsupported.value());
286 }

◆ 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 at line 288 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

294 {
295  return m_LayerSupport->IsConvolution3dSupported(input,
296  output,
297  descriptor,
298  weights,
299  biases,
300  reasonIfUnsupported.value());
301 }

◆ IsDebugSupported()

bool IsDebugSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 303 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

306 {
307  return m_LayerSupport->IsDebugSupported(input, output, reasonIfUnsupported.value());
308 }

◆ IsDepthToSpaceSupported()

bool IsDepthToSpaceSupported ( const TensorInfo input,
const TensorInfo output,
const DepthToSpaceDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 310 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

314 {
315  return m_LayerSupport->IsDepthToSpaceSupported(input, output, descriptor, reasonIfUnsupported.value());
316 }

◆ 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 at line 318 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

325 {
326  return m_LayerSupport->IsDepthwiseConvolutionSupported(input,
327  output,
328  descriptor,
329  weights,
330  biases,
331  reasonIfUnsupported.value());
332 }

◆ IsDequantizeSupported()

bool IsDequantizeSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 334 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

337 {
338  return m_LayerSupport->IsDequantizeSupported(input, output, reasonIfUnsupported.value());
339 }

◆ 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 at line 341 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

350 {
351  return m_LayerSupport->IsDetectionPostProcessSupported(boxEncodings,
352  scores,
353  anchors,
354  detectionBoxes,
355  detectionClasses,
356  detectionScores,
357  numDetections,
358  descriptor,
359  reasonIfUnsupported);
360 }

◆ 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 at line 362 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

369 {
370  return m_LayerSupport->IsDilatedDepthwiseConvolutionSupported(input,
371  output,
372  descriptor,
373  weights,
374  biases,
375  reasonIfUnsupported);
376 }

◆ IsDivisionSupported()

bool IsDivisionSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 378 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

382 {
383  return m_LayerSupport->IsDivisionSupported(input0, input1, output, reasonIfUnsupported.value());
384 }

◆ IsElementwiseUnarySupported()

bool IsElementwiseUnarySupported ( const TensorInfo input,
const TensorInfo output,
const ElementwiseUnaryDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 386 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

390 {
391  return m_LayerSupport->IsElementwiseUnarySupported(input, output, descriptor, reasonIfUnsupported.value());
392 }

◆ IsFakeQuantizationSupported()

bool IsFakeQuantizationSupported ( const TensorInfo input,
const FakeQuantizationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 394 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

397 {
398  return m_LayerSupport->IsFakeQuantizationSupported(input, descriptor, reasonIfUnsupported.value());
399 }

◆ IsFillSupported()

bool IsFillSupported ( const TensorInfo input,
const TensorInfo output,
const FillDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 401 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

405 {
406  return m_LayerSupport->IsFillSupported(input, output, descriptor, reasonIfUnsupported.value());
407 }

◆ IsFloorSupported()

bool IsFloorSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 409 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

412 {
413  return m_LayerSupport->IsFloorSupported(input, output, reasonIfUnsupported.value());
414 }

◆ IsFullyConnectedSupported()

bool IsFullyConnectedSupported ( const TensorInfo input,
const TensorInfo output,
const TensorInfo weights,
const TensorInfo biases,
const FullyConnectedDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 416 of file BackendHelper.cpp.

References ARMNN_LOG, armnn::GetCapability(), TensorInfo::IsConstant(), BackendId::IsUndefined(), FullyConnectedDescriptor::m_BiasEnabled, FullyConnectedDescriptor::m_ConstantWeights, OptionalReferenceSwitch< std::is_reference< T >::value, T >::value(), and armnn::warning.

Referenced by LayerSupportHandle::LayerSupportHandle().

422 {
423  if(!m_BackendId.IsUndefined())
424  {
425  auto capability = GetCapability("ConstantTensorsAsInputs", m_BackendId);
426  if(!capability.has_value() || capability.value().GetValue().AsBool() == false)
427  {
428  if(!weights.IsConstant())
429  {
430  reasonIfUnsupported.value() =
431  "This backend might not support non constant weights. "
432  "If weights are constant make sure to set IsConstant when creating TensorInfo";
433  return false;
434  }
435  if(descriptor.m_BiasEnabled)
436  {
437  if(!biases.IsConstant())
438  {
439  reasonIfUnsupported.value() =
440  "This backend might not support non constant bias. "
441  "If bias are constant make sure to set IsConstant when creating TensorInfo";
442  return false;
443  }
444  }
445 
446  // At the first stage we will only print a warning. this is to give
447  // backend developers a chance to adopt and read weights from input slots.
448  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
449  "If you are a backend developer please find more information in our "
450  "doxygen documentation on github https://github.com/ARM-software/armnn "
451  "under the keyword 'ConstTensorsAsInputs'.";
452  }
453 
454  if(!descriptor.m_ConstantWeights)
455  {
456  auto capability = GetCapability("NonConstWeights", m_BackendId);
457  if (capability.has_value() && capability.value().GetValue().AsBool() == true)
458  {
459  return true;
460  }
461  return false;
462  }
463  }
464 
465  return m_LayerSupport->IsFullyConnectedSupported(input,
466  output,
467  weights,
468  biases,
469  descriptor,
470  reasonIfUnsupported.value());
471 }
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...
#define ARMNN_LOG(severity)
Definition: Logging.hpp:202
bool IsUndefined() const
Definition: BackendId.hpp:141

◆ IsGatherSupported()

bool IsGatherSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
const GatherDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 473 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

478 {
479  return m_LayerSupport->IsGatherSupported(input0, input1, output, descriptor, reasonIfUnsupported.value());
480 }

◆ IsInputSupported()

bool IsInputSupported ( const TensorInfo input,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 482 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

484 {
485  return m_LayerSupport->IsInputSupported(input, reasonIfUnsupported.value());
486 }

◆ IsInstanceNormalizationSupported()

bool IsInstanceNormalizationSupported ( const TensorInfo input,
const TensorInfo output,
const InstanceNormalizationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 488 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

493 {
494  return m_LayerSupport->IsInstanceNormalizationSupported(input, output, descriptor, reasonIfUnsupported.value());
495 }

◆ IsL2NormalizationSupported()

bool IsL2NormalizationSupported ( const TensorInfo input,
const TensorInfo output,
const L2NormalizationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 497 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

501 {
502  return m_LayerSupport->IsL2NormalizationSupported(input, output, descriptor, reasonIfUnsupported.value());
503 }

◆ IsLogicalBinarySupported()

bool IsLogicalBinarySupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
const LogicalBinaryDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 505 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

510 {
511  return m_LayerSupport->IsLogicalBinarySupported(input0,
512  input1,
513  output,
514  descriptor,
515  reasonIfUnsupported.value());
516 }

◆ IsLogicalUnarySupported()

bool IsLogicalUnarySupported ( const TensorInfo input,
const TensorInfo output,
const ElementwiseUnaryDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 518 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

522 {
523  return m_LayerSupport->IsLogicalUnarySupported(input, output, descriptor, reasonIfUnsupported.value());
524 }

◆ IsLogSoftmaxSupported()

bool IsLogSoftmaxSupported ( const TensorInfo input,
const TensorInfo output,
const LogSoftmaxDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 526 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

530 {
531  return m_LayerSupport->IsLogSoftmaxSupported(input, output, descriptor, reasonIfUnsupported.value());
532 }

◆ 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 at line 534 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

544 {
545  return m_LayerSupport->IsLstmSupported(input,
546  outputStateIn,
547  cellStateIn,
548  scratchBuffer,
549  outputStateOut,
550  cellStateOut,
551  output,
552  descriptor,
553  paramsInfo,
554  reasonIfUnsupported);
555 }

◆ IsMaximumSupported()

bool IsMaximumSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 557 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

561 {
562  return m_LayerSupport->IsMaximumSupported(input0, input1, output, reasonIfUnsupported.value());
563 }

◆ IsMeanSupported()

bool IsMeanSupported ( const TensorInfo input,
const TensorInfo output,
const MeanDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 565 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

569 {
570  return m_LayerSupport->IsMeanSupported(input, output, descriptor, reasonIfUnsupported.value());
571 }

◆ IsMemCopySupported()

bool IsMemCopySupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 573 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

576 {
577  return m_LayerSupport->IsMemCopySupported(input, output, reasonIfUnsupported.value());
578 }

◆ IsMemImportSupported()

bool IsMemImportSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 580 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

583 {
584  return m_LayerSupport->IsMemImportSupported(input, output, reasonIfUnsupported.value());
585 }

◆ IsMergeSupported()

bool IsMergeSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 587 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

591 {
592  return m_LayerSupport->IsMergeSupported(input0, input1, output, reasonIfUnsupported.value());
593 }

◆ IsMinimumSupported()

bool IsMinimumSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 595 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

599 {
600  return m_LayerSupport->IsMinimumSupported(input0, input1, output, reasonIfUnsupported.value());
601 }

◆ IsMultiplicationSupported()

bool IsMultiplicationSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 603 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

607 {
608  return m_LayerSupport->IsMultiplicationSupported(input0, input1, output, reasonIfUnsupported.value());
609 }

◆ IsNormalizationSupported()

bool IsNormalizationSupported ( const TensorInfo input,
const TensorInfo output,
const NormalizationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 611 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

615 {
616  return m_LayerSupport->IsNormalizationSupported(input, output, descriptor, reasonIfUnsupported.value());
617 }

◆ IsOutputSupported()

bool IsOutputSupported ( const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 619 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

621 {
622  return m_LayerSupport->IsOutputSupported(output, reasonIfUnsupported.value());
623 }

◆ IsPadSupported()

bool IsPadSupported ( const TensorInfo input,
const TensorInfo output,
const PadDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 625 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

629 {
630  return m_LayerSupport->IsPadSupported(input, output, descriptor, reasonIfUnsupported.value());
631 }

◆ IsPermuteSupported()

bool IsPermuteSupported ( const TensorInfo input,
const TensorInfo output,
const PermuteDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 633 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

637 {
638  return m_LayerSupport->IsPermuteSupported(input, output, descriptor, reasonIfUnsupported.value());
639 }

◆ IsPooling2dSupported()

bool IsPooling2dSupported ( const TensorInfo input,
const TensorInfo output,
const Pooling2dDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 641 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

645 {
646  return m_LayerSupport->IsPooling2dSupported(input, output, descriptor, reasonIfUnsupported.value());
647 }

◆ IsPreCompiledSupported()

bool IsPreCompiledSupported ( const TensorInfo input,
const PreCompiledDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 649 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

652 {
653  return m_LayerSupport->IsPreCompiledSupported(input, descriptor, reasonIfUnsupported.value());
654 }

◆ IsPreluSupported()

bool IsPreluSupported ( const TensorInfo input,
const TensorInfo alpha,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 656 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

660 {
661  return m_LayerSupport->IsPreluSupported(input, alpha, output, reasonIfUnsupported.value());
662 }

◆ 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 at line 671 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

680 {
681  return m_LayerSupport->IsQLstmSupported(input,
682  previousOutputIn,
683  previousCellStateIn,
684  outputStateOut,
685  cellStateOut,
686  output,
687  descriptor,
688  paramsInfo,
689  reasonIfUnsupported);
690 }

◆ 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 at line 692 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

699 {
700  return m_LayerSupport->IsQuantizedLstmSupported(input,
701  previousCellStateIn,
702  previousOutputIn,
703  cellStateOut,
704  output,
705  paramsInfo,
706  reasonIfUnsupported);
707 }

◆ IsQuantizeSupported()

bool IsQuantizeSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 664 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

667 {
668  return m_LayerSupport->IsQuantizeSupported(input, output, reasonIfUnsupported.value());
669 }

◆ IsRankSupported()

bool IsRankSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 709 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

712 {
713  return m_LayerSupport->IsRankSupported(input, output, reasonIfUnsupported.value());
714 }

◆ IsReduceSupported()

bool IsReduceSupported ( const TensorInfo input,
const TensorInfo output,
const ReduceDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 716 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

720 {
721  return m_LayerSupport->IsReduceSupported(input, output, descriptor, reasonIfUnsupported.value());
722 }

◆ IsReshapeSupported()

bool IsReshapeSupported ( const TensorInfo input,
const TensorInfo output,
const ReshapeDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 724 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

728 {
729  return m_LayerSupport->IsReshapeSupported(input, output, descriptor, reasonIfUnsupported.value());
730 }

◆ IsResizeSupported()

bool IsResizeSupported ( const TensorInfo input,
const TensorInfo output,
const ResizeDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 732 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

736 {
737  return m_LayerSupport->IsResizeSupported(input, output, descriptor, reasonIfUnsupported.value());
738 }

◆ IsShapeSupported()

bool IsShapeSupported ( const TensorInfo input,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 740 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

743 {
744  return m_LayerSupport->IsShapeSupported(input, output, reasonIfUnsupported.value());
745 }

◆ IsSliceSupported()

bool IsSliceSupported ( const TensorInfo input,
const TensorInfo output,
const SliceDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 747 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

751 {
752  return m_LayerSupport->IsSliceSupported(input, output, descriptor, reasonIfUnsupported.value());
753 }

◆ IsSoftmaxSupported()

bool IsSoftmaxSupported ( const TensorInfo input,
const TensorInfo output,
const SoftmaxDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 755 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

759 {
760  return m_LayerSupport->IsSoftmaxSupported(input, output, descriptor, reasonIfUnsupported.value());
761 }

◆ IsSpaceToBatchNdSupported()

bool IsSpaceToBatchNdSupported ( const TensorInfo input,
const TensorInfo output,
const SpaceToBatchNdDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 763 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

767 {
768  return m_LayerSupport->IsSpaceToBatchNdSupported(input, output, descriptor, reasonIfUnsupported.value());
769 }

◆ IsSpaceToDepthSupported()

bool IsSpaceToDepthSupported ( const TensorInfo input,
const TensorInfo output,
const SpaceToDepthDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 771 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

775 {
776  return m_LayerSupport->IsSpaceToDepthSupported(input, output, descriptor, reasonIfUnsupported.value());
777 }

◆ IsSplitterSupported()

bool IsSplitterSupported ( const TensorInfo input,
const std::vector< std::reference_wrapper< TensorInfo >> &  outputs,
const ViewsDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 779 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

783 {
784  return m_LayerSupport->IsSplitterSupported(input, outputs, descriptor, reasonIfUnsupported.value());
785 }

◆ IsStackSupported()

bool IsStackSupported ( const std::vector< const TensorInfo *> &  inputs,
const TensorInfo output,
const StackDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 787 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

791 {
792  return m_LayerSupport->IsStackSupported(inputs, output, descriptor, reasonIfUnsupported.value());
793 }

◆ IsStandInSupported()

bool IsStandInSupported ( const std::vector< const TensorInfo *> &  inputs,
const std::vector< const TensorInfo *> &  outputs,
const StandInDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 795 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

799 {
800  return m_LayerSupport->IsStandInSupported(inputs, outputs, descriptor, reasonIfUnsupported.value());
801 }

◆ IsStridedSliceSupported()

bool IsStridedSliceSupported ( const TensorInfo input,
const TensorInfo output,
const StridedSliceDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 804 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

808 {
809  return m_LayerSupport->IsStridedSliceSupported(input, output, descriptor, reasonIfUnsupported.value());
810 }

◆ IsSubtractionSupported()

bool IsSubtractionSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 812 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

816 {
817  return m_LayerSupport->IsSubtractionSupported(input0, input1, output, reasonIfUnsupported.value());
818 }

◆ IsSwitchSupported()

bool IsSwitchSupported ( const TensorInfo input0,
const TensorInfo input1,
const TensorInfo output0,
const TensorInfo output1,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 820 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

825 {
826  return m_LayerSupport->IsSwitchSupported(input0, input1, output0, output1, reasonIfUnsupported.value());
827 }

◆ 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 at line 829 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

836 {
837  return m_LayerSupport->IsTransposeConvolution2dSupported(input,
838  output,
839  descriptor,
840  weights,
841  biases,
842  reasonIfUnsupported.value());
843 }

◆ IsTransposeSupported()

bool IsTransposeSupported ( const TensorInfo input,
const TensorInfo output,
const TransposeDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 845 of file BackendHelper.cpp.

References OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

849 {
850  return m_LayerSupport->IsTransposeSupported(input, output, descriptor, reasonIfUnsupported.value());
851 }

◆ IsUnidirectionalSequenceLstmSupported()

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 paramsInfo,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 853 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

862 {
863  return m_LayerSupport->IsUnidirectionalSequenceLstmSupported(input,
864  outputStateIn,
865  cellStateIn,
866  output,
867  hiddenStateOutput,
868  cellStateOutput,
869  descriptor,
870  paramsInfo,
871  reasonIfUnsupported);
872 }

The documentation for this class was generated from the following files: