ArmNN
 22.05.01
LayerSupportHandle Class Reference

#include <BackendHelper.hpp>

Public Member Functions

 LayerSupportHandle (std::shared_ptr< ILayerSupport > layerSupport)
 
 LayerSupportHandle (std::shared_ptr< ILayerSupport > layerSupport, const BackendId &backendId)
 
bool IsBackendRegistered () const
 
bool IsActivationSupported (const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsAdditionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsArgMinMaxSupported (const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsBatchNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const TensorInfo &mean, const TensorInfo &var, const TensorInfo &beta, const TensorInfo &gamma, const BatchNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsBatchToSpaceNdSupported (const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsCastSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsChannelShuffleSupported (const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsComparisonSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConcatSupported (const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConstantSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertBf16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp32ToBf16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvertFp32ToFp16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsConvolution3dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDebugSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDepthToSpaceSupported (const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDequantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDetectionPostProcessSupported (const TensorInfo &boxEncodings, const TensorInfo &scores, const TensorInfo &anchors, const TensorInfo &detectionBoxes, const TensorInfo &detectionClasses, const TensorInfo &detectionScores, const TensorInfo &numDetections, const DetectionPostProcessDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDilatedDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsDivisionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsElementwiseUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFakeQuantizationSupported (const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFillSupported (const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFloorSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsFullyConnectedSupported (const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool IsGatherSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional())
 
bool 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::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 153 of file BackendHelper.cpp.

References armnn::Activation.

Referenced by LayerSupportHandle::LayerSupportHandle().

157 {
158  TensorInfos infos{input, output};
159 
160  return m_LayerSupport->IsLayerSupported(LayerType::Activation,
161  infos,
162  descriptor,
163  EmptyOptional(),
164  EmptyOptional(),
166 }
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 168 of file BackendHelper.cpp.

References armnn::Addition.

Referenced by LayerSupportHandle::LayerSupportHandle().

172 {
173  TensorInfos infos{input0, input1, output};
174 
175  return m_LayerSupport->IsLayerSupported(LayerType::Addition,
176  infos,
177  BaseDescriptor(),
178  EmptyOptional(),
179  EmptyOptional(),
181 }
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 183 of file BackendHelper.cpp.

References armnn::ArgMinMax.

Referenced by LayerSupportHandle::LayerSupportHandle().

187 {
188  TensorInfos infos{input, output};
189 
190  return m_LayerSupport->IsLayerSupported(LayerType::ArgMinMax,
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

◆ IsBackendRegistered()

bool IsBackendRegistered ( ) const

Definition at line 141 of file BackendHelper.cpp.

Referenced by LayerSupportHandle::LayerSupportHandle().

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

◆ IsBatchNormalizationSupported()

bool IsBatchNormalizationSupported ( const TensorInfo input,
const TensorInfo output,
const TensorInfo mean,
const TensorInfo var,
const TensorInfo beta,
const TensorInfo gamma,
const BatchNormalizationDescriptor descriptor,
Optional< std::string &>  reasonIfUnsupported = EmptyOptional() 
)

Definition at line 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("ConstantTensorsAsInputs", m_BackendId);
380  if(!capability.has_value() || capability.value().GetValue().AsBool() == false)
381  {
382  if(!weights.IsConstant())
383  {
384  return false;
385  }
386  if (descriptor.m_BiasEnabled && !biases.has_value())
387  {
388  return false;
389  }
390 
391 
392  // At the first stage we will only print a warning. this is to give
393  // backend developers a chance to adopt and read weights from input slots.
394  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
395  "If you are a backend developer please find more information in our "
396  "doxygen documentation on github https://github.com/ARM-software/armnn "
397  "under the keyword 'ConstTensorsAsInputs'.";
398  }
399  }
400 
401  return m_LayerSupport->IsLayerSupported(LayerType::Convolution2d,
402  infos,
403  descriptor,
404  EmptyOptional(),
405  EmptyOptional(),
407 }
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 409 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().

415 {
416  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
417  TensorInfos infos{input, output, weights, biasesVal};
418 
419  return m_LayerSupport->IsLayerSupported(LayerType::Convolution3d,
420  infos,
421  descriptor,
422  EmptyOptional(),
423  EmptyOptional(),
425 }
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 427 of file BackendHelper.cpp.

References armnn::Debug.

Referenced by LayerSupportHandle::LayerSupportHandle().

430 {
431  TensorInfos infos{input, output};
432 
433  return m_LayerSupport->IsLayerSupported(LayerType::Debug,
434  infos,
435  BaseDescriptor(),
436  EmptyOptional(),
437  EmptyOptional(),
439 }
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 441 of file BackendHelper.cpp.

References armnn::DepthToSpace.

Referenced by LayerSupportHandle::LayerSupportHandle().

445 {
446  TensorInfos infos{input, output};
447 
448  return m_LayerSupport->IsLayerSupported(LayerType::DepthToSpace,
449  infos,
450  descriptor,
451  EmptyOptional(),
452  EmptyOptional(),
454 }
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 456 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().

463 {
464  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
465  TensorInfos infos{input, output, weights, biasesVal};
466 
467  Optional<const BackendOptions::BackendOption> capability ;
468  if(!m_BackendId.IsUndefined())
469  {
470  capability = GetCapability("ConstantTensorsAsInputs", m_BackendId);
471  if(!capability.has_value() || capability.value().GetValue().AsBool() == false)
472  {
473  if(!weights.IsConstant())
474  {
475  return false;
476  }
477  if(descriptor.m_BiasEnabled)
478  {
479  if(!biases.value().IsConstant())
480  {
481  return false;
482  }
483  }
484  // At the first stage we will only print a warning. this is to give
485  // backend developers a chance to adopt and read weights from input slots.
486  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
487  "If you are a backend developer please find more information in our "
488  "doxygen documentation on github https://github.com/ARM-software/armnn "
489  "under the keyword 'ConstTensorsAsInputs'.";
490  }
491  }
492 
493  return m_LayerSupport->IsLayerSupported(LayerType::DepthwiseConvolution2d,
494  infos,
495  descriptor,
496  EmptyOptional(),
497  EmptyOptional(),
499 }
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 501 of file BackendHelper.cpp.

References armnn::Dequantize.

Referenced by LayerSupportHandle::LayerSupportHandle().

504 {
505  TensorInfos infos{input, output};
506 
507  return m_LayerSupport->IsLayerSupported(LayerType::Dequantize,
508  infos,
509  BaseDescriptor(),
510  EmptyOptional(),
511  EmptyOptional(),
513 }
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 515 of file BackendHelper.cpp.

References armnn::DetectionPostProcess.

Referenced by LayerSupportHandle::LayerSupportHandle().

524 {
525  TensorInfos infos{boxEncodings, scores, anchors, detectionBoxes, detectionClasses, detectionScores, numDetections};
526 
527  return m_LayerSupport->IsLayerSupported(LayerType::DetectionPostProcess,
528  infos,
529  descriptor,
530  EmptyOptional(),
531  EmptyOptional(),
533 }
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 535 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().

542 {
543  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
544  TensorInfos infos{input, output, weights, biasesVal};
545 
546  Optional<const BackendOptions::BackendOption> capability ;
547  if(!m_BackendId.IsUndefined())
548  {
549  capability = GetCapability("ConstantTensorsAsInputs", m_BackendId);
550  if(!capability.has_value() || capability.value().GetValue().AsBool() == false)
551  {
552  if(!weights.IsConstant())
553  {
554  return false;
555  }
556  if(descriptor.m_BiasEnabled)
557  {
558  if(!biases.value().IsConstant())
559  {
560  return false;
561  }
562  }
563  // At the first stage we will only print a warning. this is to give
564  // backend developers a chance to adopt and read weights from input slots.
565  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
566  "If you are a backend developer please find more information in our "
567  "doxygen documentation on github https://github.com/ARM-software/armnn "
568  "under the keyword 'ConstTensorsAsInputs'.";
569  }
570  }
571 
572  return m_LayerSupport->IsLayerSupported(LayerType::DepthwiseConvolution2d,
573  infos,
574  descriptor,
575  EmptyOptional(),
576  EmptyOptional(),
578 }
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 580 of file BackendHelper.cpp.

References armnn::Division.

Referenced by LayerSupportHandle::LayerSupportHandle().

584 {
585  TensorInfos infos{input0, input1, output};
586 
587  return m_LayerSupport->IsLayerSupported(LayerType::Division,
588  infos,
589  BaseDescriptor(),
590  EmptyOptional(),
591  EmptyOptional(),
593 }
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 595 of file BackendHelper.cpp.

References armnn::ElementwiseUnary.

Referenced by LayerSupportHandle::LayerSupportHandle().

599 {
600  TensorInfos infos{input, output};
601 
602  return m_LayerSupport->IsLayerSupported(LayerType::ElementwiseUnary,
603  infos,
604  descriptor,
605  EmptyOptional(),
606  EmptyOptional(),
608 }
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 610 of file BackendHelper.cpp.

References armnn::FakeQuantization.

Referenced by LayerSupportHandle::LayerSupportHandle().

613 {
614  TensorInfos infos{input};
615 
616  return m_LayerSupport->IsLayerSupported(LayerType::FakeQuantization,
617  infos,
618  descriptor,
619  EmptyOptional(),
620  EmptyOptional(),
622 }
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 624 of file BackendHelper.cpp.

References armnn::Fill.

Referenced by LayerSupportHandle::LayerSupportHandle().

628 {
629  TensorInfos infos{input, output};
630 
631  return m_LayerSupport->IsLayerSupported(LayerType::Fill,
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

◆ IsFloorSupported()

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

Definition at line 639 of file BackendHelper.cpp.

References armnn::Floor.

Referenced by LayerSupportHandle::LayerSupportHandle().

642 {
643  TensorInfos infos{input, output};
644 
645  return m_LayerSupport->IsLayerSupported(LayerType::Floor,
646  infos,
647  BaseDescriptor(),
648  EmptyOptional(),
649  EmptyOptional(),
651 }
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 653 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().

659 {
660  if(!m_BackendId.IsUndefined())
661  {
662  auto capability = GetCapability("ConstantTensorsAsInputs", m_BackendId);
663  if(!capability.has_value() || capability.value().GetValue().AsBool() == false)
664  {
665  if(!weights.IsConstant())
666  {
667  if (reasonIfUnsupported.has_value())
668  {
669  reasonIfUnsupported.value() =
670  "This backend might not support non constant weights. "
671  "If weights are constant make sure to set IsConstant when creating TensorInfo";
672  }
673 
674  return false;
675  }
676  if(descriptor.m_BiasEnabled)
677  {
678  if(!biases.IsConstant())
679  {
680  if (reasonIfUnsupported.has_value())
681  {
682  reasonIfUnsupported.value() =
683  "This backend might not support non constant bias. "
684  "If bias are constant make sure to set IsConstant when creating TensorInfo";
685  }
686  return false;
687  }
688  }
689 
690  // At the first stage we will only print a warning. this is to give
691  // backend developers a chance to adopt and read weights from input slots.
692  ARMNN_LOG(warning) << "The backend makes use of a deprecated interface to read constant tensors. "
693  "If you are a backend developer please find more information in our "
694  "doxygen documentation on github https://github.com/ARM-software/armnn "
695  "under the keyword 'ConstTensorsAsInputs'.";
696  }
697 
698  if(!descriptor.m_ConstantWeights)
699  {
700  capability = GetCapability("NonConstWeights", m_BackendId);
701  if (capability.has_value() && capability.value().GetValue().AsBool() == true)
702  {
703  return true;
704  }
705  return false;
706  }
707  }
708 
709  TensorInfos infos{input, output, weights, biases};
710 
711  return m_LayerSupport->IsLayerSupported(LayerType::FullyConnected,
712  infos,
713  descriptor,
714  EmptyOptional(),
715  EmptyOptional(),
717 }
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 735 of file BackendHelper.cpp.

References armnn::GatherNd.

Referenced by LayerSupportHandle::LayerSupportHandle().

739 {
740  TensorInfos infos{input0, input1, output};
741 
742  return m_LayerSupport->IsLayerSupported(LayerType::GatherNd,
743  infos,
744  BaseDescriptor(),
745  EmptyOptional(),
746  EmptyOptional(),
748 }
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 719 of file BackendHelper.cpp.

References armnn::Gather.

Referenced by LayerSupportHandle::LayerSupportHandle().

724 {
725  TensorInfos infos{input0, input1, output};
726 
727  return m_LayerSupport->IsLayerSupported(LayerType::Gather,
728  infos,
729  descriptor,
730  EmptyOptional(),
731  EmptyOptional(),
733 }
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 750 of file BackendHelper.cpp.

References armnn::Input.

Referenced by LayerSupportHandle::LayerSupportHandle().

752 {
753  TensorInfos infos{input};
754 
755  return m_LayerSupport->IsLayerSupported(LayerType::Input,
756  infos,
757  BaseDescriptor(),
758  EmptyOptional(),
759  EmptyOptional(),
761 }
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 763 of file BackendHelper.cpp.

References armnn::InstanceNormalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

768 {
769  TensorInfos infos{input, output};
770 
771  return m_LayerSupport->IsLayerSupported(LayerType::InstanceNormalization,
772  infos,
773  descriptor,
774  EmptyOptional(),
775  EmptyOptional(),
777 }
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 779 of file BackendHelper.cpp.

References armnn::L2Normalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

783 {
784  TensorInfos infos{input, output};
785 
786  return m_LayerSupport->IsLayerSupported(LayerType::L2Normalization,
787  infos,
788  descriptor,
789  EmptyOptional(),
790  EmptyOptional(),
792 }
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 794 of file BackendHelper.cpp.

References armnn::LogicalBinary.

Referenced by LayerSupportHandle::LayerSupportHandle().

799 {
800  TensorInfos infos{input0, input1, output};
801 
802  return m_LayerSupport->IsLayerSupported(LayerType::LogicalBinary,
803  infos,
804  descriptor,
805  EmptyOptional(),
806  EmptyOptional(),
808 }
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 810 of file BackendHelper.cpp.

References armnn::ElementwiseUnary.

Referenced by LayerSupportHandle::LayerSupportHandle().

814 {
815  TensorInfos infos{input, output};
816 
817  return m_LayerSupport->IsLayerSupported(LayerType::ElementwiseUnary,
818  infos,
819  descriptor,
820  EmptyOptional(),
821  EmptyOptional(),
823 }
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 825 of file BackendHelper.cpp.

References armnn::LogSoftmax.

Referenced by LayerSupportHandle::LayerSupportHandle().

829 {
830  TensorInfos infos{input, output};
831 
832  return m_LayerSupport->IsLayerSupported(LayerType::LogSoftmax,
833  infos,
834  descriptor,
835  EmptyOptional(),
836  EmptyOptional(),
838 }
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 840 of file BackendHelper.cpp.

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

Referenced by LayerSupportHandle::LayerSupportHandle().

850 {
851  TensorInfos infos{input, outputStateIn, cellStateIn, scratchBuffer, outputStateOut, cellStateOut, output};
852 
853  return m_LayerSupport->IsLayerSupported(LayerType::Lstm,
854  infos,
855  descriptor,
856  paramsInfo,
857  EmptyOptional(),
859 }
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 861 of file BackendHelper.cpp.

References armnn::Maximum.

Referenced by LayerSupportHandle::LayerSupportHandle().

865 {
866  TensorInfos infos{input0, input1, output};
867 
868  return m_LayerSupport->IsLayerSupported(LayerType::Maximum,
869  infos,
870  BaseDescriptor(),
871  EmptyOptional(),
872  EmptyOptional(),
874 }
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 876 of file BackendHelper.cpp.

References armnn::Mean.

Referenced by LayerSupportHandle::LayerSupportHandle().

880 {
881  TensorInfos infos{input, output};
882 
883  return m_LayerSupport->IsLayerSupported(LayerType::Mean,
884  infos,
885  descriptor,
886  EmptyOptional(),
887  EmptyOptional(),
889 }
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 891 of file BackendHelper.cpp.

References armnn::MemCopy.

Referenced by LayerSupportHandle::LayerSupportHandle().

894 {
895  TensorInfos infos{input, output};
896 
897  return m_LayerSupport->IsLayerSupported(LayerType::MemCopy,
898  infos,
899  BaseDescriptor(),
900  EmptyOptional(),
901  EmptyOptional(),
903 }
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 905 of file BackendHelper.cpp.

References armnn::MemImport.

Referenced by LayerSupportHandle::LayerSupportHandle().

908 {
909  TensorInfos infos{input, output};
910 
911  return m_LayerSupport->IsLayerSupported(LayerType::MemImport,
912  infos,
913  BaseDescriptor(),
914  EmptyOptional(),
915  EmptyOptional(),
917 }
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 919 of file BackendHelper.cpp.

References armnn::Merge.

Referenced by LayerSupportHandle::LayerSupportHandle().

923 {
924  TensorInfos infos{input0, input1, output};
925 
926  return m_LayerSupport->IsLayerSupported(LayerType::Merge,
927  infos,
928  BaseDescriptor(),
929  EmptyOptional(),
930  EmptyOptional(),
932 }
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 934 of file BackendHelper.cpp.

References armnn::Minimum.

Referenced by LayerSupportHandle::LayerSupportHandle().

938 {
939  TensorInfos infos{input0, input1, output};
940 
941  return m_LayerSupport->IsLayerSupported(LayerType::Minimum,
942  infos,
943  BaseDescriptor(),
944  EmptyOptional(),
945  EmptyOptional(),
947 }
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 949 of file BackendHelper.cpp.

References armnn::Multiplication.

Referenced by LayerSupportHandle::LayerSupportHandle().

953 {
954  TensorInfos infos{input0, input1, output};
955 
956  return m_LayerSupport->IsLayerSupported(LayerType::Multiplication,
957  infos,
958  BaseDescriptor(),
959  EmptyOptional(),
960  EmptyOptional(),
962 }
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 964 of file BackendHelper.cpp.

References armnn::Normalization.

Referenced by LayerSupportHandle::LayerSupportHandle().

968 {
969  TensorInfos infos{input, output};
970 
971  return m_LayerSupport->IsLayerSupported(LayerType::Normalization,
972  infos,
973  descriptor,
974  EmptyOptional(),
975  EmptyOptional(),
977 }
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 979 of file BackendHelper.cpp.

References armnn::Output.

Referenced by LayerSupportHandle::LayerSupportHandle().

981 {
982  TensorInfos infos{output};
983 
984  return m_LayerSupport->IsLayerSupported(LayerType::Output,
985  infos,
986  BaseDescriptor(),
987  EmptyOptional(),
988  EmptyOptional(),
990 }
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 992 of file BackendHelper.cpp.

References armnn::Pad.

Referenced by LayerSupportHandle::LayerSupportHandle().

996 {
997  TensorInfos infos{input, output};
998 
999  return m_LayerSupport->IsLayerSupported(LayerType::Pad,
1000  infos,
1001  descriptor,
1002  EmptyOptional(),
1003  EmptyOptional(),
1005 }
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 1007 of file BackendHelper.cpp.

References armnn::Permute.

Referenced by LayerSupportHandle::LayerSupportHandle().

1011 {
1012  TensorInfos infos{input, output};
1013 
1014  return m_LayerSupport->IsLayerSupported(LayerType::Permute,
1015  infos,
1016  descriptor,
1017  EmptyOptional(),
1018  EmptyOptional(),
1020 }
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 1022 of file BackendHelper.cpp.

References armnn::Pooling2d.

Referenced by LayerSupportHandle::LayerSupportHandle().

1026 {
1027  TensorInfos infos{input, output};
1028 
1029  return m_LayerSupport->IsLayerSupported(LayerType::Pooling2d,
1030  infos,
1031  descriptor,
1032  EmptyOptional(),
1033  EmptyOptional(),
1035 }
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 1037 of file BackendHelper.cpp.

References armnn::Pooling3d.

Referenced by LayerSupportHandle::LayerSupportHandle().

1041 {
1042  TensorInfos infos{input, output};
1043 
1044  return m_LayerSupport->IsLayerSupported(LayerType::Pooling3d,
1045  infos,
1046  descriptor,
1047  EmptyOptional(),
1048  EmptyOptional(),
1050 }
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 1052 of file BackendHelper.cpp.

References armnn::PreCompiled.

Referenced by LayerSupportHandle::LayerSupportHandle().

1055 {
1056  TensorInfos infos{input};
1057 
1058  return m_LayerSupport->IsLayerSupported(LayerType::PreCompiled,
1059  infos,
1060  descriptor,
1061  EmptyOptional(),
1062  EmptyOptional(),
1064 }
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 1066 of file BackendHelper.cpp.

References armnn::Prelu.

Referenced by LayerSupportHandle::LayerSupportHandle().

1070 {
1071  TensorInfos infos{input, alpha, output};
1072 
1073  return m_LayerSupport->IsLayerSupported(LayerType::Prelu,
1074  infos,
1075  BaseDescriptor(),
1076  EmptyOptional(),
1077  EmptyOptional(),
1079 }
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 1095 of file BackendHelper.cpp.

References armnn::QLstm.

Referenced by LayerSupportHandle::LayerSupportHandle().

1104 {
1105  TensorInfos infos{input, previousOutputIn, previousCellStateIn, outputStateOut, cellStateOut, output};
1106 
1107  return m_LayerSupport->IsLayerSupported(LayerType::QLstm,
1108  infos,
1109  descriptor,
1110  paramsInfo,
1111  EmptyOptional(),
1113 }
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 1115 of file BackendHelper.cpp.

References armnn::QuantizedLstm.

Referenced by LayerSupportHandle::LayerSupportHandle().

1122 {
1123  TensorInfos infos{input, previousCellStateIn, previousOutputIn, cellStateOut, output};
1124 
1125  return m_LayerSupport->IsLayerSupported(LayerType::QuantizedLstm,
1126  infos,
1127  BaseDescriptor(),
1128  EmptyOptional(),
1129  paramsInfo,
1131 }
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 1081 of file BackendHelper.cpp.

References armnn::Quantize.

Referenced by LayerSupportHandle::LayerSupportHandle().

1084 {
1085  TensorInfos infos{input, output};
1086 
1087  return m_LayerSupport->IsLayerSupported(LayerType::Quantize,
1088  infos,
1089  BaseDescriptor(),
1090  EmptyOptional(),
1091  EmptyOptional(),
1093 }
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 1133 of file BackendHelper.cpp.

References armnn::Rank.

Referenced by LayerSupportHandle::LayerSupportHandle().

1136 {
1137  TensorInfos infos{input, output};
1138 
1139  return m_LayerSupport->IsLayerSupported(LayerType::Rank,
1140  infos,
1141  BaseDescriptor(),
1142  EmptyOptional(),
1143  EmptyOptional(),
1145 }
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 1147 of file BackendHelper.cpp.

References armnn::Reduce.

Referenced by LayerSupportHandle::LayerSupportHandle().

1151 {
1152  TensorInfos infos{input, output};
1153 
1154  return m_LayerSupport->IsLayerSupported(LayerType::Reduce,
1155  infos,
1156  descriptor,
1157  EmptyOptional(),
1158  EmptyOptional(),
1160 }
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 1162 of file BackendHelper.cpp.

References armnn::Reshape.

Referenced by LayerSupportHandle::LayerSupportHandle().

1166 {
1167  TensorInfos infos{input, output};
1168 
1169  return m_LayerSupport->IsLayerSupported(LayerType::Reshape,
1170  infos,
1171  descriptor,
1172  EmptyOptional(),
1173  EmptyOptional(),
1175 }
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 1177 of file BackendHelper.cpp.

References armnn::Resize.

Referenced by LayerSupportHandle::LayerSupportHandle().

1181 {
1182  TensorInfos infos{input, output};
1183 
1184  return m_LayerSupport->IsLayerSupported(LayerType::Resize,
1185  infos,
1186  descriptor,
1187  EmptyOptional(),
1188  EmptyOptional(),
1190 }
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 1192 of file BackendHelper.cpp.

References armnn::Shape.

Referenced by LayerSupportHandle::LayerSupportHandle().

1195 {
1196  TensorInfos infos{input, output};
1197 
1198  return m_LayerSupport->IsLayerSupported(LayerType::Shape,
1199  infos,
1200  BaseDescriptor(),
1201  EmptyOptional(),
1202  EmptyOptional(),
1204 }
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 1206 of file BackendHelper.cpp.

References armnn::Slice.

Referenced by LayerSupportHandle::LayerSupportHandle().

1210 {
1211  TensorInfos infos{input, output};
1212 
1213  return m_LayerSupport->IsLayerSupported(LayerType::Slice,
1214  infos,
1215  descriptor,
1216  EmptyOptional(),
1217  EmptyOptional(),
1219 }
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 1221 of file BackendHelper.cpp.

References armnn::Softmax.

Referenced by LayerSupportHandle::LayerSupportHandle().

1225 {
1226  TensorInfos infos{input, output};
1227 
1228  return m_LayerSupport->IsLayerSupported(LayerType::Softmax,
1229  infos,
1230  descriptor,
1231  EmptyOptional(),
1232  EmptyOptional(),
1234 }
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 1236 of file BackendHelper.cpp.

References armnn::SpaceToBatchNd.

Referenced by LayerSupportHandle::LayerSupportHandle().

1240 {
1241  TensorInfos infos{input, output};
1242 
1243  return m_LayerSupport->IsLayerSupported(LayerType::SpaceToBatchNd,
1244  infos,
1245  descriptor,
1246  EmptyOptional(),
1247  EmptyOptional(),
1249 }
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 1251 of file BackendHelper.cpp.

References armnn::SpaceToDepth.

Referenced by LayerSupportHandle::LayerSupportHandle().

1255 {
1256  TensorInfos infos{input, output};
1257 
1258  return m_LayerSupport->IsLayerSupported(LayerType::SpaceToDepth,
1259  infos,
1260  descriptor,
1261  EmptyOptional(),
1262  EmptyOptional(),
1264 }
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 1266 of file BackendHelper.cpp.

References armnn::Splitter.

Referenced by LayerSupportHandle::LayerSupportHandle().

1270 {
1271  TensorInfos infos{input};
1272  for (TensorInfo outInfo : outputs)
1273  {
1274  infos.push_back(outInfo);
1275  }
1276 
1277  return m_LayerSupport->IsLayerSupported(LayerType::Splitter,
1278  infos,
1279  descriptor,
1280  EmptyOptional(),
1281  EmptyOptional(),
1283 }
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 1285 of file BackendHelper.cpp.

References armnn::Stack.

Referenced by LayerSupportHandle::LayerSupportHandle().

1289 {
1290  TensorInfos infos;
1291  for (const TensorInfo* inputInfo : inputs)
1292  {
1293  infos.push_back(*inputInfo);
1294  }
1295  infos.push_back(output);
1296 
1297  return m_LayerSupport->IsLayerSupported(LayerType::Stack,
1298  infos,
1299  descriptor,
1300  EmptyOptional(),
1301  EmptyOptional(),
1303 }
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 1305 of file BackendHelper.cpp.

References armnn::StandIn.

Referenced by LayerSupportHandle::LayerSupportHandle().

1309 {
1310  TensorInfos infos;
1311  for (const TensorInfo* inputInfo : inputs)
1312  {
1313  infos.push_back(*inputInfo);
1314  }
1315  for (const TensorInfo* outputInfo : outputs)
1316  {
1317  infos.push_back(*outputInfo);
1318  }
1319 
1320  return m_LayerSupport->IsLayerSupported(LayerType::StandIn,
1321  infos,
1322  descriptor,
1323  EmptyOptional(),
1324  EmptyOptional(),
1326 }
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 1329 of file BackendHelper.cpp.

References armnn::StridedSlice.

Referenced by LayerSupportHandle::LayerSupportHandle().

1333 {
1334  TensorInfos infos{input, output};
1335 
1336  return m_LayerSupport->IsLayerSupported(LayerType::StridedSlice,
1337  infos,
1338  descriptor,
1339  EmptyOptional(),
1340  EmptyOptional(),
1342 }
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 1344 of file BackendHelper.cpp.

References armnn::Subtraction.

Referenced by LayerSupportHandle::LayerSupportHandle().

1348 {
1349  TensorInfos infos{input0, input1, output};
1350 
1351  return m_LayerSupport->IsLayerSupported(LayerType::Subtraction,
1352  infos,
1353  BaseDescriptor(),
1354  EmptyOptional(),
1355  EmptyOptional(),
1357 }
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 1359 of file BackendHelper.cpp.

References armnn::Switch.

Referenced by LayerSupportHandle::LayerSupportHandle().

1364 {
1365  TensorInfos infos{input0, input1, output0, output1};
1366 
1367  return m_LayerSupport->IsLayerSupported(LayerType::Switch,
1368  infos,
1369  BaseDescriptor(),
1370  EmptyOptional(),
1371  EmptyOptional(),
1373 }
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 1375 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().

1382 {
1383  TensorInfo biasesVal = biases.has_value() ? biases.value() : TensorInfo();
1384  TensorInfos infos{input, output, weights, biasesVal};
1385 
1386  return m_LayerSupport->IsLayerSupported(LayerType::TransposeConvolution2d,
1387  infos,
1388  descriptor,
1389  EmptyOptional(),
1390  EmptyOptional(),
1392 }
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 1394 of file BackendHelper.cpp.

References armnn::Transpose.

Referenced by LayerSupportHandle::LayerSupportHandle().

1398 {
1399  TensorInfos infos{input, output};
1400 
1401  return m_LayerSupport->IsLayerSupported(LayerType::Transpose,
1402  infos,
1403  descriptor,
1404  EmptyOptional(),
1405  EmptyOptional(),
1407 }
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 1410 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().

1419 {
1420  TensorInfo hiddenStateOutputVal = hiddenStateOutput.has_value() ? hiddenStateOutput.value() : TensorInfo();
1421  TensorInfo cellStateOutputVal = cellStateOutput.has_value() ? cellStateOutput.value() : TensorInfo();
1422  TensorInfos infos{input, outputStateIn, cellStateIn, hiddenStateOutputVal, cellStateOutputVal, output};
1423 
1425  outputStateIn,
1426  cellStateIn,
1427  hiddenStateOutputVal,
1428  cellStateOutputVal,
1429  output,
1430  descriptor,
1431  paramsInfo,
1433 }
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 418 of file BackendHelper.hpp.

◆ descriptor

◆ hiddenStateOutput

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

Definition at line 418 of file BackendHelper.hpp.

◆ output

◆ outputStateIn

◆ paramsInfo

◆ reasonIfUnsupported


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