ArmNN
 22.08
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 IsBatchMatMulSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const BatchMatMulDescriptor &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 IsGatherNdSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, 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 IsPooling3dSupported (const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &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())
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This function has been deprecated, please use function without " "Optional TensorInfos", "23.02") bool IsUnidirectionalSequenceLstmSupported(const TensorInfo &input
 
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())
 

Public Attributes

const TensorInfooutputStateIn
 
const TensorInfo const TensorInfocellStateIn
 
const TensorInfo const TensorInfo const TensorInfooutput
 
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > & hiddenStateOutput
 
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > & cellStateOutput
 
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfoparamsInfo
 
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo 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 LayerSupportHandle::ARMNN_DEPRECATED_MSG_REMOVAL_DATE(), LayerSupportHandle::cellStateIn, LayerSupportHandle::descriptor, LayerSupportHandle::IsActivationSupported(), LayerSupportHandle::IsAdditionSupported(), LayerSupportHandle::IsArgMinMaxSupported(), LayerSupportHandle::IsBackendRegistered(), LayerSupportHandle::IsBatchMatMulSupported(), LayerSupportHandle::IsBatchNormalizationSupported(), LayerSupportHandle::IsBatchToSpaceNdSupported(), 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::IsGatherNdSupported(), 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::IsPooling3dSupported(), 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(), LayerSupportHandle::IsUnidirectionalSequenceLstmSupported(), LayerSupportHandle::output, LayerSupportHandle::outputStateIn, LayerSupportHandle::paramsInfo, and LayerSupportHandle::reasonIfUnsupported.

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

Member Function Documentation

◆ ARMNN_DEPRECATED_MSG_REMOVAL_DATE()

ARMNN_DEPRECATED_MSG_REMOVAL_DATE ( "This function has been  deprecated,
please use function without " "Optional TensorInfos ,
"23.02"   
) const &

◆ IsActivationSupported()

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

Definition at line 137 of file BackendHelper.cpp.

References armnn::Activation.

Referenced by LayerSupportHandle::LayerSupportHandle().

