From 0c47974f1800e8770904aecaef15d6f105758c4e Mon Sep 17 00:00:00 2001 From: Colm Donelan Date: Fri, 10 Dec 2021 12:43:54 +0000 Subject: IVGCVSW-6626 Promote backend headers in backendCommon to armnn/backends Move the following header files from backendsCommon to armnn/backends. * MemCopyWorkload.hpp * TensorHandle.hpp * Workload.hpp * WorkloadData.hpp * WorkloadFactory.hpp Replace them with forwarding headers and a pragma deprecation message. Resolve the deprecation messages in Arm NN code. Signed-off-by: Colm Donelan Change-Id: I47f116b30f86e478c9057795bc518c391a8ae514 --- src/backends/backendsCommon/WorkloadFactory.hpp | 289 +----------------------- 1 file changed, 4 insertions(+), 285 deletions(-) (limited to 'src/backends/backendsCommon/WorkloadFactory.hpp') diff --git a/src/backends/backendsCommon/WorkloadFactory.hpp b/src/backends/backendsCommon/WorkloadFactory.hpp index d624d1b3df..0300c7f1c8 100644 --- a/src/backends/backendsCommon/WorkloadFactory.hpp +++ b/src/backends/backendsCommon/WorkloadFactory.hpp @@ -1,289 +1,8 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // -#pragma once -#include -#include -#include -#include - -#include - -#include - -namespace armnn -{ - -class Layer; - -// Workload factory interface for compute backends. -class IWorkloadFactory -{ -public: - virtual ~IWorkloadFactory() { } - - virtual void AfterWorkloadsCreated() {}; - - virtual const BackendId& GetBackendId() const = 0; - - static bool IsLayerSupported(const BackendId& backendId, - const IConnectableLayer& layer, - Optional dataType, - std::string& outReasonIfUnsupported); - - static bool IsLayerSupported(const IConnectableLayer& layer, - Optional dataType, - std::string& outReasonIfUnsupported); - - static bool IsLayerSupported(const IConnectableLayer& layer, - Optional dataType, - std::string& outReasonIfUnsupported, - const ModelOptions& modelOptions); - - static bool IsLayerSupported(const BackendId& backendId, - const IConnectableLayer& layer, - Optional dataType, - std::string& outReasonIfUnsupported, - const ModelOptions& modelOptions); - - virtual bool SupportsSubTensors() const = 0; - - ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateSubTensorHandle instead") - virtual std::unique_ptr CreateSubTensorHandle(ITensorHandle& parent, - TensorShape const& subTensorShape, - unsigned int const* subTensorOrigin - ) const = 0; - - virtual std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const = 0; - - ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateTensorHandle instead") - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, - const bool IsMemoryManaged = true) const = 0; - - ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateTensorHandle instead") - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout, - const bool IsMemoryManaged = true) const = 0; - - virtual std::unique_ptr CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvertBf16ToFp32(const ConvertBf16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvertFp32ToBf16(const ConvertFp32ToBf16QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDetectionPostProcess( - const DetectionPostProcessQueueDescriptor& descriptor, const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateFakeQuantization(const FakeQuantizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateLogicalUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMerge(const MergeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreatePooling3d(const Pooling3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateShape(const ShapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateSwitch(const SwitchQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - virtual std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - virtual std::unique_ptr CreateUnidirectionalSequenceLstm( - const UnidirectionalSequenceLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - -private: - static bool IsLayerConfigurationSupported(const BackendId& backendId, - const IConnectableLayer& connectableLayer, - Optional dataType, - std::string& outReasonIfUnsupported, - const ModelOptions& modelOptions = {}); -}; - -} // namespace armnn +#include +#pragma message("src/backends/backendsCommon/WorkloadFactory.hpp has been deprecated, it is due for removal in"\ + " 22.08 release. Please use public interface include/armnn/backends/WorkloadFactory.hpp") -- cgit v1.2.1