From f4019872c1134c6fcc1d6993e5746f55c1e79208 Mon Sep 17 00:00:00 2001 From: Nikhil Raj Date: Tue, 8 Mar 2022 20:01:38 +0000 Subject: IVGCVSW-6819 Fix the directory structure and broken link to latest docu Signed-off-by: Nikhil Raj Change-Id: I05b559d15faf92c76ff536719693b361316be4f3 --- 22.02/classarmnn_1_1_neon_layer_support.xhtml | 4680 +++++++++++++++++++++++++ 1 file changed, 4680 insertions(+) create mode 100644 22.02/classarmnn_1_1_neon_layer_support.xhtml (limited to '22.02/classarmnn_1_1_neon_layer_support.xhtml') diff --git a/22.02/classarmnn_1_1_neon_layer_support.xhtml b/22.02/classarmnn_1_1_neon_layer_support.xhtml new file mode 100644 index 0000000000..f47317db0e --- /dev/null +++ b/22.02/classarmnn_1_1_neon_layer_support.xhtml @@ -0,0 +1,4680 @@ + + + + + + + + + + + + + +ArmNN: NeonLayerSupport Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  22.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NeonLayerSupport Class Reference
+
+
+ +

#include <NeonLayerSupport.hpp>

+
+Inheritance diagram for NeonLayerSupport:
+
+
+ + +LayerSupportBase +ILayerSupport + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NeonLayerSupport (const IBackendInternal::IBackendSpecificModelContextPtr &modelContextPtr)
 
 NeonLayerSupport ()
 
 ~NeonLayerSupport ()
 
bool IsLayerSupported (const LayerType &type, const std::vector< TensorInfo > &infos, const BaseDescriptor &descriptor, const Optional< LstmInputParamsInfo > &lstmParamsInfo, const Optional< QuantizedLstmInputParamsInfo > &quantizedLstmParamsInfo, Optional< std::string &> reasonIfUnsupported) const override
 