141 {
142  TensorInfos infos{input, output};
143 
144  return m_LayerSupport->IsLayerSupported(LayerType::Activation,
145  infos,
146  descriptor,
147  EmptyOptional(),
148  EmptyOptional(),
150 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsAdditionSupported()

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

Definition at line 152 of file BackendHelper.cpp.

References armnn::Addition.

Referenced by LayerSupportHandle::LayerSupportHandle().

156 {
157  TensorInfos infos{input0, input1, output};
158 
159  return m_LayerSupport->IsLayerSupported(LayerType::Addition,
160  infos,
161  BaseDescriptor(),
162  EmptyOptional(),
163  EmptyOptional(),
165 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 armnn::ArgMinMax.

Referenced by LayerSupportHandle::LayerSupportHandle().

171 {
172  TensorInfos infos{input, output};
173 
174  return m_LayerSupport->IsLayerSupported(LayerType::ArgMinMax,
175  infos,
176  descriptor,
177  EmptyOptional(),
178  EmptyOptional(),
180 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsBackendRegistered()

bool IsBackendRegistered ( ) const

Definition at line 125 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

126 {
127  if (m_LayerSupport)
128  {
129  return true;
130  }
131 
132  return false;
133 }

◆ IsBatchMatMulSupported()

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

Definition at line 182 of file BackendHelper.cpp.

References armnn::BatchMatMul.

Referenced by LayerSupportHandle::LayerSupportHandle().

187 {
188  TensorInfos infos{input0, input1, output};
189 
190  return m_LayerSupport->IsLayerSupported(LayerType::BatchMatMul,
191  infos,
192  descriptor,
193  EmptyOptional(),
194  EmptyOptional(),
196 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 198 of file BackendHelper.cpp.

References armnn::BatchNormalization, and LayerSupportHandle::output.

Referenced by LayerSupportHandle::LayerSupportHandle().

206 {
207  TensorInfos infos{input, output, mean, var, beta, gamma};
208 
209  return m_LayerSupport->IsLayerSupported(LayerType::BatchNormalization,
210  infos,
211  descriptor,
212  EmptyOptional(),
213  EmptyOptional(),
215 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsBatchToSpaceNdSupported()

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

Definition at line 217 of file BackendHelper.cpp.

References armnn::BatchToSpaceNd.

Referenced by LayerSupportHandle::LayerSupportHandle().

221 {
222  TensorInfos infos{input, output};
223 
224  return m_LayerSupport->IsLayerSupported(LayerType::BatchToSpaceNd,
225  infos,
226  descriptor,
227  EmptyOptional(),
228  EmptyOptional(),
230 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsCastSupported()

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

Definition at line 232 of file BackendHelper.cpp.

References armnn::Cast.

Referenced by LayerSupportHandle::LayerSupportHandle().

235 {
236  TensorInfos infos{input, output};
237 
238  return m_LayerSupport->IsLayerSupported(LayerType::Cast,
239  infos,
240  BaseDescriptor(),
241  EmptyOptional(),
242  EmptyOptional(),
244 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsChannelShuffleSupported()

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

Definition at line 246 of file BackendHelper.cpp.

References armnn::ChannelShuffle.

Referenced by LayerSupportHandle::LayerSupportHandle().

250 {
251  TensorInfos infos{input, output};
252 
253  return m_LayerSupport->IsLayerSupported(LayerType::ChannelShuffle,
254  infos,
255  descriptor,
256  EmptyOptional(),
257  EmptyOptional(),
259 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsComparisonSupported()

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

Definition at line 261 of file BackendHelper.cpp.

References armnn::Comparison.

Referenced by LayerSupportHandle::LayerSupportHandle().

266 {
267  TensorInfos infos{input0, input1, output};
268 
269  return m_LayerSupport->IsLayerSupported(LayerType::Comparison,
270  infos,
271  descriptor,
272  EmptyOptional(),
273  EmptyOptional(),
275 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConcatSupported()

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

Definition at line 277 of file BackendHelper.cpp.

References armnn::Concat.

Referenced by LayerSupportHandle::LayerSupportHandle().

281 {
282  TensorInfos infos;
283  for (const TensorInfo* inputInfo : inputs)
284  {
285  infos.push_back(*inputInfo);
286  }
287  infos.push_back(output);
288 
289  return m_LayerSupport->IsLayerSupported(LayerType::Concat,
290  infos,
291  descriptor,
292  EmptyOptional(),
293  EmptyOptional(),
295 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConstantSupported()

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

Definition at line 297 of file BackendHelper.cpp.

References armnn::Constant.

Referenced by LayerSupportHandle::LayerSupportHandle().

299 {
300  TensorInfos infos{output};
301 
302  return m_LayerSupport->IsLayerSupported(LayerType::Constant,
303  infos,
304  BaseDescriptor(),
305  EmptyOptional(),
306  EmptyOptional(),
308 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConvertBf16ToFp32Supported()

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

Definition at line 310 of file BackendHelper.cpp.

References armnn::ConvertBf16ToFp32.

Referenced by LayerSupportHandle::LayerSupportHandle().

313 {
314  TensorInfos infos{input, output};
315 
316  return m_LayerSupport->IsLayerSupported(LayerType::ConvertBf16ToFp32,
317  infos,
318  BaseDescriptor(),
319  EmptyOptional(),
320  EmptyOptional(),
322 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConvertFp16ToFp32Supported()

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

Definition at line 338 of file BackendHelper.cpp.

References armnn::ConvertFp16ToFp32.

Referenced by LayerSupportHandle::LayerSupportHandle().

341 {
342  TensorInfos infos{input, output};
343 
344  return m_LayerSupport->IsLayerSupported(LayerType::ConvertFp16ToFp32,
345  infos,
346  BaseDescriptor(),
347  EmptyOptional(),
348  EmptyOptional(),
350 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConvertFp32ToBf16Supported()

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

Definition at line 324 of file BackendHelper.cpp.

References armnn::ConvertFp32ToBf16.

Referenced by LayerSupportHandle::LayerSupportHandle().

327 {
328  TensorInfos infos{input, output};
329 
330  return m_LayerSupport->IsLayerSupported(LayerType::ConvertFp32ToBf16,
331  infos,
332  BaseDescriptor(),
333  EmptyOptional(),
334  EmptyOptional(),
336 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsConvertFp32ToFp16Supported()

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

Definition at line 352 of file BackendHelper.cpp.

References armnn::ConvertFp32ToFp16.

Referenced by LayerSupportHandle::LayerSupportHandle().

355 {
356  TensorInfos infos{input, output};
357 
358  return m_LayerSupport->IsLayerSupported(LayerType::ConvertFp32ToFp16,
359  infos,
360  BaseDescriptor(),
361  EmptyOptional(),
362  EmptyOptional(),
364 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 366 of file BackendHelper.cpp.

References ARMNN_LOG, armnn::Convolution2d, armnn::GetCapability(), OptionalBase::has_value(), TensorInfo::IsConstant(), BackendId::IsUndefined(), Convolution2dDescriptor::m_BiasEnabled, LayerSupportHandle::output, OptionalReferenceSwitch< std::is_reference< T >::value, T >::value(), and armnn::warning.

Referenced by LayerSupportHandle::LayerSupportHandle().

372 {
373  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
374  TensorInfos infos{input, output, weights, biasesVal};
375 
376  Optional<const BackendOptions::BackendOption> capability ;
377  if (!m_BackendId.IsUndefined())
378  {
379  capability = GetCapability("NonConstWeights", m_BackendId);
380  if (!capability.has_value() || capability.value().GetValue().AsBool() == false)
381  {
382  if (!weights.IsConstant())
383  {
384  if (reasonIfUnsupported.has_value())
385  {
386  reasonIfUnsupported.value() =
387  "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
388  "Convolution2d weights are set as dynamic (non constant). ";
389  }
390  return false;
391  }
392  if (descriptor.m_BiasEnabled && !biasesVal.IsConstant())
393  {
394  if (reasonIfUnsupported.has_value())
395  {
396  reasonIfUnsupported.value() =
397  "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
398  "Convolution2d biases are set as dynamic (non constant). ";
399  }
400  return false;
401  }
402 
403  // At the first stage we will only print a warning. this is to give
404  // backend developers a chance to adopt and read weights from input slots.
405  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
406  "If you are a backend developer please find more information in our "
407  "doxygen documentation on github https://github.com/ARM-software/armnn "
408  "under the keyword 'ConstTensorsAsInputs'.";
409  }
410  }
411 
412  return m_LayerSupport->IsLayerSupported(LayerType::Convolution2d,
413  infos,
414  descriptor,
415  EmptyOptional(),
416  EmptyOptional(),
418 }
bool IsConstant() const
Definition: Tensor.cpp:509
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:205
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
bool IsUndefined() const
Definition: BackendId.hpp:141

◆ 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 420 of file BackendHelper.cpp.

References armnn::Convolution3d, OptionalBase::has_value(), LayerSupportHandle::output, and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

426 {
427  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
428  TensorInfos infos{input, output, weights, biasesVal};
429 
430  return m_LayerSupport->IsLayerSupported(LayerType::Convolution3d,
431  infos,
432  descriptor,
433  EmptyOptional(),
434  EmptyOptional(),
436 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsDebugSupported()

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

Definition at line 438 of file BackendHelper.cpp.

References armnn::Debug.

Referenced by LayerSupportHandle::LayerSupportHandle().

441 {
442  TensorInfos infos{input, output};
443 
444  return m_LayerSupport->IsLayerSupported(LayerType::Debug,
445  infos,
446  BaseDescriptor(),
447  EmptyOptional(),
448  EmptyOptional(),
450 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsDepthToSpaceSupported()

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

Definition at line 452 of file BackendHelper.cpp.

References armnn::DepthToSpace.

Referenced by LayerSupportHandle::LayerSupportHandle().

456 {
457  TensorInfos infos{input, output};
458 
459  return m_LayerSupport->IsLayerSupported(LayerType::DepthToSpace,
460  infos,
461  descriptor,
462  EmptyOptional(),
463  EmptyOptional(),
465 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 467 of file BackendHelper.cpp.

References ARMNN_LOG, armnn::DepthwiseConvolution2d, armnn::GetCapability(), OptionalBase::has_value(), TensorInfo::IsConstant(), BackendId::IsUndefined(), DepthwiseConvolution2dDescriptor::m_BiasEnabled, LayerSupportHandle::output, OptionalReferenceSwitch< std::is_reference< T >::value, T >::value(), and armnn::warning.

Referenced by LayerSupportHandle::LayerSupportHandle().

474 {
475  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
476  TensorInfos infos{input, output, weights, biasesVal};
477 
478  Optional<const BackendOptions::BackendOption> capability ;
479  if (!m_BackendId.IsUndefined())
480  {
481  capability = GetCapability("NonConstWeights", m_BackendId);
482  if (!capability.has_value() || capability.value().GetValue().AsBool() == false)
483  {
484  if (!weights.IsConstant())
485  {
486  if (reasonIfUnsupported.has_value())
487  {
488  reasonIfUnsupported.value() =
489  "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
490  "DepthwiseConvolution2d weights are set as dynamic (non constant). ";
491  }
492  return false;
493  }
494  if (descriptor.m_BiasEnabled && !biasesVal.IsConstant())
495  {
496  if (reasonIfUnsupported.has_value())
497  {
498  reasonIfUnsupported.value() =
499  "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
500  "DepthwiseConvolution2d biases are set as dynamic (non constant). ";
501  }
502  return false;
503  }
504  // At the first stage we will only print a warning. this is to give
505  // backend developers a chance to adopt and read weights from input slots.
506  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
507  "If you are a backend developer please find more information in our "
508  "doxygen documentation on github https://github.com/ARM-software/armnn "
509  "under the keyword 'ConstTensorsAsInputs'.";
510  }
511  }
512 
513  return m_LayerSupport->IsLayerSupported(LayerType::DepthwiseConvolution2d,
514  infos,
515  descriptor,
516  EmptyOptional(),
517  EmptyOptional(),
519 }
bool IsConstant() const
Definition: Tensor.cpp:509
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:205
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
bool IsUndefined() const
Definition: BackendId.hpp:141

◆ IsDequantizeSupported()

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

Definition at line 521 of file BackendHelper.cpp.

References armnn::Dequantize.

Referenced by LayerSupportHandle::LayerSupportHandle().

524 {
525  TensorInfos infos{input, output};
526 
527  return m_LayerSupport->IsLayerSupported(LayerType::Dequantize,
528  infos,
529  BaseDescriptor(),
530  EmptyOptional(),
531  EmptyOptional(),
533 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 535 of file BackendHelper.cpp.

References armnn::DetectionPostProcess.

Referenced by LayerSupportHandle::LayerSupportHandle().

544 {
545  TensorInfos infos{boxEncodings, scores, anchors, detectionBoxes, detectionClasses, detectionScores, numDetections};
546 
547  return m_LayerSupport->IsLayerSupported(LayerType::DetectionPostProcess,
548  infos,
549  descriptor,
550  EmptyOptional(),
551  EmptyOptional(),
553 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 555 of file BackendHelper.cpp.

References ARMNN_LOG, armnn::DepthwiseConvolution2d, armnn::GetCapability(), OptionalBase::has_value(), TensorInfo::IsConstant(), BackendId::IsUndefined(), DepthwiseConvolution2dDescriptor::m_BiasEnabled, LayerSupportHandle::output, OptionalReferenceSwitch< std::is_reference< T >::value, T >::value(), and armnn::warning.

Referenced by LayerSupportHandle::LayerSupportHandle().

562 {
563  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
564  TensorInfos infos{input, output, weights, biasesVal};
565 
566  Optional<const BackendOptions::BackendOption> capability ;
567  if (!m_BackendId.IsUndefined())
568  {
569  capability = GetCapability("NonConstWeights", m_BackendId);
570  if (!capability.has_value() || capability.value().GetValue().AsBool() == false)
571  {
572  if (!weights.IsConstant())
573  {
574  if (reasonIfUnsupported.has_value())
575  {
576  reasonIfUnsupported.value() =
577  "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
578  "DilatedDepthwiseConvolution2d weights are set as dynamic (non constant). ";
579  }
580  return false;
581  }
582  if (descriptor.m_BiasEnabled && !biasesVal.IsConstant())
583  {
584  if (reasonIfUnsupported.has_value())
585  {
586  reasonIfUnsupported.value() =
587  "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
588  "DilatedDepthwiseConvolution2d biases are set as dynamic (non constant). ";
589  }
590  return false;
591  }
592  // At the first stage we will only print a warning. this is to give
593  // backend developers a chance to adopt and read weights from input slots.
594  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
595  "If you are a backend developer please find more information in our "
596  "doxygen documentation on github https://github.com/ARM-software/armnn "
597  "under the keyword 'ConstTensorsAsInputs'.";
598  }
599  }
600 
601  return m_LayerSupport->IsLayerSupported(LayerType::DepthwiseConvolution2d,
602  infos,
603  descriptor,
604  EmptyOptional(),
605  EmptyOptional(),
607 }
bool IsConstant() const
Definition: Tensor.cpp:509
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:205
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
bool IsUndefined() const
Definition: BackendId.hpp:141

◆ IsDivisionSupported()

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

Definition at line 609 of file BackendHelper.cpp.

References armnn::Division.

Referenced by LayerSupportHandle::LayerSupportHandle().

613 {
614  TensorInfos infos{input0, input1, output};
615 
616  return m_LayerSupport->IsLayerSupported(LayerType::Division,
617  infos,
618  BaseDescriptor(),
619  EmptyOptional(),
620  EmptyOptional(),
622 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsElementwiseUnarySupported()

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

Definition at line 624 of file BackendHelper.cpp.

References armnn::ElementwiseUnary.

Referenced by LayerSupportHandle::LayerSupportHandle().

628 {
629  TensorInfos infos{input, output};
630 
631  return m_LayerSupport->IsLayerSupported(LayerType::ElementwiseUnary,
632  infos,
633  descriptor,
634  EmptyOptional(),
635  EmptyOptional(),
637 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsFakeQuantizationSupported()

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

Definition at line 639 of file BackendHelper.cpp.

References armnn::FakeQuantization.

Referenced by LayerSupportHandle::LayerSupportHandle().

642 {
643  TensorInfos infos{input};
644 
645  return m_LayerSupport->IsLayerSupported(LayerType::FakeQuantization,
646  infos,
647  descriptor,
648  EmptyOptional(),
649  EmptyOptional(),
651 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsFillSupported()

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

Definition at line 653 of file BackendHelper.cpp.

References armnn::Fill.

Referenced by LayerSupportHandle::LayerSupportHandle().

657 {
658  TensorInfos infos{input, output};
659 
660  return m_LayerSupport->IsLayerSupported(LayerType::Fill,
661  infos,
662  descriptor,
663  EmptyOptional(),
664  EmptyOptional(),
666 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsFloorSupported()

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

Definition at line 668 of file BackendHelper.cpp.

References armnn::Floor.

Referenced by LayerSupportHandle::LayerSupportHandle().

671 {
672  TensorInfos infos{input, output};
673 
674  return m_LayerSupport->IsLayerSupported(LayerType::Floor,
675  infos,
676  BaseDescriptor(),
677  EmptyOptional(),
678  EmptyOptional(),
680 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 682 of file BackendHelper.cpp.

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

Referenced by LayerSupportHandle::LayerSupportHandle().

688 {
689  TensorInfos infos{input, output, weights, biases};
690 
691  Optional<const BackendOptions::BackendOption> capability;
692  if (!m_BackendId.IsUndefined())
693  {
694  capability = GetCapability("NonConstWeights", m_BackendId);
695  if (!capability.has_value() || capability.value().GetValue().AsBool() == false)
696  {
697  if (!descriptor.m_ConstantWeights)
698  {
699  if (reasonIfUnsupported.has_value())
700  {
701  reasonIfUnsupported.value() =
702  "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
703  "FullyConnected descriptor indicates that weights are dynamic (non constant). ";
704  }
705  return false;
706  }
707  if (!weights.IsConstant())
708  {
709  if (reasonIfUnsupported.has_value())
710  {
711  reasonIfUnsupported.value() =
712  "Backend is not capable of supporting dynamic weights (NonConstWeights) and "
713  "FullyConnected weights are set as dynamic (non constant). ";
714  }
715 
716  return false;
717  }
718  if (descriptor.m_BiasEnabled && !biases.IsConstant())
719  {
720  if (reasonIfUnsupported.has_value())
721  {
722  reasonIfUnsupported.value() =
723  "Backend is not capable of supporting dynamic biases (NonConstWeights) and "
724  "FullyConnected biases are set as dynamic (non constant). ";
725  }
726  return false;
727  }
728 
729  // At the first stage we will only print a warning. this is to give
730  // backend developers a chance to adopt and read weights from input slots.
731  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
732  "If you are a backend developer please find more information in our "
733  "doxygen documentation on github https://github.com/ARM-software/armnn "
734  "under the keyword 'ConstTensorsAsInputs'.";
735  }
736  }
737 
738  return m_LayerSupport->IsLayerSupported(LayerType::FullyConnected,
739  infos,
740  descriptor,
741  EmptyOptional(),
742  EmptyOptional(),
744 }
bool IsConstant() const
Definition: Tensor.cpp:509
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:205
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
bool IsUndefined() const
Definition: BackendId.hpp:141

◆ IsGatherNdSupported()

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

Definition at line 762 of file BackendHelper.cpp.

References armnn::GatherNd.

Referenced by LayerSupportHandle::LayerSupportHandle().

766 {
767  TensorInfos infos{input0, input1, output};
768 
769  return m_LayerSupport->IsLayerSupported(LayerType::GatherNd,
770  infos,
771  BaseDescriptor(),
772  EmptyOptional(),
773  EmptyOptional(),
775 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsGatherSupported()

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

Definition at line 746 of file BackendHelper.cpp.

References armnn::Gather.

Referenced by LayerSupportHandle::LayerSupportHandle().

751 {
752  TensorInfos infos{input0, input1, output};
753 
754  return m_LayerSupport->IsLayerSupported(LayerType::Gather,
755  infos,
756  descriptor,
757  EmptyOptional(),
758  EmptyOptional(),
760 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsInputSupported()

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

Definition at line 777 of file BackendHelper.cpp.

References armnn::Input.

Referenced by LayerSupportHandle::LayerSupportHandle().

779 {
780  TensorInfos infos{input};
781 
782  return m_LayerSupport->IsLayerSupported(LayerType::Input,
783  infos,
784  BaseDescriptor(),
785  EmptyOptional(),
786  EmptyOptional(),
788 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsInstanceNormalizationSupported()

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

Definition at line 790 of file BackendHelper.cpp.

References armnn::InstanceNormalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

795 {
796  TensorInfos infos{input, output};
797 
798  return m_LayerSupport->IsLayerSupported(LayerType::InstanceNormalization,
799  infos,
800  descriptor,
801  EmptyOptional(),
802  EmptyOptional(),
804 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsL2NormalizationSupported()

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

Definition at line 806 of file BackendHelper.cpp.

References armnn::L2Normalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

810 {
811  TensorInfos infos{input, output};
812 
813  return m_LayerSupport->IsLayerSupported(LayerType::L2Normalization,
814  infos,
815  descriptor,
816  EmptyOptional(),
817  EmptyOptional(),
819 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsLogicalBinarySupported()

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

Definition at line 821 of file BackendHelper.cpp.

References armnn::LogicalBinary.

Referenced by LayerSupportHandle::LayerSupportHandle().

826 {
827  TensorInfos infos{input0, input1, output};
828 
829  return m_LayerSupport->IsLayerSupported(LayerType::LogicalBinary,
830  infos,
831  descriptor,
832  EmptyOptional(),
833  EmptyOptional(),
835 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsLogicalUnarySupported()

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

Definition at line 837 of file BackendHelper.cpp.

References armnn::ElementwiseUnary.

Referenced by LayerSupportHandle::LayerSupportHandle().

841 {
842  TensorInfos infos{input, output};
843 
844  return m_LayerSupport->IsLayerSupported(LayerType::ElementwiseUnary,
845  infos,
846  descriptor,
847  EmptyOptional(),
848  EmptyOptional(),
850 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsLogSoftmaxSupported()

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

Definition at line 852 of file BackendHelper.cpp.

References armnn::LogSoftmax.

Referenced by LayerSupportHandle::LayerSupportHandle().

856 {
857  TensorInfos infos{input, output};
858 
859  return m_LayerSupport->IsLayerSupported(LayerType::LogSoftmax,
860  infos,
861  descriptor,
862  EmptyOptional(),
863  EmptyOptional(),
865 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 867 of file BackendHelper.cpp.

References LayerSupportHandle::cellStateIn, armnn::Lstm, and LayerSupportHandle::outputStateIn.

Referenced by LayerSupportHandle::LayerSupportHandle().

877 {
878  TensorInfos infos{input, outputStateIn, cellStateIn, scratchBuffer, outputStateOut, cellStateOut, output};
879 
880  return m_LayerSupport->IsLayerSupported(LayerType::Lstm,
881  infos,
882  descriptor,
883  paramsInfo,
884  EmptyOptional(),
886 }
const TensorInfo const TensorInfo & cellStateIn
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
const TensorInfo & outputStateIn
std::vector< TensorInfo > TensorInfos
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo & paramsInfo

◆ IsMaximumSupported()

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

Definition at line 888 of file BackendHelper.cpp.

References armnn::Maximum.

Referenced by LayerSupportHandle::LayerSupportHandle().

892 {
893  TensorInfos infos{input0, input1, output};
894 
895  return m_LayerSupport->IsLayerSupported(LayerType::Maximum,
896  infos,
897  BaseDescriptor(),
898  EmptyOptional(),
899  EmptyOptional(),
901 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMeanSupported()

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

Definition at line 903 of file BackendHelper.cpp.

References armnn::Mean.

Referenced by LayerSupportHandle::LayerSupportHandle().

907 {
908  TensorInfos infos{input, output};
909 
910  return m_LayerSupport->IsLayerSupported(LayerType::Mean,
911  infos,
912  descriptor,
913  EmptyOptional(),
914  EmptyOptional(),
916 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMemCopySupported()

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

Definition at line 918 of file BackendHelper.cpp.

References armnn::MemCopy.

Referenced by LayerSupportHandle::LayerSupportHandle().

921 {
922  TensorInfos infos{input, output};
923 
924  return m_LayerSupport->IsLayerSupported(LayerType::MemCopy,
925  infos,
926  BaseDescriptor(),
927  EmptyOptional(),
928  EmptyOptional(),
930 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMemImportSupported()

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

Definition at line 932 of file BackendHelper.cpp.

References armnn::MemImport.

Referenced by LayerSupportHandle::LayerSupportHandle().

935 {
936  TensorInfos infos{input, output};
937 
938  return m_LayerSupport->IsLayerSupported(LayerType::MemImport,
939  infos,
940  BaseDescriptor(),
941  EmptyOptional(),
942  EmptyOptional(),
944 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMergeSupported()

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

Definition at line 946 of file BackendHelper.cpp.

References armnn::Merge.

Referenced by LayerSupportHandle::LayerSupportHandle().

950 {
951  TensorInfos infos{input0, input1, output};
952 
953  return m_LayerSupport->IsLayerSupported(LayerType::Merge,
954  infos,
955  BaseDescriptor(),
956  EmptyOptional(),
957  EmptyOptional(),
959 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMinimumSupported()

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

Definition at line 961 of file BackendHelper.cpp.

References armnn::Minimum.

Referenced by LayerSupportHandle::LayerSupportHandle().

965 {
966  TensorInfos infos{input0, input1, output};
967 
968  return m_LayerSupport->IsLayerSupported(LayerType::Minimum,
969  infos,
970  BaseDescriptor(),
971  EmptyOptional(),
972  EmptyOptional(),
974 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsMultiplicationSupported()

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

Definition at line 976 of file BackendHelper.cpp.

References armnn::Multiplication.

Referenced by LayerSupportHandle::LayerSupportHandle().

980 {
981  TensorInfos infos{input0, input1, output};
982 
983  return m_LayerSupport->IsLayerSupported(LayerType::Multiplication,
984  infos,
985  BaseDescriptor(),
986  EmptyOptional(),
987  EmptyOptional(),
989 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsNormalizationSupported()

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

Definition at line 991 of file BackendHelper.cpp.

References armnn::Normalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

995 {
996  TensorInfos infos{input, output};
997 
998  return m_LayerSupport->IsLayerSupported(LayerType::Normalization,
999  infos,
1000  descriptor,
1001  EmptyOptional(),
1002  EmptyOptional(),
1004 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsOutputSupported()

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

Definition at line 1006 of file BackendHelper.cpp.

References armnn::Output.

Referenced by LayerSupportHandle::LayerSupportHandle().

1008 {
1009  TensorInfos infos{output};
1010 
1011  return m_LayerSupport->IsLayerSupported(LayerType::Output,
1012  infos,
1013  BaseDescriptor(),
1014  EmptyOptional(),
1015  EmptyOptional(),
1017 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPadSupported()

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

Definition at line 1019 of file BackendHelper.cpp.

References armnn::Pad.

Referenced by LayerSupportHandle::LayerSupportHandle().

1023 {
1024  TensorInfos infos{input, output};
1025 
1026  return m_LayerSupport->IsLayerSupported(LayerType::Pad,
1027  infos,
1028  descriptor,
1029  EmptyOptional(),
1030  EmptyOptional(),
1032 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPermuteSupported()

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

Definition at line 1034 of file BackendHelper.cpp.

References armnn::Permute.

Referenced by LayerSupportHandle::LayerSupportHandle().

1038 {
1039  TensorInfos infos{input, output};
1040 
1041  return m_LayerSupport->IsLayerSupported(LayerType::Permute,
1042  infos,
1043  descriptor,
1044  EmptyOptional(),
1045  EmptyOptional(),
1047 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPooling2dSupported()

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

Definition at line 1049 of file BackendHelper.cpp.

References armnn::Pooling2d.

Referenced by LayerSupportHandle::LayerSupportHandle().

1053 {
1054  TensorInfos infos{input, output};
1055 
1056  return m_LayerSupport->IsLayerSupported(LayerType::Pooling2d,
1057  infos,
1058  descriptor,
1059  EmptyOptional(),
1060  EmptyOptional(),
1062 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPooling3dSupported()

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

Definition at line 1064 of file BackendHelper.cpp.

References armnn::Pooling3d.

Referenced by LayerSupportHandle::LayerSupportHandle().

1068 {
1069  TensorInfos infos{input, output};
1070 
1071  return m_LayerSupport->IsLayerSupported(LayerType::Pooling3d,
1072  infos,
1073  descriptor,
1074  EmptyOptional(),
1075  EmptyOptional(),
1077 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPreCompiledSupported()

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

Definition at line 1079 of file BackendHelper.cpp.

References armnn::PreCompiled.

Referenced by LayerSupportHandle::LayerSupportHandle().

1082 {
1083  TensorInfos infos{input};
1084 
1085  return m_LayerSupport->IsLayerSupported(LayerType::PreCompiled,
1086  infos,
1087  descriptor,
1088  EmptyOptional(),
1089  EmptyOptional(),
1091 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsPreluSupported()

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

Definition at line 1093 of file BackendHelper.cpp.

References armnn::Prelu.

Referenced by LayerSupportHandle::LayerSupportHandle().

1097 {
1098  TensorInfos infos{input, alpha, output};
1099 
1100  return m_LayerSupport->IsLayerSupported(LayerType::Prelu,
1101  infos,
1102  BaseDescriptor(),
1103  EmptyOptional(),
1104  EmptyOptional(),
1106 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 1122 of file BackendHelper.cpp.

References armnn::QLstm.

Referenced by LayerSupportHandle::LayerSupportHandle().

1131 {
1132  TensorInfos infos{input, previousOutputIn, previousCellStateIn, outputStateOut, cellStateOut, output};
1133 
1134  return m_LayerSupport->IsLayerSupported(LayerType::QLstm,
1135  infos,
1136  descriptor,
1137  paramsInfo,
1138  EmptyOptional(),
1140 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo & paramsInfo

◆ 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 1142 of file BackendHelper.cpp.

References armnn::QuantizedLstm.

Referenced by LayerSupportHandle::LayerSupportHandle().

1149 {
1150  TensorInfos infos{input, previousCellStateIn, previousOutputIn, cellStateOut, output};
1151 
1152  return m_LayerSupport->IsLayerSupported(LayerType::QuantizedLstm,
1153  infos,
1154  BaseDescriptor(),
1155  EmptyOptional(),
1156  paramsInfo,
1158 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo & paramsInfo

◆ IsQuantizeSupported()

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

Definition at line 1108 of file BackendHelper.cpp.

References armnn::Quantize.

Referenced by LayerSupportHandle::LayerSupportHandle().

1111 {
1112  TensorInfos infos{input, output};
1113 
1114  return m_LayerSupport->IsLayerSupported(LayerType::Quantize,
1115  infos,
1116  BaseDescriptor(),
1117  EmptyOptional(),
1118  EmptyOptional(),
1120 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsRankSupported()

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

Definition at line 1160 of file BackendHelper.cpp.

References armnn::Rank.

Referenced by LayerSupportHandle::LayerSupportHandle().

1163 {
1164  TensorInfos infos{input, output};
1165 
1166  return m_LayerSupport->IsLayerSupported(LayerType::Rank,
1167  infos,
1168  BaseDescriptor(),
1169  EmptyOptional(),
1170  EmptyOptional(),
1172 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsReduceSupported()

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

Definition at line 1174 of file BackendHelper.cpp.

References armnn::Reduce.

Referenced by LayerSupportHandle::LayerSupportHandle().

1178 {
1179  TensorInfos infos{input, output};
1180 
1181  return m_LayerSupport->IsLayerSupported(LayerType::Reduce,
1182  infos,
1183  descriptor,
1184  EmptyOptional(),
1185  EmptyOptional(),
1187 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsReshapeSupported()

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

Definition at line 1189 of file BackendHelper.cpp.

References armnn::Reshape.

Referenced by LayerSupportHandle::LayerSupportHandle().

1193 {
1194  TensorInfos infos{input, output};
1195 
1196  return m_LayerSupport->IsLayerSupported(LayerType::Reshape,
1197  infos,
1198  descriptor,
1199  EmptyOptional(),
1200  EmptyOptional(),
1202 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsResizeSupported()

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

Definition at line 1204 of file BackendHelper.cpp.

References armnn::Resize.

Referenced by LayerSupportHandle::LayerSupportHandle().

1208 {
1209  TensorInfos infos{input, output};
1210 
1211  return m_LayerSupport->IsLayerSupported(LayerType::Resize,
1212  infos,
1213  descriptor,
1214  EmptyOptional(),
1215  EmptyOptional(),
1217 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsShapeSupported()

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

Definition at line 1219 of file BackendHelper.cpp.

References armnn::Shape.

Referenced by LayerSupportHandle::LayerSupportHandle().

1222 {
1223  TensorInfos infos{input, output};
1224 
1225  return m_LayerSupport->IsLayerSupported(LayerType::Shape,
1226  infos,
1227  BaseDescriptor(),
1228  EmptyOptional(),
1229  EmptyOptional(),
1231 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSliceSupported()

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

Definition at line 1233 of file BackendHelper.cpp.

References armnn::Slice.

Referenced by LayerSupportHandle::LayerSupportHandle().

1237 {
1238  TensorInfos infos{input, output};
1239 
1240  return m_LayerSupport->IsLayerSupported(LayerType::Slice,
1241  infos,
1242  descriptor,
1243  EmptyOptional(),
1244  EmptyOptional(),
1246 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSoftmaxSupported()

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

Definition at line 1248 of file BackendHelper.cpp.

References armnn::Softmax.

Referenced by LayerSupportHandle::LayerSupportHandle().

1252 {
1253  TensorInfos infos{input, output};
1254 
1255  return m_LayerSupport->IsLayerSupported(LayerType::Softmax,
1256  infos,
1257  descriptor,
1258  EmptyOptional(),
1259  EmptyOptional(),
1261 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSpaceToBatchNdSupported()

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

Definition at line 1263 of file BackendHelper.cpp.

References armnn::SpaceToBatchNd.

Referenced by LayerSupportHandle::LayerSupportHandle().

1267 {
1268  TensorInfos infos{input, output};
1269 
1270  return m_LayerSupport->IsLayerSupported(LayerType::SpaceToBatchNd,
1271  infos,
1272  descriptor,
1273  EmptyOptional(),
1274  EmptyOptional(),
1276 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSpaceToDepthSupported()

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

Definition at line 1278 of file BackendHelper.cpp.

References armnn::SpaceToDepth.

Referenced by LayerSupportHandle::LayerSupportHandle().

1282 {
1283  TensorInfos infos{input, output};
1284 
1285  return m_LayerSupport->IsLayerSupported(LayerType::SpaceToDepth,
1286  infos,
1287  descriptor,
1288  EmptyOptional(),
1289  EmptyOptional(),
1291 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 1293 of file BackendHelper.cpp.

References armnn::Splitter.

Referenced by LayerSupportHandle::LayerSupportHandle().

1297 {
1298  TensorInfos infos{input};
1299  for (TensorInfo outInfo : outputs)
1300  {
1301  infos.push_back(outInfo);
1302  }
1303 
1304  return m_LayerSupport->IsLayerSupported(LayerType::Splitter,
1305  infos,
1306  descriptor,
1307  EmptyOptional(),
1308  EmptyOptional(),
1310 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsStackSupported()

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

Definition at line 1312 of file BackendHelper.cpp.

References armnn::Stack.

Referenced by LayerSupportHandle::LayerSupportHandle().

1316 {
1317  TensorInfos infos;
1318  for (const TensorInfo* inputInfo : inputs)
1319  {
1320  infos.push_back(*inputInfo);
1321  }
1322  infos.push_back(output);
1323 
1324  return m_LayerSupport->IsLayerSupported(LayerType::Stack,
1325  infos,
1326  descriptor,
1327  EmptyOptional(),
1328  EmptyOptional(),
1330 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 1332 of file BackendHelper.cpp.

References armnn::StandIn.

Referenced by LayerSupportHandle::LayerSupportHandle().

1336 {
1337  TensorInfos infos;
1338  for (const TensorInfo* inputInfo : inputs)
1339  {
1340  infos.push_back(*inputInfo);
1341  }
1342  for (const TensorInfo* outputInfo : outputs)
1343  {
1344  infos.push_back(*outputInfo);
1345  }
1346 
1347  return m_LayerSupport->IsLayerSupported(LayerType::StandIn,
1348  infos,
1349  descriptor,
1350  EmptyOptional(),
1351  EmptyOptional(),
1353 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsStridedSliceSupported()

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

Definition at line 1356 of file BackendHelper.cpp.

References armnn::StridedSlice.

Referenced by LayerSupportHandle::LayerSupportHandle().

1360 {
1361  TensorInfos infos{input, output};
1362 
1363  return m_LayerSupport->IsLayerSupported(LayerType::StridedSlice,
1364  infos,
1365  descriptor,
1366  EmptyOptional(),
1367  EmptyOptional(),
1369 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSubtractionSupported()

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

Definition at line 1371 of file BackendHelper.cpp.

References armnn::Subtraction.

Referenced by LayerSupportHandle::LayerSupportHandle().

1375 {
1376  TensorInfos infos{input0, input1, output};
1377 
1378  return m_LayerSupport->IsLayerSupported(LayerType::Subtraction,
1379  infos,
1380  BaseDescriptor(),
1381  EmptyOptional(),
1382  EmptyOptional(),
1384 }
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsSwitchSupported()

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

Definition at line 1386 of file BackendHelper.cpp.

References armnn::Switch.

Referenced by LayerSupportHandle::LayerSupportHandle().

1391 {
1392  TensorInfos infos{input0, input1, output0, output1};
1393 
1394  return m_LayerSupport->IsLayerSupported(LayerType::Switch,
1395  infos,
1396  BaseDescriptor(),
1397  EmptyOptional(),
1398  EmptyOptional(),
1400 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ 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 1402 of file BackendHelper.cpp.

References OptionalBase::has_value(), LayerSupportHandle::output, armnn::TransposeConvolution2d, and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

1409 {
1410  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
1411  TensorInfos infos{input, output, weights, biasesVal};
1412 
1413  return m_LayerSupport->IsLayerSupported(LayerType::TransposeConvolution2d,
1414  infos,
1415  descriptor,
1416  EmptyOptional(),
1417  EmptyOptional(),
1419 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

◆ IsTransposeSupported()

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

Definition at line 1421 of file BackendHelper.cpp.

References armnn::Transpose.

Referenced by LayerSupportHandle::LayerSupportHandle().

1425 {
1426  TensorInfos infos{input, output};
1427 
1428  return m_LayerSupport->IsLayerSupported(LayerType::Transpose,
1429  infos,
1430  descriptor,
1431  EmptyOptional(),
1432  EmptyOptional(),
1434 }
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
std::vector< TensorInfo > TensorInfos

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

References LayerSupportHandle::cellStateIn, LayerSupportHandle::descriptor, OptionalBase::has_value(), LayerSupportHandle::output, LayerSupportHandle::outputStateIn, LayerSupportHandle::paramsInfo, LayerSupportHandle::reasonIfUnsupported, armnn::UnidirectionalSequenceLstm, and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

Referenced by LayerSupportHandle::LayerSupportHandle().

1446 {
1447  TensorInfo hiddenStateOutputVal = hiddenStateOutput.has_value() ? hiddenStateOutput.value() : TensorInfo();
1448  TensorInfo cellStateOutputVal = cellStateOutput.has_value() ? cellStateOutput.value() : TensorInfo();
1449  TensorInfos infos{input, outputStateIn, cellStateIn, hiddenStateOutputVal, cellStateOutputVal, output};
1450 
1452  outputStateIn,
1453  cellStateIn,
1454  hiddenStateOutputVal,
1455  cellStateOutputVal,
1456  output,
1457  descriptor,
1458  paramsInfo,
1460 }
const TensorInfo const TensorInfo & cellStateIn
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor & descriptor
const TensorInfo const TensorInfo const TensorInfo & output
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > & cellStateOutput
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported
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())
const TensorInfo & outputStateIn
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > & hiddenStateOutput
std::vector< TensorInfo > TensorInfos
const TensorInfo const TensorInfo const TensorInfo const Optional< TensorInfo > const Optional< TensorInfo > const LstmDescriptor const LstmInputParamsInfo & paramsInfo

Member Data Documentation

◆ cellStateIn

◆ cellStateOutput

const TensorInfo const TensorInfo const TensorInfo const Optional<TensorInfo> const Optional<TensorInfo>& cellStateOutput

Definition at line 424 of file BackendHelper.hpp.

◆ descriptor

◆ hiddenStateOutput

const TensorInfo const TensorInfo const TensorInfo const Optional<TensorInfo>& hiddenStateOutput

Definition at line 424 of file BackendHelper.hpp.

◆ output

◆ outputStateIn

◆ paramsInfo

◆ reasonIfUnsupported


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