diff options
Diffstat (limited to 'include/armnn/ILayerSupport.hpp')
-rw-r--r-- | include/armnn/ILayerSupport.hpp | 90 |
1 files changed, 48 insertions, 42 deletions
diff --git a/include/armnn/ILayerSupport.hpp b/include/armnn/ILayerSupport.hpp index af38b07f39..bba344975a 100644 --- a/include/armnn/ILayerSupport.hpp +++ b/include/armnn/ILayerSupport.hpp @@ -25,12 +25,12 @@ public: virtual bool IsActivationSupported(const TensorInfo& input, const TensorInfo& output, const ActivationDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsAdditionSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsBatchNormalizationSupported(const TensorInfo& input, const TensorInfo& output, @@ -39,75 +39,76 @@ public: const TensorInfo& beta, const TensorInfo& gamma, const BatchNormalizationDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsBatchToSpaceNdSupported(const TensorInfo& input, const TensorInfo& output, const BatchToSpaceNdDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsConstantSupported(const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsConvertFp16ToFp32Supported(const TensorInfo& input, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsConvertFp32ToFp16Supported(const TensorInfo& input, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsConvolution2dSupported(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, const Optional<TensorInfo>& biases, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsDebugSupported(const TensorInfo& input, const TensorInfo& output, const DebugDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; - virtual bool IsDepthwiseConvolutionSupported(const TensorInfo& input, - const TensorInfo& output, - const DepthwiseConvolution2dDescriptor& descriptor, - const TensorInfo& weights, - const Optional<TensorInfo>& biases, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + virtual bool IsDepthwiseConvolutionSupported( + const TensorInfo& input, + const TensorInfo& output, + const DepthwiseConvolution2dDescriptor& descriptor, + const TensorInfo& weights, + const Optional<TensorInfo>& biases, + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsDivisionSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsEqualSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsFakeQuantizationSupported(const TensorInfo& input, const FakeQuantizationDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsFloorSupported(const TensorInfo& input, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsFullyConnectedSupported(const TensorInfo& input, const TensorInfo& output, const TensorInfo& weights, const TensorInfo& biases, const FullyConnectedDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsInputSupported(const TensorInfo& input, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsL2NormalizationSupported(const TensorInfo& input, const TensorInfo& output, const L2NormalizationDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsLstmSupported(const TensorInfo& input, const TensorInfo& outputStateIn, @@ -134,94 +135,99 @@ public: const TensorInfo* projectionBias, const TensorInfo* cellToForgetWeights, const TensorInfo* cellToOutputWeights, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsMaximumSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsMeanSupported(const TensorInfo& input, const TensorInfo& output, const MeanDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; + + virtual bool IsMemCopySupported(const TensorInfo& input, + const TensorInfo& output, + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsMergerSupported(const std::vector<const TensorInfo*> inputs, const TensorInfo& output, const OriginsDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsMinimumSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& ouput, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsMultiplicationSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsNormalizationSupported(const TensorInfo& input, const TensorInfo& output, const NormalizationDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsOutputSupported(const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsPadSupported(const TensorInfo& input, const TensorInfo& output, const PadDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsPermuteSupported(const TensorInfo& input, const TensorInfo& output, const PermuteDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsPooling2dSupported(const TensorInfo& input, const TensorInfo& output, const Pooling2dDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsReshapeSupported(const TensorInfo& input, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + const ReshapeDescriptor& descriptor, + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsSpaceToBatchNdSupported(const TensorInfo& input, const TensorInfo& output, const SpaceToBatchNdDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsResizeBilinearSupported(const TensorInfo& input, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsRsqrtSupported(const TensorInfo& input, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsSoftmaxSupported(const TensorInfo& input, const TensorInfo& output, const SoftmaxDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsSplitterSupported(const TensorInfo& input, const ViewsDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsStridedSliceSupported(const TensorInfo& input, const TensorInfo& output, const StridedSliceDescriptor& descriptor, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsSubtractionSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; virtual bool IsGreaterSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& ouput, - Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const; + Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const = 0; }; // class ILayerSupport using ILayerSupportSharedPtr = std::shared_ptr<ILayerSupport>; |