bool IsActivationSupported (const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsAdditionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsArgMinMaxSupported (const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsBatchToSpaceNdSupported (const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsCastSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsChannelShuffleSupported (const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsComparisonSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConcatSupported (const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConstantSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertBf16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp32ToBf16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp32ToFp16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvolution3dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDepthToSpaceSupported (const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDequantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDilatedDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reason=EmptyOptional()) const override
 
bool IsElementwiseUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFillSupported (const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFloorSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFullyConnectedSupported (const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsGatherSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported) const override
 
bool IsInputSupported (const TensorInfo &input, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsInstanceNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsL2NormalizationSupported (const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsLogicalBinarySupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported) const override
 
bool IsLogSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsMaximumSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMeanSupported (const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMinimumSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMultiplicationSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDivisionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsOutputSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPadSupported (const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPermuteSupported (const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPooling2dSupported (const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPreluSupported (const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsQuantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsQuantizedLstmSupported (const TensorInfo &input, const TensorInfo &cellStateIn, const TensorInfo &outputStateIn, const TensorInfo &cellStateOut, const TensorInfo &outputStateOut, const QuantizedLstmInputParamsInfo &paramsInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsReduceSupported (const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsReshapeSupported (const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsResizeSupported (const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSliceSupported (const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSpaceToBatchNdSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSpaceToDepthSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSplitterSupported (const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsStackSupported (const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsStridedSliceSupported (const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSubtractionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsTransposeConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsTransposeSupported (const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
- Public Member Functions inherited from LayerSupportBase
bool IsActivationSupported (const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsAdditionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsArgMinMaxSupported (const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsBatchToSpaceNdSupported (const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsCastSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsChannelShuffleSupported (const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsComparisonSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConcatSupported (const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConstantSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertBf16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp16ToFp32Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp32ToBf16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvertFp32ToFp16Supported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsConvolution3dSupported (const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDebugSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDepthToSpaceSupported (const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDequantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsDilatedDepthwiseConvolutionSupported (const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsDivisionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsElementwiseUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFakeQuantizationSupported (const TensorInfo &input, const FakeQuantizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFloorSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsFullyConnectedSupported (const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsGatherSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsInputSupported (const TensorInfo &input, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsInstanceNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsL2NormalizationSupported (const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsLogicalBinarySupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsLogicalUnarySupported (const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsLogSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
bool IsMaximumSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMeanSupported (const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMemCopySupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMemImportSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMergeSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMinimumSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsMultiplicationSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsNormalizationSupported (const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsOutputSupported (const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPadSupported (const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPermuteSupported (const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPooling2dSupported (const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPooling3dSupported (const TensorInfo &input, const TensorInfo &output, const Pooling3dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPreCompiledSupported (const TensorInfo &input, const PreCompiledDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsPreluSupported (const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported) const override
 
bool IsQuantizeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
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()) const override
 
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()) const override
 
bool IsRankSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported) const override
 
bool IsReduceSupported (const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsReshapeSupported (const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsResizeSupported (const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsShapeSupported (const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSliceSupported (const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSoftmaxSupported (const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSpaceToBatchNdSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSpaceToDepthSupported (const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSplitterSupported (const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsStackSupported (const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsStandInSupported (const std::vector< const TensorInfo *> &inputs, const std::vector< const TensorInfo *> &outputs, const StandInDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsStridedSliceSupported (const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSubtractionSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsSwitchSupported (const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output0, const TensorInfo &output1, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsTransposeConvolution2dSupported (const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsTransposeSupported (const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
bool IsUnidirectionalSequenceLstmSupported (const TensorInfo &input, const TensorInfo &outputStateIn, const TensorInfo &cellStateIn, const TensorInfo &output, const Optional< TensorInfo > &hiddenStateOutput, const Optional< TensorInfo > &cellStateOutput, const LstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
 
- Public Member Functions inherited from ILayerSupport
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsActivationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsAdditionSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsArgMinMaxSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsBatchNormalizationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsBatchToSpaceNdSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsCastSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsChannelShuffleSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsComparisonSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvertBf16ToFp32Supported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvertFp32ToBf16Supported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvertFp16ToFp32Supported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvertFp32ToFp16Supported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvolution2dSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConvolution3dSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDebugSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDepthToSpaceSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDepthwiseConvolutionSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDequantizeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDetectionPostProcessSupported(const TensorInfo &boxEncodings
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDilatedDepthwiseConvolutionSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsDivisionSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsElementwiseUnarySupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsFakeQuantizationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsFillSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsFloorSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsFullyConnectedSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsGatherSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsInputSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsInstanceNormalizationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsL2NormalizationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsLogicalBinarySupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsLogicalUnarySupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsLogSoftmaxSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsLstmSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMaximumSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMeanSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMemCopySupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMemImportSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMergeSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMinimumSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsMultiplicationSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsNormalizationSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsOutputSupported(const TensorInfo &output
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPadSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPermuteSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPooling2dSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPooling3dSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPreCompiledSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsPreluSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsQuantizeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsQLstmSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsQuantizedLstmSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsRankSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsReduceSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsReshapeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsResizeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsShapeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSliceSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSoftmaxSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSpaceToBatchNdSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSpaceToDepthSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSplitterSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSubtractionSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsSwitchSupported(const TensorInfo &input0
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsTransposeConvolution2dSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsTransposeSupported(const TensorInfo &input
 
 ARMNN_DEPRECATED_MSG_REMOVAL_DATE ("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsUnidirectionalSequenceLstmSupported(const TensorInfo &input
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from ILayerSupport
const TensorInfooutput
 
const TensorInfo const ActivationDescriptordescriptor
 
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfoinput1
 
const TensorInfo const TensorInfooutput
 
const TensorInfo const TensorInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const ArgMinMaxDescriptordescriptor
 
const TensorInfo const ArgMinMaxDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfomean
 
const TensorInfo const TensorInfo const TensorInfovar
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfobeta
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfogamma
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const BatchNormalizationDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const BatchNormalizationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const BatchToSpaceNdDescriptordescriptor
 
const TensorInfo const BatchToSpaceNdDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const ChannelShuffleDescriptordescriptor
 
const TensorInfo const ChannelShuffleDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfo const ComparisonDescriptordescriptor
 
const TensorInfo const TensorInfo const ComparisonDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsConcatSupported(const std Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const Convolution2dDescriptordescriptor
 
const TensorInfo const Convolution2dDescriptor const TensorInfoweights
 
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
 
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const Convolution3dDescriptordescriptor
 
const TensorInfo const Convolution3dDescriptor const TensorInfoweights
 
const TensorInfo const Convolution3dDescriptor const TensorInfo const Optional< TensorInfo > & biases
 
const TensorInfo const Convolution3dDescriptor const TensorInfo const Optional< TensorInfo > Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const DepthToSpaceDescriptordescriptor
 
const TensorInfo const DepthToSpaceDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const DepthwiseConvolution2dDescriptordescriptor
 
const TensorInfo const DepthwiseConvolution2dDescriptor const TensorInfoweights
 
const TensorInfo const DepthwiseConvolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
 
const TensorInfo const DepthwiseConvolution2dDescriptor const TensorInfo const Optional< TensorInfo > Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfoscores
 
const TensorInfo const TensorInfoanchors
 
const TensorInfo const TensorInfo const TensorInfodetectionBoxes
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfodetectionClasses
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfodetectionScores
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfonumDetections
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const DetectionPostProcessDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const DetectionPostProcessDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const =0
 
const TensorInfo const ElementwiseUnaryDescriptordescriptor
 
const TensorInfo const ElementwiseUnaryDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const FakeQuantizationDescriptordescriptor
 
const FakeQuantizationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const FillDescriptordescriptor
 
const TensorInfo const FillDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfoweights
 
const TensorInfo const TensorInfo const TensorInfobiases
 
const TensorInfo const TensorInfo const TensorInfo const FullyConnectedDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const FullyConnectedDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfo const GatherDescriptordescriptor
 
const TensorInfo const TensorInfo const GatherDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const InstanceNormalizationDescriptordescriptor
 
const TensorInfo const InstanceNormalizationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const L2NormalizationDescriptordescriptor
 
const TensorInfo const L2NormalizationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfo const LogicalBinaryDescriptordescriptor
 
const TensorInfo const TensorInfo const LogicalBinaryDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const LogSoftmaxDescriptordescriptor
 
const TensorInfo const LogSoftmaxDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfooutputStateIn
 
const TensorInfo const TensorInfocellStateIn
 
const TensorInfo const TensorInfo const TensorInfoscratchBuffer
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfooutputStateOut
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfocellStateOut
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfooutput
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfoparamsInfo
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const MeanDescriptordescriptor
 
const TensorInfo const MeanDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfoouput
 
const TensorInfo const NormalizationDescriptordescriptor
 
const TensorInfo const NormalizationDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const PadDescriptordescriptor
 
const TensorInfo const PadDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const PermuteDescriptordescriptor
 
const TensorInfo const PermuteDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const Pooling2dDescriptordescriptor
 
const TensorInfo const Pooling2dDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const Pooling3dDescriptordescriptor
 
const TensorInfo const Pooling3dDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const PreCompiledDescriptordescriptor
 
const PreCompiledDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfoalpha
 
const TensorInfopreviousOutputIn
 
const TensorInfo const TensorInfopreviousCellStateIn
 
const TensorInfo const TensorInfo const TensorInfooutputStateOut
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfocellStateOut
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfooutput
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const QLstmDescriptordescriptor
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const QLstmDescriptor const LstmInputParamsInfoparamsInfo
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const QLstmDescriptor const LstmInputParamsInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfopreviousCellStateIn
 
const TensorInfo const TensorInfopreviousOutputIn
 
const TensorInfo const TensorInfo const TensorInfocellStateOut
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfooutput
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const QuantizedLstmInputParamsInfoparamsInfo
 
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const QuantizedLstmInputParamsInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const ReduceDescriptordescriptor
 
const TensorInfo const ReduceDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const ReshapeDescriptordescriptor
 
const TensorInfo const ReshapeDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const ResizeDescriptordescriptor
 
const TensorInfo const ResizeDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const SliceDescriptordescriptor
 
const TensorInfo const SliceDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const SoftmaxDescriptordescriptor
 
const TensorInfo const SoftmaxDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const SpaceToBatchNdDescriptordescriptor
 
const TensorInfo const SpaceToBatchNdDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const SpaceToDepthDescriptordescriptor
 
const TensorInfo const SpaceToDepthDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const std::vector< std::reference_wrapper< TensorInfo > > & outputs
 
const std::vector< std::reference_wrapper< TensorInfo > > const ViewsDescriptordescriptor
 
const std::vector< std::reference_wrapper< TensorInfo > > const ViewsDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStackSupported(const std ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStandInSupported(const std const TensorInfooutput
 
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStackSupported(const std ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStandInSupported(const std const TensorInfo const StridedSliceDescriptordescriptor
 
ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStackSupported(const std ARMNN_DEPRECATED_MSG_REMOVAL_DATE("This method is deprecated. " "Use ABI Stable IsLayerSupported accepting LayerType argument instead.", "22.11") virtual bool IsStandInSupported(const std const TensorInfo const StridedSliceDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TensorInfooutput0
 
const TensorInfo const TensorInfo const TensorInfooutput1
 
const TensorInfo const TensorInfo const TensorInfo Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TransposeConvolution2dDescriptordescriptor
 
const TensorInfo const TransposeConvolution2dDescriptor const TensorInfoweights
 
const TensorInfo const TransposeConvolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
 
const TensorInfo const TransposeConvolution2dDescriptor const TensorInfo const Optional< TensorInfo > Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
const TensorInfo const TransposeDescriptordescriptor
 
const TensorInfo const TransposeDescriptor Optional< std::string & > reasonIfUnsupported = EmptyOptional()) const
 
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()) const
 
- Protected Member Functions inherited from ILayerSupport
 ILayerSupport ()
 
virtual ~ILayerSupport ()
 
+

Detailed Description

+
+

Definition at line 14 of file NeonLayerSupport.hpp.

+

Constructor & Destructor Documentation

+ +

◆ NeonLayerSupport() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
NeonLayerSupport (const IBackendInternal::IBackendSpecificModelContextPtrmodelContextPtr)
+
+explicit
+
+ +

Definition at line 138 of file NeonLayerSupport.cpp.

+
139  : m_ModelContextPtr(modelContextPtr)
140 {
141 }
+
+
+ +

◆ NeonLayerSupport() [2/2]

+ +
+
+ + + + + + + +
NeonLayerSupport ()
+
+ +

Definition at line 143 of file NeonLayerSupport.cpp.

+
144  : m_ModelContextPtr(nullptr)
145 {
146 }
+
+
+ +

◆ ~NeonLayerSupport()

+ +
+
+ + + + + +
+ + + + + + + +
~NeonLayerSupport ()
+
+inline
+
+ +

Definition at line 20 of file NeonLayerSupport.hpp.

+ +

References ILayerSupport::alpha, ILayerSupport::beta, ILayerSupport::biases, ILayerSupport::cellStateIn, ILayerSupport::cellStateOut, ILayerSupport::descriptor, ILayerSupport::gamma, ILayerSupport::input1, NeonLayerSupport::IsActivationSupported(), NeonLayerSupport::IsAdditionSupported(), NeonLayerSupport::IsArgMinMaxSupported(), NeonLayerSupport::IsBatchNormalizationSupported(), NeonLayerSupport::IsBatchToSpaceNdSupported(), NeonLayerSupport::IsCastSupported(), NeonLayerSupport::IsChannelShuffleSupported(), NeonLayerSupport::IsComparisonSupported(), NeonLayerSupport::IsConcatSupported(), NeonLayerSupport::IsConstantSupported(), NeonLayerSupport::IsConvertBf16ToFp32Supported(), NeonLayerSupport::IsConvertFp16ToFp32Supported(), NeonLayerSupport::IsConvertFp32ToBf16Supported(), NeonLayerSupport::IsConvertFp32ToFp16Supported(), NeonLayerSupport::IsConvolution2dSupported(), NeonLayerSupport::IsConvolution3dSupported(), NeonLayerSupport::IsDepthToSpaceSupported(), NeonLayerSupport::IsDepthwiseConvolutionSupported(), NeonLayerSupport::IsDequantizeSupported(), NeonLayerSupport::IsDilatedDepthwiseConvolutionSupported(), NeonLayerSupport::IsDivisionSupported(), NeonLayerSupport::IsElementwiseUnarySupported(), NeonLayerSupport::IsFillSupported(), NeonLayerSupport::IsFloorSupported(), NeonLayerSupport::IsFullyConnectedSupported(), NeonLayerSupport::IsGatherSupported(), NeonLayerSupport::IsInputSupported(), NeonLayerSupport::IsInstanceNormalizationSupported(), NeonLayerSupport::IsL2NormalizationSupported(), NeonLayerSupport::IsLayerSupported(), NeonLayerSupport::IsLogicalBinarySupported(), NeonLayerSupport::IsLogSoftmaxSupported(), NeonLayerSupport::IsLstmSupported(), NeonLayerSupport::IsMaximumSupported(), NeonLayerSupport::IsMeanSupported(), NeonLayerSupport::IsMinimumSupported(), NeonLayerSupport::IsMultiplicationSupported(), NeonLayerSupport::IsNormalizationSupported(), NeonLayerSupport::IsOutputSupported(), NeonLayerSupport::IsPadSupported(), NeonLayerSupport::IsPermuteSupported(), NeonLayerSupport::IsPooling2dSupported(), NeonLayerSupport::IsPreluSupported(), NeonLayerSupport::IsQLstmSupported(), NeonLayerSupport::IsQuantizedLstmSupported(), NeonLayerSupport::IsQuantizeSupported(), NeonLayerSupport::IsReduceSupported(), NeonLayerSupport::IsReshapeSupported(), NeonLayerSupport::IsResizeSupported(), NeonLayerSupport::IsSliceSupported(), NeonLayerSupport::IsSoftmaxSupported(), NeonLayerSupport::IsSpaceToBatchNdSupported(), NeonLayerSupport::IsSpaceToDepthSupported(), NeonLayerSupport::IsSplitterSupported(), NeonLayerSupport::IsStackSupported(), NeonLayerSupport::IsStridedSliceSupported(), NeonLayerSupport::IsSubtractionSupported(), NeonLayerSupport::IsTransposeConvolution2dSupported(), NeonLayerSupport::IsTransposeSupported(), ILayerSupport::mean, ILayerSupport::output, ILayerSupport::outputs, ILayerSupport::outputStateIn, ILayerSupport::outputStateOut, ILayerSupport::paramsInfo, ILayerSupport::previousCellStateIn, ILayerSupport::previousOutputIn, ILayerSupport::reasonIfUnsupported, ILayerSupport::scratchBuffer, ILayerSupport::var, and ILayerSupport::weights.

+
20 {}
+
+
+

Member Function Documentation

+ +

◆ IsActivationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsActivationSupported (const TensorInfoinput,
const TensorInfooutput,
const ActivationDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 566 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, armnn::IgnoreUnused(), and armnn::NeonActivationWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
570 {
574  input,
575  output,
576  descriptor);
577 }
arm_compute::Status NeonActivationWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsAdditionSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsAdditionSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 579 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonAdditionWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
583 {
586  input0,
587  input1,
588  output,
589  nullptr);
590 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonAdditionWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsArgMinMaxSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsArgMinMaxSupported (const TensorInfoinput,
const TensorInfooutput,
const ArgMinMaxDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 592 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonArgMinMaxWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
596 {
599  input,
600  output,
601  descriptor);
602 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
arm_compute::Status NeonArgMinMaxWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsBatchNormalizationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsBatchNormalizationSupported (const TensorInfoinput,
const TensorInfooutput,
const TensorInfomean,
const TensorInfovar,
const TensorInfobeta,
const TensorInfogamma,
const BatchNormalizationDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 604 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonBatchNormalizationValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
612 {
615  input,
616  output,
617  mean,
618  var,
619  beta,
620  gamma,
621  descriptor,
622  nullptr);
623 }
arm_compute::Status NeonBatchNormalizationValidate(const TensorInfo &input, const TensorInfo &output, const TensorInfo &mean, const TensorInfo &var, const TensorInfo &beta, const TensorInfo &gamma, const BatchNormalizationDescriptor &descriptor, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & gamma
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo const TensorInfo const TensorInfo & var
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & beta
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const TensorInfo & mean
+
+
+
+ +

◆ IsBatchToSpaceNdSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsBatchToSpaceNdSupported (const TensorInfoinput,
const TensorInfooutput,
const BatchToSpaceNdDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 625 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonBatchToSpaceNdWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
629 {
632  input,
633  output,
634  descriptor);
635 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonBatchToSpaceNdWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsCastSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsCastSupported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 637 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonCastValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
640 {
643  input,
644  output);
645 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonCastValidate(const TensorInfo &input, const TensorInfo &output)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsChannelShuffleSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsChannelShuffleSupported (const TensorInfoinput,
const TensorInfooutput,
const ChannelShuffleDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 647 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonChannelShuffleValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
651 {
654  input,
655  output,
656  descriptor);
657 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonChannelShuffleValidate(const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsComparisonSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsComparisonSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
const ComparisonDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 659 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonComparisonWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
664 {
665 
668  input0,
669  input1,
670  output,
671  descriptor);
672 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonComparisonWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor)
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsConcatSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConcatSupported (const std::vector< const TensorInfo *> inputs,
const TensorInfooutput,
const OriginsDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 674 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, OriginsDescriptor::GetConcatAxis(), OriginsDescriptor::GetNumDimensions(), TensorInfo::IsTypeSpaceMatch(), armnn::NeonConcatWorkloadValidate(), and armnn::SetValueChecked().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
678 {
679  if (descriptor.GetNumDimensions() <= descriptor.GetConcatAxis())
680  {
681  SetValueChecked(reasonIfUnsupported, "Neon Concat: Concat axis > Number of dimensions.");
682  return false;
683  }
684 
685  unsigned int concatInnerAxis = (descriptor.GetNumDimensions() - descriptor.GetConcatAxis()) - 1;
686  if(concatInnerAxis < 3) // Width, height, or channels
687  {
690  inputs,
691  output,
692  descriptor);
693  }
694  else if (concatInnerAxis == 3)
695  {
696  for (auto& input : inputs)
697  {
698  if (input && !output.IsTypeSpaceMatch(*input)) // Cannot use sub-tensors if the types are not same space
699  {
700  SetValueChecked(reasonIfUnsupported, "Neon Concat: Types and quantization parameters must match.");
701  return false;
702  }
703  }
704  return true; // Sub-tensors support concat along batch
705  }
706  else // > 4 dimensions not supported.
707  {
708  SetValueChecked(reasonIfUnsupported, "Neon Concat: Maximum of 4 dimensions supported.");
709  return false;
710  }
711 }
bool IsTypeSpaceMatch(const TensorInfo &other) const
Check that the types are the same and, if quantize, that the quantization parameters are the same...
Definition: Tensor.cpp:434
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonConcatWorkloadValidate(const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const OriginsDescriptor &descriptor)
+
void SetValueChecked(Optional< T &> optionalRef, V &&val)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
unsigned int GetNumDimensions() const
Definition: Tensor.hpp:195
+
+
+
+ +

◆ IsConstantSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool IsConstantSupported (const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 713 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonConstantWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
715 {
718  output);
719 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & output
+
arm_compute::Status NeonConstantWorkloadValidate(const TensorInfo &output)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsConvertBf16ToFp32Supported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvertBf16ToFp32Supported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 721 of file NeonLayerSupport.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
724 {
725  armnn::IgnoreUnused(input);
728  return true;
729 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo & output
+
+
+
+ +

◆ IsConvertFp16ToFp32Supported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvertFp16ToFp32Supported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 731 of file NeonLayerSupport.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
734 {
735  armnn::IgnoreUnused(input);
738  return true;
739 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo & output
+
+
+
+ +

◆ IsConvertFp32ToBf16Supported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvertFp32ToBf16Supported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 741 of file NeonLayerSupport.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
744 {
745  armnn::IgnoreUnused(input);
748  return true;
749 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo & output
+
+
+
+ +

◆ IsConvertFp32ToFp16Supported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvertFp32ToFp16Supported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 751 of file NeonLayerSupport.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
754 {
755  armnn::IgnoreUnused(input);
758  return true;
759 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo & output
+
+
+
+ +

◆ IsConvolution2dSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvolution2dSupported (const TensorInfoinput,
const TensorInfooutput,
const Convolution2dDescriptordescriptor,
const TensorInfoweights,
const Optional< TensorInfo > & biases,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 761 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, NeonBackendModelContext::IsFastMathEnabled(), and armnn::NeonConvolution2dWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
767 {
768  bool isFastMathEnabled = false;
769 #if defined(ARMCOMPUTENEON_ENABLED)
770  if (m_ModelContextPtr)
771  {
772  if (m_ModelContextPtr.get() != nullptr)
773  {
774  auto modelOptions = dynamic_cast<NeonBackendModelContext*>(m_ModelContextPtr.get());
775  if (modelOptions)
776  {
777  isFastMathEnabled = modelOptions->IsFastMathEnabled();
778  }
779  }
780  }
781 #endif
782 
785  input,
786  output,
787  descriptor,
788  weights,
789  biases,
790  isFastMathEnabled,
791  nullptr);
792 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, bool isFastMathEnabled, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsConvolution3dSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsConvolution3dSupported (const TensorInfoinput,
const TensorInfooutput,
const Convolution3dDescriptordescriptor,
const TensorInfoweights,
const Optional< TensorInfo > & biases,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 794 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, NeonBackendModelContext::IsFastMathEnabled(), and armnn::NeonConvolution3dWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
800 {
801  bool isFastMathEnabled = false;
802 #if defined(ARMCOMPUTENEON_ENABLED)
803  if (m_ModelContextPtr)
804  {
805  if (m_ModelContextPtr.get() != nullptr)
806  {
807  auto modelOptions = dynamic_cast<NeonBackendModelContext*>(m_ModelContextPtr.get());
808  if (modelOptions)
809  {
810  isFastMathEnabled = modelOptions->IsFastMathEnabled();
811  }
812  }
813  }
814 #endif
815 
818  input,
819  output,
820  descriptor,
821  weights,
822  biases,
823  isFastMathEnabled,
824  nullptr);
825 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonConvolution3dWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, bool isFastMathEnabled, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsDepthToSpaceSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsDepthToSpaceSupported (const TensorInfoinput,
const TensorInfooutput,
const DepthToSpaceDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 827 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonDepthToSpaceWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
831 {
834  input,
835  output,
836  descriptor);
837 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
arm_compute::Status NeonDepthToSpaceWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor)
+
+
+
+ +

◆ IsDepthwiseConvolutionSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsDepthwiseConvolutionSupported (const TensorInfoinput,
const TensorInfooutput,
const DepthwiseConvolution2dDescriptordescriptor,
const TensorInfoweights,
const Optional< TensorInfo > & biases,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 839 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonDepthwiseConvolutionWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), TEST_SUITE(), and NeonLayerSupport::~NeonLayerSupport().

+
845 {
848  input,
849  output,
850  descriptor,
851  weights,
852  biases,
853  nullptr);
854 }
arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsDequantizeSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsDequantizeSupported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 856 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonDequantizeWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
859 {
862  input,
863  output);
864 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonDequantizeWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsDilatedDepthwiseConvolutionSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsDilatedDepthwiseConvolutionSupported (const TensorInfoinput,
const TensorInfooutput,
const DepthwiseConvolution2dDescriptordescriptor,
const TensorInfoweights,
const Optional< TensorInfo > & biases,
Optional< std::string &> reason = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 866 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonDepthwiseConvolutionWorkloadValidate().

+ +

Referenced by NeonLayerSupport::~NeonLayerSupport().

+
872 {
875  input,
876  output,
877  descriptor,
878  weights,
879  biases,
880  nullptr);
881 }
arm_compute::Status NeonDepthwiseConvolutionWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsDivisionSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsDivisionSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1120 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonDivisionWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1124 {
1127  input0,
1128  input1,
1129  output,
1130  nullptr);
1131 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonDivisionWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsElementwiseUnarySupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsElementwiseUnarySupported (const TensorInfoinput,
const TensorInfooutput,
const ElementwiseUnaryDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 883 of file NeonLayerSupport.cpp.

+ +

References armnn::Abs, armnn::Exp, FORWARD_WORKLOAD_VALIDATE_FUNC, armnn::Log, armnn::LogicalNot, ElementwiseUnaryDescriptor::m_Operation, armnn::Neg, armnn::NeonAbsWorkloadValidate(), armnn::NeonExpWorkloadValidate(), armnn::NeonLogicalNotWorkloadValidate(), armnn::NeonLogWorkloadValidate(), armnn::NeonNegWorkloadValidate(), armnn::NeonRsqrtWorkloadValidate(), armnn::NeonSinWorkloadValidate(), armnn::Rsqrt, and armnn::Sin.

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
887 {
888  switch(descriptor.m_Operation)
889  {
890  case UnaryOperation::Abs:
893  input,
894  output);
895  case UnaryOperation::Exp:
898  input,
899  output);
903  input,
904  output);
905  case UnaryOperation::Log:
908  input,
909  output);
910  case UnaryOperation::Neg:
913  input,
914  output);
918  input,
919  output);
920  case UnaryOperation::Sin:
923  input,
924  output);
925  default:
926  return false;
927  }
928 }
arm_compute::Status NeonNegWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+ +
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+ +
const TensorInfo const ActivationDescriptor & descriptor
+ +
arm_compute::Status NeonLogWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+ +
arm_compute::Status NeonAbsWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+ +
arm_compute::Status NeonExpWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
arm_compute::Status NeonLogicalNotWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
const TensorInfo & output
+
arm_compute::Status NeonRsqrtWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+ + +
arm_compute::Status NeonSinWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
+
+
+ +

◆ IsFillSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsFillSupported (const TensorInfoinput,
const TensorInfooutput,
const FillDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+overridevirtual
+
+ +

Reimplemented from LayerSupportBase.

+ +

Definition at line 930 of file NeonLayerSupport.cpp.

+ +

References armnn::IgnoreUnused().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
934 {
935  armnn::IgnoreUnused(input);
938 
939  return IsNeonBackendSupported(reasonIfUnsupported);
940 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
+
+
+ +

◆ IsFloorSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsFloorSupported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 942 of file NeonLayerSupport.cpp.

+ +

References TensorInfo::GetDataType(), armnn::IgnoreUnused(), and armnn::IsSupportedForDataTypeGeneric().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
945 {
947  return IsNeonBackendSupported(reasonIfUnsupported) &&
949  input.GetDataType(),
950  &FalseFuncF16<>,
951  &TrueFunc<>,
952  &FalseFuncU8<>,
953  &FalseFuncI32<>,
954  &FalseFuncU8<>);
955 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
DataType GetDataType() const
Definition: Tensor.hpp:198
+
const TensorInfo & output
+
bool IsSupportedForDataTypeGeneric(Optional< std::string &> reasonIfUnsupported, DataType dataType, Float16Func float16FuncPtr, Float32Func float32FuncPtr, Uint8Func uint8FuncPtr, Int32Func int32FuncPtr, BooleanFunc booleanFuncPtr, Params &&... params)
+
+
+
+ +

◆ IsFullyConnectedSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsFullyConnectedSupported (const TensorInfoinput,
const TensorInfooutput,
const TensorInfoweights,
const TensorInfobiases,
const FullyConnectedDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 957 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonFullyConnectedWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
963 {
966  input,
967  output,
968  weights,
969  biases,
970  descriptor,
971  nullptr);
972 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonFullyConnectedWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const Optional< TensorInfo > &biases, const FullyConnectedDescriptor &descriptor, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsGatherSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsGatherSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
const GatherDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported 
) const
+
+override
+
+ +

Definition at line 974 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonGatherWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
979 {
982  input0,
983  input1,
984  output,
985  descriptor);
986 }
arm_compute::Status NeonGatherWorkloadValidate(const TensorInfo &input, const TensorInfo &indices, const TensorInfo &output, const GatherDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsInputSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool IsInputSupported (const TensorInfoinput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 988 of file NeonLayerSupport.cpp.

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
990 {
991  return IsNeonBackendSupported(reasonIfUnsupported, input);
992 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
+
+
+ +

◆ IsInstanceNormalizationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsInstanceNormalizationSupported (const TensorInfoinput,
const TensorInfooutput,
const InstanceNormalizationDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 994 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonInstanceNormalizationWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
998 {
1001  input,
1002  output,
1003  descriptor);
1004 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonInstanceNormalizationWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsL2NormalizationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsL2NormalizationSupported (const TensorInfoinput,
const TensorInfooutput,
const L2NormalizationDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1006 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonL2NormalizationWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1010 {
1012 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonL2NormalizationWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsLayerSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsLayerSupported (const LayerTypetype,
const std::vector< TensorInfo > & infos,
const BaseDescriptordescriptor,
const Optional< LstmInputParamsInfo > & lstmParamsInfo,
const Optional< QuantizedLstmInputParamsInfo > & quantizedLstmParamsInfo,
Optional< std::string &> reasonIfUnsupported 
) const
+
+overridevirtual
+
+ +

Reimplemented from LayerSupportBase.

+ +

Definition at line 148 of file NeonLayerSupport.cpp.

+ +

References armnn::Activation, armnn::Addition, armnn::ArgMinMax, armnn::BatchNormalization, armnn::BatchToSpaceNd, armnn::Cast, armnn::ChannelShuffle, armnn::Comparison, armnn::Concat, armnn::Constant, armnn::ConvertBf16ToFp32, armnn::ConvertFp16ToFp32, armnn::ConvertFp32ToBf16, armnn::ConvertFp32ToFp16, armnn::Convolution2d, armnn::Convolution3d, armnn::DepthToSpace, armnn::DepthwiseConvolution2d, armnn::Dequantize, ILayerSupport::descriptor, armnn::DetectionPostProcess, armnn::Division, armnn::ElementwiseUnary, armnn::Fill, armnn::Floor, armnn::FullyConnected, armnn::Gather, armnn::Input, armnn::InstanceNormalization, NeonLayerSupport::IsActivationSupported(), NeonLayerSupport::IsAdditionSupported(), NeonLayerSupport::IsArgMinMaxSupported(), NeonLayerSupport::IsBatchNormalizationSupported(), NeonLayerSupport::IsBatchToSpaceNdSupported(), NeonLayerSupport::IsCastSupported(), NeonLayerSupport::IsChannelShuffleSupported(), NeonLayerSupport::IsComparisonSupported(), NeonLayerSupport::IsConcatSupported(), NeonLayerSupport::IsConstantSupported(), NeonLayerSupport::IsConvertBf16ToFp32Supported(), NeonLayerSupport::IsConvertFp16ToFp32Supported(), NeonLayerSupport::IsConvertFp32ToBf16Supported(), NeonLayerSupport::IsConvertFp32ToFp16Supported(), NeonLayerSupport::IsConvolution2dSupported(), NeonLayerSupport::IsConvolution3dSupported(), NeonLayerSupport::IsDepthToSpaceSupported(), NeonLayerSupport::IsDepthwiseConvolutionSupported(), NeonLayerSupport::IsDequantizeSupported(), LayerSupportBase::IsDetectionPostProcessSupported(), NeonLayerSupport::IsDivisionSupported(), NeonLayerSupport::IsElementwiseUnarySupported(), NeonLayerSupport::IsFillSupported(), NeonLayerSupport::IsFloorSupported(), NeonLayerSupport::IsFullyConnectedSupported(), NeonLayerSupport::IsGatherSupported(), NeonLayerSupport::IsInputSupported(), NeonLayerSupport::IsInstanceNormalizationSupported(), NeonLayerSupport::IsL2NormalizationSupported(), NeonLayerSupport::IsLogicalBinarySupported(), NeonLayerSupport::IsLogSoftmaxSupported(), NeonLayerSupport::IsLstmSupported(), NeonLayerSupport::IsMaximumSupported(), NeonLayerSupport::IsMeanSupported(), LayerSupportBase::IsMemCopySupported(), LayerSupportBase::IsMemImportSupported(), LayerSupportBase::IsMergeSupported(), NeonLayerSupport::IsMinimumSupported(), NeonLayerSupport::IsMultiplicationSupported(), NeonLayerSupport::IsNormalizationSupported(), NeonLayerSupport::IsOutputSupported(), NeonLayerSupport::IsPadSupported(), NeonLayerSupport::IsPermuteSupported(), NeonLayerSupport::IsPooling2dSupported(), NeonLayerSupport::IsPreluSupported(), NeonLayerSupport::IsQLstmSupported(), NeonLayerSupport::IsQuantizedLstmSupported(), NeonLayerSupport::IsQuantizeSupported(), NeonLayerSupport::IsReduceSupported(), NeonLayerSupport::IsReshapeSupported(), NeonLayerSupport::IsResizeSupported(), LayerSupportBase::IsShapeSupported(), NeonLayerSupport::IsSliceSupported(), NeonLayerSupport::IsSoftmaxSupported(), NeonLayerSupport::IsSpaceToBatchNdSupported(), NeonLayerSupport::IsSpaceToDepthSupported(), NeonLayerSupport::IsSplitterSupported(), NeonLayerSupport::IsStackSupported(), NeonLayerSupport::IsStridedSliceSupported(), NeonLayerSupport::IsSubtractionSupported(), NeonLayerSupport::IsTransposeConvolution2dSupported(), NeonLayerSupport::IsTransposeSupported(), armnn::L2Normalization, armnn::LogicalBinary, armnn::LogSoftmax, armnn::Lstm, armnn::Map, armnn::Maximum, armnn::Mean, armnn::MemCopy, armnn::MemImport, armnn::Merge, armnn::Minimum, armnn::Multiplication, armnn::Normalization, armnn::Output, armnn::Pad, armnn::Permute, armnn::Pooling2d, armnn::Prelu, armnn::QLstm, armnn::Quantize, armnn::QuantizedLstm, armnn::Rank, ILayerSupport::reasonIfUnsupported, armnn::Reduce, armnn::Reshape, armnn::Resize, armnn::Shape, armnn::Slice, armnn::Softmax, armnn::SpaceToBatchNd, armnn::SpaceToDepth, armnn::Splitter, armnn::Stack, armnn::StridedSlice, armnn::Subtraction, armnn::Transpose, armnn::TransposeConvolution2d, armnn::Unmap, and OptionalReferenceSwitch< std::is_reference< T >::value, T >::value().

+ +

Referenced by NeonLayerSupport::~NeonLayerSupport().

+
154 {
155  switch (type)
156  {
158  return IsActivationSupported(infos[0],
159  infos[1],
160  *(PolymorphicDowncast<const ActivationDescriptor*>(&descriptor)),
162  case LayerType::Addition:
163  return IsAdditionSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
165  return IsArgMinMaxSupported(infos[0],
166  infos[1],
167  *(PolymorphicDowncast<const ArgMinMaxDescriptor*>(&descriptor)),
170  return IsBatchNormalizationSupported(infos[0],
171  infos[1],
172  infos[2],
173  infos[3],
174  infos[4],
175  infos[5],
176  *(PolymorphicDowncast<const BatchNormalizationDescriptor*>
177  (&descriptor)),
180  return IsBatchToSpaceNdSupported(infos[0],
181  infos[1],
182  *(PolymorphicDowncast<const BatchToSpaceNdDescriptor*>(&descriptor)),
185  return IsComparisonSupported(infos[0],
186  infos[1],
187  infos[2],
188  *(PolymorphicDowncast<const ComparisonDescriptor*>(&descriptor)),
190  case LayerType::Concat:
191  {
192  std::vector<const TensorInfo*> inputInfos;
193  for (uint32_t i = 0; i < (infos.size() - 1); i++)
194  {
195  inputInfos.push_back(&infos[i]);
196  }
197  return IsConcatSupported(inputInfos,
198  infos[infos.size() - 1],
199  *(PolymorphicDowncast<const OriginsDescriptor*>(&descriptor)),
201  }
202  case LayerType::Constant:
203  return IsConstantSupported(infos[0], reasonIfUnsupported);
205  return IsConvertBf16ToFp32Supported(infos[0], infos[1], reasonIfUnsupported);
207  return IsConvertFp16ToFp32Supported(infos[0], infos[1], reasonIfUnsupported);
209  return IsConvertFp32ToBf16Supported(infos[0], infos[1], reasonIfUnsupported);
211  return IsConvertFp32ToFp16Supported(infos[0], infos[1], reasonIfUnsupported);
213  {
214  if (infos.size() != 4)
215  {
216  throw InvalidArgumentException("Invalid number of TransposeConvolution2d TensorInfos. "
217  "TensorInfos should be of format: {input, output, weights, biases}.");
218  }
219 
220  auto desc = *(PolymorphicDowncast<const Convolution2dDescriptor*>(&descriptor));
221  if (infos[3] == TensorInfo())
222  {
223  return IsConvolution2dSupported(infos[0],
224  infos[1],
225  desc,
226  infos[2],
227  EmptyOptional(),
229  }
230  else
231  {
232  return IsConvolution2dSupported(infos[0],
233  infos[1],
234  desc,
235  infos[2],
236  infos[3],
238  }
239  }
241  return IsDepthToSpaceSupported(infos[0],
242  infos[1],
243  *(PolymorphicDowncast<const DepthToSpaceDescriptor*>(&descriptor)),
246  {
247  if (infos.size() != 4)
248  {
249  throw InvalidArgumentException("Invalid number of DepthwiseConvolution2d TensorInfos. "
250  "TensorInfos should be of format: {input, output, weights, biases}.");
251  }
252 
253  auto desc = *(PolymorphicDowncast<const DepthwiseConvolution2dDescriptor*>(&descriptor));
254  if (infos[3] == TensorInfo())
255  {
256  return IsDepthwiseConvolutionSupported(infos[0],
257  infos[1],
258  desc,
259  infos[2],
260  EmptyOptional(),
262  }
263  else
264  {
265  return IsDepthwiseConvolutionSupported(infos[0],
266  infos[1],
267  desc,
268  infos[2],
269  infos[3],
271  }
272  }
274  return IsDequantizeSupported(infos[0], infos[1], reasonIfUnsupported);
275  case LayerType::Division:
276  return IsDivisionSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
278  return IsElementwiseUnarySupported(infos[0],
279  infos[1],
280  *(PolymorphicDowncast<const ElementwiseUnaryDescriptor*>(&descriptor)),
282  case LayerType::Fill:
283  return IsFillSupported(infos[0],
284  infos[1],
285  *(PolymorphicDowncast<const FillDescriptor*>(&descriptor)),
287  case LayerType::Floor:
288  return IsFloorSupported(infos[0], infos[1], reasonIfUnsupported);
290  return IsFullyConnectedSupported(infos[0],
291  infos[1],
292  infos[2],
293  infos[3],
294  *(PolymorphicDowncast<const FullyConnectedDescriptor*>(&descriptor)),
296  case LayerType::Gather:
297  return IsGatherSupported(infos[0],
298  infos[1],
299  infos[2],
300  *(PolymorphicDowncast<const GatherDescriptor*>(&descriptor)),
302  case LayerType::Input:
303  return IsInputSupported(infos[0], reasonIfUnsupported);
305  return IsInstanceNormalizationSupported(infos[0],
306  infos[1],
307  *(PolymorphicDowncast<const InstanceNormalizationDescriptor*>
308  (&descriptor)),
311  return IsL2NormalizationSupported(infos[0],
312  infos[1],
313  *(PolymorphicDowncast<const L2NormalizationDescriptor*>(&descriptor)),
316  return IsLogicalBinarySupported(infos[0],
317  infos[1],
318  infos[2],
319  *(PolymorphicDowncast<const LogicalBinaryDescriptor*>(&descriptor)),
322  return IsLogSoftmaxSupported(infos[0],
323  infos[1],
324  *(PolymorphicDowncast<const LogSoftmaxDescriptor*>(&descriptor)),
326  case LayerType::Lstm:
327  return IsLstmSupported(infos[0],
328  infos[1],
329  infos[2],
330  infos[3],
331  infos[4],
332  infos[5],
333  infos[6],
334  *(PolymorphicDowncast<const LstmDescriptor*>(&descriptor)),
335  lstmParamsInfo.value(),
337  case LayerType::QLstm:
338  return IsQLstmSupported(infos[0],
339  infos[1],
340  infos[2],
341  infos[3],
342  infos[4],
343  infos[5],
344  *(PolymorphicDowncast<const QLstmDescriptor*>(&descriptor)),
345  lstmParamsInfo.value(),
347  case LayerType::Maximum:
348  return IsMaximumSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
349  case LayerType::Mean:
350  return IsMeanSupported(infos[0],
351  infos[1],
352  *(PolymorphicDowncast<const MeanDescriptor*>(&descriptor)),
354  case LayerType::Minimum:
355  return IsMinimumSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
357  return IsMultiplicationSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
359  return IsNormalizationSupported(infos[0],
360  infos[1],
361  *(PolymorphicDowncast<const NormalizationDescriptor*>(&descriptor)),
363  case LayerType::Output:
364  return IsOutputSupported(infos[0], reasonIfUnsupported);
365  case LayerType::Pad:
366  return IsPadSupported(infos[0],
367  infos[1],
368  *(PolymorphicDowncast<const PadDescriptor*>(&descriptor)),
370  case LayerType::Permute:
371  return IsPermuteSupported(infos[0],
372  infos[1],
373  *(PolymorphicDowncast<const PermuteDescriptor*>(&descriptor)),
376  return IsPooling2dSupported(infos[0],
377  infos[1],
378  *(PolymorphicDowncast<const Pooling2dDescriptor*>(&descriptor)),
380  case LayerType::Prelu:
381  return IsPreluSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
382  case LayerType::Quantize:
383  return IsQuantizeSupported(infos[0], infos[1], reasonIfUnsupported);
385  return IsQuantizedLstmSupported(infos[0],
386  infos[1],
387  infos[2],
388  infos[3],
389  infos[4],
390  quantizedLstmParamsInfo.value(),
392  case LayerType::Reshape:
393  return IsReshapeSupported(infos[0],
394  infos[1],
395  *(PolymorphicDowncast<const ReshapeDescriptor*>(&descriptor)),
397  case LayerType::Resize:
398  return IsResizeSupported(infos[0],
399  infos[1],
400  *(PolymorphicDowncast<const ResizeDescriptor*>(&descriptor)),
402  case LayerType::Reduce:
403  return IsReduceSupported(infos[0],
404  infos[1],
405  *(PolymorphicDowncast<const ReduceDescriptor*>(&descriptor)),
407  case LayerType::Slice:
408  return IsSliceSupported(infos[0],
409  infos[1],
410  *(PolymorphicDowncast<const SliceDescriptor*>(&descriptor)),
412  case LayerType::Softmax:
413  return IsSoftmaxSupported(infos[0],
414  infos[1],
415  *(PolymorphicDowncast<const SoftmaxDescriptor*>(&descriptor)),
418  return IsSpaceToBatchNdSupported(infos[0],
419  infos[1],
420  *(PolymorphicDowncast<const SpaceToBatchNdDescriptor*>(&descriptor)),
423  return IsSpaceToDepthSupported(infos[0],
424  infos[1],
425  *(PolymorphicDowncast<const SpaceToDepthDescriptor*>(&descriptor)),
427  case LayerType::Splitter:
428  {
429  std::vector<TensorInfo> outputInfos;
430  for (uint32_t i = 1; i < infos.size(); i++)
431  {
432  outputInfos.push_back(infos[i]);
433  }
434  return IsSplitterSupported(infos[0],
435  {outputInfos.begin(), outputInfos.end()},
436  *(PolymorphicDowncast<const ViewsDescriptor*>(&descriptor)),
438  }
439  case LayerType::Stack:
440  {
441  std::vector<const TensorInfo*> inputInfos;
442  for (uint32_t i = 0; i < infos.size() - 1; i++)
443  {
444  inputInfos.push_back(&infos[i]);
445  }
446  return IsStackSupported(inputInfos,
447  infos[infos.size() - 1],
448  *(PolymorphicDowncast<const StackDescriptor*>(&descriptor)),
450  }
452  return IsStridedSliceSupported(infos[0],
453  infos[1],
454  *(PolymorphicDowncast<const StridedSliceDescriptor*>(&descriptor)),
457  return IsSubtractionSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
459  return IsTransposeSupported(infos[0],
460  infos[1],
461  *(PolymorphicDowncast<const TransposeDescriptor*>(&descriptor)),
464  {
465  if (infos.size() != 4)
466  {
467  throw InvalidArgumentException("Invalid number of TransposeConvolution2d TensorInfos. "
468  "TensorInfos should be of format: {input, output, weights, biases}.");
469  }
470 
471  auto desc = *(PolymorphicDowncast<const TransposeConvolution2dDescriptor*>(&descriptor));
472  if (infos[3] == TensorInfo())
473  {
474  return IsTransposeConvolution2dSupported(infos[0],
475  infos[1],
476  desc,
477  infos[2],
478  EmptyOptional(),
480  }
481  else
482  {
483  return IsTransposeConvolution2dSupported(infos[0],
484  infos[1],
485  desc,
486  infos[2],
487  infos[3],
489  }
490  }
491  case LayerType::Cast:
492  return IsCastSupported(infos[0], infos[1], reasonIfUnsupported);
494  return IsChannelShuffleSupported(infos[0],
495  infos[1],
496  *(PolymorphicDowncast<const ChannelShuffleDescriptor*>(&descriptor)),
499  {
500  if (infos.size() != 4)
501  {
502  throw InvalidArgumentException("Invalid number of Convolution3d TensorInfos. "
503  "TensorInfos should be of format: {input, output, weights, biases}.");
504  }
505 
506  auto desc = *(PolymorphicDowncast<const Convolution3dDescriptor*>(&descriptor));
507  if (infos[3] == TensorInfo())
508  {
509  return IsConvolution3dSupported(infos[0],
510  infos[1],
511  desc,
512  infos[2],
513  EmptyOptional(),
515  }
516  else
517  {
518  return IsConvolution3dSupported(infos[0],
519  infos[1],
520  desc,
521  infos[2],
522  infos[3],
524  }
525  }
526  case LayerType::MemCopy:
527  return LayerSupportBase::IsMemCopySupported(infos[0], infos[1], reasonIfUnsupported);
531  {
532  auto desc = *(PolymorphicDowncast<const DetectionPostProcessDescriptor*>(&descriptor));
534  infos[1],
535  infos[2],
536  infos[3],
537  infos[4],
538  infos[5],
539  infos[6],
540  desc,
542  }
543  case LayerType::Map:
544  return true;
545  case LayerType::Unmap:
546  return true;
547  case LayerType::Merge:
548  return LayerSupportBase::IsMergeSupported(infos[0],
549  infos[1],
550  infos[2],
552  case LayerType::Rank:
553  return true;
554  case LayerType::Shape:
555  return LayerSupportBase::IsShapeSupported(infos[0],
556  infos[1],
558  default:
559  // layers not supported in neon by default:
560  // debug, fakequantization, precompiled, standin,
561  // switch, unidirectionalsequencelstm, pooling3d
562  return false;
563  }
564 }
+ + +
bool IsConcatSupported(const std::vector< const TensorInfo *> inputs, const TensorInfo &output, const OriginsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsSliceSupported(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsConvertFp32ToFp16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsGatherSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const GatherDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported) const override
+
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()) const override
+
bool IsMemImportSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsQuantizedLstmSupported(const TensorInfo &input, const TensorInfo &cellStateIn, const TensorInfo &outputStateIn, const TensorInfo &cellStateOut, const TensorInfo &outputStateOut, const QuantizedLstmInputParamsInfo &paramsInfo, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsDepthToSpaceSupported(const TensorInfo &input, const TensorInfo &output, const DepthToSpaceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsL2NormalizationSupported(const TensorInfo &input, const TensorInfo &output, const L2NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsCastSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsStridedSliceSupported(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsConvertFp32ToBf16Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + + + +
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+ +
bool IsShapeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + + +
bool IsConstantSupported(const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsPadSupported(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
const TensorInfo const ActivationDescriptor & descriptor
+ + + +
bool IsPooling2dSupported(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsActivationSupported(const TensorInfo &input, const TensorInfo &output, const ActivationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsMultiplicationSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsComparisonSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ComparisonDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsLogicalBinarySupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const LogicalBinaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported) const override
+ +
bool IsConvolution3dSupported(const TensorInfo &input, const TensorInfo &output, const Convolution3dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsFillSupported(const TensorInfo &input, const TensorInfo &output, const FillDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsInputSupported(const TensorInfo &input, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsStackSupported(const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const StackDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsMinimumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsPreluSupported(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsOutputSupported(const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsInstanceNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const InstanceNormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsNormalizationSupported(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsElementwiseUnarySupported(const TensorInfo &input, const TensorInfo &output, const ElementwiseUnaryDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsDivisionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsFloorSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsMergeSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsLogSoftmaxSupported(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsResizeSupported(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsMemCopySupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsTransposeConvolution2dSupported(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsSplitterSupported(const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, const ViewsDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsReshapeSupported(const TensorInfo &input, const TensorInfo &output, const ReshapeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
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()) const override
+ + +
bool IsQuantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsConvertFp16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsSubtractionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
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()) const override
+ +
bool IsSpaceToBatchNdSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsDepthwiseConvolutionSupported(const TensorInfo &input, const TensorInfo &output, const DepthwiseConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsArgMinMaxSupported(const TensorInfo &input, const TensorInfo &output, const ArgMinMaxDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsSpaceToDepthSupported(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsTransposeSupported(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsMaximumSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
bool IsFullyConnectedSupported(const TensorInfo &input, const TensorInfo &output, const TensorInfo &weights, const TensorInfo &biases, const FullyConnectedDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsMeanSupported(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsBatchToSpaceNdSupported(const TensorInfo &input, const TensorInfo &output, const BatchToSpaceNdDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + +
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()) const override
+
bool IsConvertBf16ToFp32Supported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ + + +
bool IsReduceSupported(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
bool IsDequantizeSupported(const TensorInfo &input, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsChannelShuffleSupported(const TensorInfo &input, const TensorInfo &output, const ChannelShuffleDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+ +
bool IsPermuteSupported(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
+
+
+
+ +

◆ IsLogicalBinarySupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsLogicalBinarySupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
const LogicalBinaryDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported 
) const
+
+override
+
+ +

Definition at line 1014 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, armnn::LogicalAnd, armnn::LogicalOr, LogicalBinaryDescriptor::m_Operation, armnn::NeonLogicalAndWorkloadValidate(), and armnn::NeonLogicalOrWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1019 {
1020  switch(descriptor.m_Operation)
1021  {
1025  input0,
1026  input1,
1027  output);
1031  input0,
1032  input1,
1033  output);
1034  default:
1035  return false;
1036  }
1037 }
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonLogicalAndWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output)
+
arm_compute::Status NeonLogicalOrWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output)
+
const TensorInfo & output
+ +
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsLogSoftmaxSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsLogSoftmaxSupported (const TensorInfoinput,
const TensorInfooutput,
const LogSoftmaxDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1039 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonLogSoftmaxWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1043 {
1045 }
arm_compute::Status NeonLogSoftmaxWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const LogSoftmaxDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsLstmSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsLstmSupported (const TensorInfoinput,
const TensorInfooutputStateIn,
const TensorInfocellStateIn,
const TensorInfoscratchBuffer,
const TensorInfooutputStateOut,
const TensorInfocellStateOut,
const TensorInfooutput,
const LstmDescriptordescriptor,
const LstmInputParamsInfoparamsInfo,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1047 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonLstmFloatWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1057 {
1060  input,
1061  outputStateIn,
1062  cellStateIn,
1063  scratchBuffer,
1065  cellStateOut,
1066  output,
1067  descriptor,
1068  paramsInfo);
1069 }
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfo & paramsInfo
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonLstmFloatWorkloadValidate(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)
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & outputStateOut
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & outputStateIn
+
const TensorInfo const TensorInfo & cellStateIn
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const TensorInfo const TensorInfo & scratchBuffer
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & cellStateOut
+
+
+
+ +

◆ IsMaximumSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsMaximumSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1071 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonMaximumWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1075 {
1078  input0,
1079  input1,
1080  output);
1081 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & output
+
arm_compute::Status NeonMaximumWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output)
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsMeanSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsMeanSupported (const TensorInfoinput,
const TensorInfooutput,
const MeanDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1083 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonMeanWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1087 {
1090  input,
1091  output,
1092  descriptor);
1093 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonMeanWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const MeanDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsMinimumSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsMinimumSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1095 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonMinimumWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1099 {
1102  input0,
1103  input1,
1104  output);
1105 }
arm_compute::Status NeonMinimumWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output)
Validate function for validating the inputs and output.
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsMultiplicationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsMultiplicationSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1107 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonMultiplicationWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1111 {
1114  input0,
1115  input1,
1116  output,
1117  nullptr);
1118 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
arm_compute::Status NeonMultiplicationWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ActivationDescriptor *activationDescriptor)
+
+
+
+ +

◆ IsNormalizationSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsNormalizationSupported (const TensorInfoinput,
const TensorInfooutput,
const NormalizationDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1133 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonNormalizationWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1137 {
1140  input,
1141  output,
1142  descriptor);
1143 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
arm_compute::Status NeonNormalizationWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const NormalizationDescriptor &descriptor)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsOutputSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool IsOutputSupported (const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1145 of file NeonLayerSupport.cpp.

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1147 {
1148  return IsNeonBackendSupported(reasonIfUnsupported, output);
1149 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & output
+
+
+
+ +

◆ IsPadSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsPadSupported (const TensorInfoinput,
const TensorInfooutput,
const PadDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1151 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonPadWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1155 {
1158  input,
1159  output,
1160  descriptor);
1161 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
arm_compute::Status NeonPadWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const PadDescriptor &descriptor)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsPermuteSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsPermuteSupported (const TensorInfoinput,
const TensorInfooutput,
const PermuteDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1163 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonPermuteWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1167 {
1169 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonPermuteWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const PermuteDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsPooling2dSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsPooling2dSupported (const TensorInfoinput,
const TensorInfooutput,
const Pooling2dDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1171 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonPooling2dWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1175 {
1177 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
arm_compute::Status NeonPooling2dWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const Pooling2dDescriptor &descriptor)
+
+
+
+ +

◆ IsPreluSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsPreluSupported (const TensorInfoinput,
const TensorInfoalpha,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1179 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonPreluWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1183 {
1185 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo & alpha
+
const TensorInfo & output
+
arm_compute::Status NeonPreluWorkloadValidate(const TensorInfo &input, const TensorInfo &alpha, const TensorInfo &output)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsQLstmSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsQLstmSupported (const TensorInfoinput,
const TensorInfopreviousOutputIn,
const TensorInfopreviousCellStateIn,
const TensorInfooutputStateOut,
const TensorInfocellStateOut,
const TensorInfooutput,
const QLstmDescriptordescriptor,
const LstmInputParamsInfoparamsInfo,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1187 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, TensorInfo::GetDataType(), armnn::NeonQLstmWorkloadValidate(), armnn::QAsymmS8, and armnn::QSymmS16.

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1196 {
1197  // Check required here in order to pass IsLayerSupported for datatypes tests
1198  if (input.GetDataType() == armnn::DataType::QAsymmS8 &&
1204  {
1207  input,
1210  cellStateOut,
1212  output,
1213  descriptor,
1214  paramsInfo);
1215  }
1216  else
1217  {
1218  return false;
1219  }
1220 }
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfo & paramsInfo
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonQLstmWorkloadValidate(const TensorInfo &input, const TensorInfo &cellStateIn, const TensorInfo &outputStateIn, const TensorInfo &cellStateOut, const TensorInfo &outputStateOut, const TensorInfo &output, const QLstmDescriptor &descriptor, const LstmInputParamsInfo &paramsInfo)
+ +
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & outputStateOut
+ +
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo const TensorInfo & previousCellStateIn
+
DataType GetDataType() const
Definition: Tensor.hpp:198
+
const TensorInfo & previousOutputIn
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & cellStateOut
+
+
+
+ +

◆ IsQuantizedLstmSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsQuantizedLstmSupported (const TensorInfoinput,
const TensorInfocellStateIn,
const TensorInfooutputStateIn,
const TensorInfocellStateOut,
const TensorInfooutputStateOut,
const QuantizedLstmInputParamsInfoparamsInfo,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1232 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonQuantizedLstmWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1239 {
1242  input,
1243  cellStateIn,
1244  outputStateIn,
1245  cellStateOut,
1247  paramsInfo);
1248 }
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo const LstmDescriptor const LstmInputParamsInfo & paramsInfo
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo & outputStateOut
+
const TensorInfo & outputStateIn
+
arm_compute::Status NeonQuantizedLstmWorkloadValidate(const TensorInfo &input, const TensorInfo &cellStateIn, const TensorInfo &outputStateIn, const TensorInfo &cellStateOut, const TensorInfo &outputStateOut, const QuantizedLstmInputParamsInfo &paramsInfo)
+
const TensorInfo const TensorInfo & cellStateIn
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const TensorInfo const TensorInfo const TensorInfo const TensorInfo & cellStateOut
+
+
+
+ +

◆ IsQuantizeSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool IsQuantizeSupported (const TensorInfoinput,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1222 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonQuantizeWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1225 {
1228  input,
1229  output);
1230 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonQuantizeWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsReduceSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsReduceSupported (const TensorInfoinput,
const TensorInfooutput,
const ReduceDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1250 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonReduceWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1254 {
1257  input,
1258  output,
1259  descriptor);
1260 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonReduceWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const ReduceDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsReshapeSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsReshapeSupported (const TensorInfoinput,
const TensorInfooutput,
const ReshapeDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1262 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, armnn::IgnoreUnused(), and armnn::NeonReshapeWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1266 {
1270  input,
1271  output);
1272 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonReshapeWorkloadValidate(const TensorInfo &input, const TensorInfo &output)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsResizeSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsResizeSupported (const TensorInfoinput,
const TensorInfooutput,
const ResizeDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1274 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonResizeWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1278 {
1281  input,
1282  output,
1283  descriptor);
1284 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
arm_compute::Status NeonResizeWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const ResizeDescriptor &descriptor)
+
+
+
+ +

◆ IsSliceSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSliceSupported (const TensorInfoinput,
const TensorInfooutput,
const SliceDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1286 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonSliceWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1290 {
1293  input,
1294  output,
1295  descriptor);
1296 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonSliceWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const SliceDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsSoftmaxSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSoftmaxSupported (const TensorInfoinput,
const TensorInfooutput,
const SoftmaxDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1298 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonSoftmaxWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1302 {
1304 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
arm_compute::Status NeonSoftmaxWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const SoftmaxDescriptor &descriptor)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsSpaceToBatchNdSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSpaceToBatchNdSupported (const TensorInfoinput,
const TensorInfooutput,
const SpaceToBatchNdDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1306 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonSpaceToBatchNdWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1310 {
1313  input,
1314  output,
1315  descriptor);
1316 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonSpaceToBatchNdWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const SpaceToBatchNdDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsSpaceToDepthSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSpaceToDepthSupported (const TensorInfoinput,
const TensorInfooutput,
const SpaceToDepthDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1318 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonSpaceToDepthWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1322 {
1325  input,
1326  output,
1327  descriptor);
1328 }
arm_compute::Status NeonSpaceToDepthWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const SpaceToDepthDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsSplitterSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSplitterSupported (const TensorInfoinput,
const std::vector< std::reference_wrapper< TensorInfo >> & outputs,
const ViewsDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1330 of file NeonLayerSupport.cpp.

+ +

References armnn::ComputeSplitAxis(), FORWARD_WORKLOAD_VALIDATE_FUNC, ViewsDescriptor::GetNumDimensions(), TensorInfo::GetShape(), armnn::IgnoreUnused(), TensorInfo::IsTypeSpaceMatch(), armnn::NeonSplitterWorkloadValidate(), ILayerSupport::output, ILayerSupport::outputs, and armnn::SetValueChecked().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1334 {
1335 #if defined(ARMCOMPUTENEON_ENABLED)
1336  // Split along the last dimension, cannot use sub-tensors
1337  // as width and height of the sub-tensors do not match
1338  // the width and height of the parent tensor
1339  // in case of input with more than 2D.
1340  std::set<unsigned int> splitAxis = ComputeSplitAxis(descriptor, input.GetShape());
1341  if (descriptor.GetNumDimensions() > 2 && splitAxis.size() == 1 &&
1342  *splitAxis.begin() == descriptor.GetNumDimensions() - 1 )
1343  {
1346  input,
1347  outputs,
1348  *splitAxis.begin());
1349  }
1350 #endif
1352  for (auto output : outputs)
1353  {
1354  if (!input.IsTypeSpaceMatch(output)) // Cannot use sub-tensors if the types are not same space
1355  {
1356  SetValueChecked(reasonIfUnsupported, "Neon Splitter: Types and quantization parameters must match.");
1357  return false;
1358  }
1359  }
1360  return true;
1361 }
arm_compute::Status NeonSplitterWorkloadValidate(const TensorInfo &input, const std::vector< std::reference_wrapper< TensorInfo >> &outputs, unsigned int splitAxis)
+
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
+
const std::vector< std::reference_wrapper< TensorInfo > > & outputs
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
void IgnoreUnused(Ts &&...)
+
const TensorInfo const ActivationDescriptor & descriptor
+
std::set< unsigned int > ComputeSplitAxis(const armnn::SplitterDescriptor &desc, const TensorShape &input)
+
void SetValueChecked(Optional< T &> optionalRef, V &&val)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
unsigned int GetNumDimensions() const
Definition: Tensor.hpp:195
+
+
+
+ +

◆ IsStackSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsStackSupported (const std::vector< const TensorInfo *> & inputs,
const TensorInfooutput,
const StackDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1363 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonStackWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1367 {
1370  inputs,
1371  output,
1372  descriptor);
1373 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
arm_compute::Status NeonStackWorkloadValidate(const std::vector< const TensorInfo *> &inputs, const TensorInfo &output, const StackDescriptor &descriptor)
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsStridedSliceSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsStridedSliceSupported (const TensorInfoinput,
const TensorInfooutput,
const StridedSliceDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1375 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonStridedSliceWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1379 {
1382  input,
1383  output,
1384  descriptor);
1385 }
arm_compute::Status NeonStridedSliceWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const StridedSliceDescriptor &descriptor)
+
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsSubtractionSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsSubtractionSupported (const TensorInfoinput0,
const TensorInfoinput1,
const TensorInfooutput,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1387 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonSubtractionWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1391 {
1394  input0,
1395  input1,
1396  output,
1397  nullptr);
1398 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonSubtractionWorkloadValidate(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, const ActivationDescriptor *activationDescriptor)
+
const TensorInfo & output
+
const TensorInfo & input1
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+ +

◆ IsTransposeConvolution2dSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsTransposeConvolution2dSupported (const TensorInfoinput,
const TensorInfooutput,
const TransposeConvolution2dDescriptordescriptor,
const TensorInfoweights,
const Optional< TensorInfo > & biases,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1400 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonTransposeConvolution2dWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1406 {
1409  input,
1410  output,
1411  descriptor,
1412  weights,
1413  biases);
1414 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
arm_compute::Status NeonTransposeConvolution2dWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const TransposeConvolution2dDescriptor &descriptor, const TensorInfo &weights, const Optional< TensorInfo > &biases)
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
const TensorInfo const Convolution2dDescriptor const TensorInfo const Optional< TensorInfo > & biases
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
const TensorInfo const Convolution2dDescriptor const TensorInfo & weights
+
+
+
+ +

◆ IsTransposeSupported()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool IsTransposeSupported (const TensorInfoinput,
const TensorInfooutput,
const TransposeDescriptordescriptor,
Optional< std::string &> reasonIfUnsupported = EmptyOptional() 
) const
+
+override
+
+ +

Definition at line 1416 of file NeonLayerSupport.cpp.

+ +

References FORWARD_WORKLOAD_VALIDATE_FUNC, and armnn::NeonTransposeWorkloadValidate().

+ +

Referenced by NeonLayerSupport::IsLayerSupported(), and NeonLayerSupport::~NeonLayerSupport().

+
1420 {
1422 }
const TensorInfo const ActivationDescriptor Optional< std::string & > reasonIfUnsupported
+
const TensorInfo const ActivationDescriptor & descriptor
+
const TensorInfo & output
+
arm_compute::Status NeonTransposeWorkloadValidate(const TensorInfo &input, const TensorInfo &output, const TransposeDescriptor &descriptor)
+
#define FORWARD_WORKLOAD_VALIDATE_FUNC(func, reasonIfUnsupported,...)
+
+
+
+
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1