From 7894ef93ad568250afda12e1b67bc5bfa4c0b41c Mon Sep 17 00:00:00 2001 From: Cian McGriskin Date: Tue, 1 Aug 2023 14:04:09 +0100 Subject: IVGCVSW-7635 Remove deprecated code due to be removed in 23.08 (WorkloadFactory) * WorkloadFactory.hpp CreateXXXWorkload replaced with CreateWorkload accepting LayerType for ABI stability. * These effect ref neon cl and mock backends * Also removed small deprecation comment in Optimization Views * Fixed ABI Version Issue Signed-off-by: Cian McGriskin Signed-off-by: Francis Murtagh Change-Id: Id37af2f882fc9d12b8c779de6b714013af866028 --- include/armnn/Version.hpp | 2 +- include/armnn/backends/ITensorHandleFactory.hpp | 2 +- include/armnn/backends/OptimizationViews.hpp | 3 +- include/armnn/backends/WorkloadFactory.hpp | 346 +--------- include/armnnTestUtils/MockBackend.hpp | 27 +- src/armnn/test/CloneTests.cpp | 2 +- src/backends/backendsCommon/WorkloadFactory.cpp | 762 +-------------------- .../backendsCommon/WorkloadFactoryBase.hpp | 241 +------ src/backends/cl/ClWorkloadFactory.cpp | 525 +------------- src/backends/cl/ClWorkloadFactory.hpp | 308 +-------- src/backends/neon/NeonWorkloadFactory.cpp | 487 +------------ src/backends/neon/NeonWorkloadFactory.hpp | 308 +-------- src/backends/reference/RefWorkloadFactory.cpp | 597 +--------------- src/backends/reference/RefWorkloadFactory.hpp | 326 +-------- 14 files changed, 83 insertions(+), 3853 deletions(-) diff --git a/include/armnn/Version.hpp b/include/armnn/Version.hpp index 3c4abdef54..2a62c1db83 100644 --- a/include/armnn/Version.hpp +++ b/include/armnn/Version.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // diff --git a/include/armnn/backends/ITensorHandleFactory.hpp b/include/armnn/backends/ITensorHandleFactory.hpp index b10ff66783..7d582d2578 100644 --- a/include/armnn/backends/ITensorHandleFactory.hpp +++ b/include/armnn/backends/ITensorHandleFactory.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017, 2019-2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // diff --git a/include/armnn/backends/OptimizationViews.hpp b/include/armnn/backends/OptimizationViews.hpp index ec1dc55156..8bb47dcc1e 100644 --- a/include/armnn/backends/OptimizationViews.hpp +++ b/include/armnn/backends/OptimizationViews.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017, 2019, 2021-2022 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017, 2019, 2021-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -77,7 +77,6 @@ private: /// INetworkPtr object used only as a container for any layer generated by the optimization process /// Also, can use to AddPrecompiledLayer to the SubstitutionPair - /// Use in favour of m_Graph which depreciates in 23.08 INetworkPtr m_INetwork = INetwork::Create(); }; diff --git a/include/armnn/backends/WorkloadFactory.hpp b/include/armnn/backends/WorkloadFactory.hpp index e69743dced..d5ebf28ed3 100644 --- a/include/armnn/backends/WorkloadFactory.hpp +++ b/include/armnn/backends/WorkloadFactory.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2021-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -64,354 +64,10 @@ public: virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, DataLayout dataLayout, const bool IsMemoryManaged = true) const = 0; - virtual std::unique_ptr CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const; - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDetectionPostProcess( - const DetectionPostProcessQueueDescriptor& descriptor, const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateFakeQuantization(const FakeQuantizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateLogicalUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMerge(const MergeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePooling3d(const Pooling3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateShape(const ShapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateSwitch(const SwitchQueueDescriptor& descriptor, - const WorkloadInfo& Info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - virtual std::unique_ptr CreateUnidirectionalSequenceLstm( - const UnidirectionalSequenceLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const; - private: static bool IsLayerConfigurationSupported(const BackendId& backendId, const IConnectableLayer& connectableLayer, diff --git a/include/armnnTestUtils/MockBackend.hpp b/include/armnnTestUtils/MockBackend.hpp index 3c79e16220..9728a85398 100644 --- a/include/armnnTestUtils/MockBackend.hpp +++ b/include/armnnTestUtils/MockBackend.hpp @@ -120,33 +120,8 @@ public: return std::make_unique(tensorInfo, static_cast(MemorySource::Malloc)); }; - ARMNN_DEPRECATED_MSG_REMOVAL_DATE( - "Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", - "23.08") - std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override - { - if (info.m_InputTensorInfos.empty()) - { - throw InvalidArgumentException("MockWorkloadFactory::CreateInput: Input cannot be zero length"); - } - if (info.m_OutputTensorInfos.empty()) - { - throw InvalidArgumentException("MockWorkloadFactory::CreateInput: Output cannot be zero length"); - } - - if (info.m_InputTensorInfos[0].GetNumBytes() != info.m_OutputTensorInfos[0].GetNumBytes()) - { - throw InvalidArgumentException( - "MockWorkloadFactory::CreateInput: data input and output differ in byte count."); - } - - return std::make_unique(descriptor, info); - }; - std::unique_ptr - CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const override; + CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const override; private: mutable std::shared_ptr m_MemoryManager; diff --git a/src/armnn/test/CloneTests.cpp b/src/armnn/test/CloneTests.cpp index e93b989aa1..62d81bf6e5 100644 --- a/src/armnn/test/CloneTests.cpp +++ b/src/armnn/test/CloneTests.cpp @@ -44,7 +44,7 @@ public: } std::unique_ptr CreatePreCompiled(const armnn::PreCompiledQueueDescriptor& descriptor, - const armnn::WorkloadInfo&) const override + const armnn::WorkloadInfo&) const { CHECK(descriptor.m_PreCompiledObject == m_Ptr); return nullptr; diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 9ab3ca5b77..7a9e46ce7d 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -1610,769 +1610,21 @@ bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, outReasonIfUnsupported, modelOptions); } -ARMNN_NO_DEPRECATE_WARN_BEGIN + +/// Backends should implement their own CreateWorkload function with a switch statement. +/// The case for the switch should be the LayerType and based on that they will call their +/// specific workload creation functionality. std::unique_ptr IWorkloadFactory::CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const { + IgnoreUnused(descriptor); + IgnoreUnused(info); switch(type) { - case LayerType::Activation : - { - auto activationQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateActivation(*activationQueueDescriptor, info); - } - case LayerType::Addition : - { - auto additionQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateAddition(*additionQueueDescriptor, info); - } - case LayerType::ArgMinMax : - { - auto argMinMaxQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateArgMinMax(*argMinMaxQueueDescriptor, info); - } - case LayerType::BatchNormalization : - { - auto batchNormQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateBatchNormalization(*batchNormQueueDescriptor, info); - } - case LayerType::BatchToSpaceNd : - { - auto batchToSpaceNdQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateBatchToSpaceNd(*batchToSpaceNdQueueDescriptor, info); - } - case LayerType::Cast : - { - auto castQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateCast(*castQueueDescriptor, info); - } - case LayerType::ChannelShuffle : - { - auto channelShuffleQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateChannelShuffle(*channelShuffleQueueDescriptor, info); - } - case LayerType::Comparison : - { - auto comparisonQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateComparison(*comparisonQueueDescriptor, info); - } - case LayerType::Concat : - { - auto concatQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateConcat(*concatQueueDescriptor, info); - } - case LayerType::Constant : - { - auto constantQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateConstant(*constantQueueDescriptor, info); - } - case LayerType::ConvertFp16ToFp32: - { - auto convertFp16ToFp32QueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateConvertFp16ToFp32(*convertFp16ToFp32QueueDescriptor, info); - } - case LayerType::ConvertFp32ToFp16: - { - auto convertFp32ToFp16QueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateConvertFp32ToFp16(*convertFp32ToFp16QueueDescriptor, info); - } - case LayerType::Convolution2d: - { - auto convolution2dQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateConvolution2d(*convolution2dQueueDescriptor, info); - } - case LayerType::Convolution3d: - { - auto convolution3dQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateConvolution3d(*convolution3dQueueDescriptor, info); - } - case LayerType::Debug: - { - auto debugQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateDebug(*debugQueueDescriptor, info); - } - case LayerType::DepthToSpace: - { - auto depthToSpaceQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateDepthToSpace(*depthToSpaceQueueDescriptor, info); - } - case LayerType::DepthwiseConvolution2d: - { - auto depthwiseConvolution2DQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateDepthwiseConvolution2d(*depthwiseConvolution2DQueueDescriptor, info); - } - case LayerType::Dequantize: - { - auto dequantizeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateDequantize(*dequantizeQueueDescriptor, info); - } - case LayerType::DetectionPostProcess: - { - auto detectionPostProcessQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateDetectionPostProcess(*detectionPostProcessQueueDescriptor, info); - } - case LayerType::Division: - { - auto divisionQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateDivision(*divisionQueueDescriptor, info); - } - case LayerType::ElementwiseBinary: - { - auto queueDescriptor = PolymorphicDowncast(&descriptor); - return CreateWorkload(LayerType::ElementwiseBinary, *queueDescriptor, info); - } - case LayerType::ElementwiseUnary: - { - auto elementwiseUnaryQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateElementwiseUnary(*elementwiseUnaryQueueDescriptor, info); - - } - case LayerType::FakeQuantization: - { - auto fakeQuantizationQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateFakeQuantization(*fakeQuantizationQueueDescriptor, info); - } - case LayerType::Fill: - { - auto fillQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateFill(*fillQueueDescriptor, info); - } - case LayerType::Floor: - { - auto floorQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateFloor(*floorQueueDescriptor, info); - } - case LayerType::FullyConnected: - { - auto fullyConnectedQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateFullyConnected(*fullyConnectedQueueDescriptor, info); - } - case LayerType::Gather: - { - auto gatherQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateGather(*gatherQueueDescriptor, info); - } - case LayerType::Input: - { - auto inputQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateInput(*inputQueueDescriptor, info); - } - case LayerType::InstanceNormalization: - { - auto instanceNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateInstanceNormalization(*instanceNormalizationQueueDescriptor, info); - } - case LayerType::L2Normalization: - { - auto l2NormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateL2Normalization(*l2NormalizationQueueDescriptor, info); - } - case LayerType::LogicalBinary: - { - auto logicalBinaryQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateLogicalBinary(*logicalBinaryQueueDescriptor, info); - } - case LayerType::LogSoftmax: - { - auto logSoftmaxQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateLogSoftmax(*logSoftmaxQueueDescriptor, info); - } - case LayerType::Lstm: - { - auto lstmQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateLstm(*lstmQueueDescriptor, info); - } - case LayerType::Maximum: - { - auto maximumQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateMaximum(*maximumQueueDescriptor, info); - } - case LayerType::Mean: - { - auto meanQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateMean(*meanQueueDescriptor, info); - } - case LayerType::MemCopy: - { - auto memCopyQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateMemCopy(*memCopyQueueDescriptor, info); - } - case LayerType::MemImport: - { - auto memImportQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateMemImport(*memImportQueueDescriptor, info); - } - case LayerType::Minimum: - { - auto minimumQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateMinimum(*minimumQueueDescriptor, info); - } - case LayerType::Multiplication: - { - auto multiplicationQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateMultiplication(*multiplicationQueueDescriptor, info); - } - case LayerType::Normalization: - { - auto normalizationQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateNormalization(*normalizationQueueDescriptor, info); - } - case LayerType::Output: - { - auto outputQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateOutput(*outputQueueDescriptor, info); - } - case LayerType::Pad: - { - auto padQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePad(*padQueueDescriptor, info); - } - case LayerType::Permute: - { - auto permuteQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePermute(*permuteQueueDescriptor, info); - } - case LayerType::Pooling2d: - { - auto pooling2dQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePooling2d(*pooling2dQueueDescriptor, info); - } - case LayerType::Pooling3d: - { - auto pooling3dQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePooling3d(*pooling3dQueueDescriptor, info); - } - case LayerType::PreCompiled: - { - auto preCompiledQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePreCompiled(*preCompiledQueueDescriptor, info); - } - case LayerType::Prelu: - { - auto preluQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreatePrelu(*preluQueueDescriptor, info); - } - case LayerType::QLstm: - { - auto qlstmQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateQLstm(*qlstmQueueDescriptor, info); - } - case LayerType::Quantize: - { - auto quantizeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateQuantize(*quantizeQueueDescriptor, info); - } - case LayerType::Rank: - { - auto rankQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateRank(*rankQueueDescriptor, info); - } - case LayerType::Reduce: - { - auto reduceQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateReduce(*reduceQueueDescriptor, info); - } - case LayerType::Reshape: - { - auto reshapeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateReshape(*reshapeQueueDescriptor, info); - } - case LayerType::Resize: - { - auto resizeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateResize(*resizeQueueDescriptor, info); - } - case LayerType::Shape: - { - auto shapeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateShape(*shapeQueueDescriptor, info); - } - case LayerType::Slice: - { - auto sliceQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateSlice(*sliceQueueDescriptor, info); - } - case LayerType::Softmax: - { - auto softmaxQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateSoftmax(*softmaxQueueDescriptor, info); - } - case LayerType::SpaceToBatchNd: - { - auto spaceToBatchNdQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateSpaceToBatchNd(*spaceToBatchNdQueueDescriptor, info); - } - case LayerType::SpaceToDepth: - { - auto spaceToDepthQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateSpaceToDepth(*spaceToDepthQueueDescriptor, info); - } - case LayerType::Splitter: - { - auto splitterQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateSplitter(*splitterQueueDescriptor, info); - } - case LayerType::Stack: - { - auto stackQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateStack(*stackQueueDescriptor, info); - } - case LayerType::StridedSlice: - { - auto stridedSliceQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateStridedSlice(*stridedSliceQueueDescriptor, info); - } - case LayerType::Subtraction: - { - auto subtractionQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateSubtraction(*subtractionQueueDescriptor, info); - } - case LayerType::Transpose: - { - auto transposeQueueDescriptor = PolymorphicDowncast(&descriptor); - return CreateTranspose(*transposeQueueDescriptor, info); - } - case LayerType::TransposeConvolution2d: - { - auto transposeConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateTransposeConvolution2d(*transposeConvolution2dQueueDescriptor, info); - } - case LayerType::UnidirectionalSequenceLstm: - { - auto unidirectionalSequenceLstmQueueDescriptor - = PolymorphicDowncast(&descriptor); - return CreateUnidirectionalSequenceLstm(*unidirectionalSequenceLstmQueueDescriptor, info); - } default: - return nullptr; + return std::unique_ptr(); } } -ARMNN_NO_DEPRECATE_WARN_END - -std::unique_ptr IWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateBatchNormalization( - const BatchNormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& /*desc*/, - const WorkloadInfo& /*Info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateCast(const CastQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDebug(const DebugQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDequantize( - const DequantizeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDetectionPostProcess( - const DetectionPostProcessQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateFill(const FillQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateFloor(const FloorQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateFullyConnected(const FullyConnectedQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateGather(const GatherQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateLogicalUnary(const ElementwiseUnaryQueueDescriptor& /*desc*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateLstm(const LstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMean(const MeanQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*Info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMerge(const MergeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateOutput(const OutputQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePad(const PadQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*Info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePooling3d(const Pooling3dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreatePrelu(const PreluQueueDescriptor &/*descriptor*/, - const WorkloadInfo &/*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*Info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} -std::unique_ptr IWorkloadFactory::CreateRank(const RankQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateResize(const ResizeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateShape(const ShapeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSlice(const SliceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateStack(const StackQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateSwitch(const SwitchQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateUnidirectionalSequenceLstm( - const UnidirectionalSequenceLstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} - -std::unique_ptr IWorkloadFactory::CreateInput( - const InputQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return std::unique_ptr(); -} } // namepsace armnn diff --git a/src/backends/backendsCommon/WorkloadFactoryBase.hpp b/src/backends/backendsCommon/WorkloadFactoryBase.hpp index 00e549c933..6c839323e6 100644 --- a/src/backends/backendsCommon/WorkloadFactoryBase.hpp +++ b/src/backends/backendsCommon/WorkloadFactoryBase.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2019 Arm Ltd. All rights reserved. +// Copyright © 2019, 2023 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // @@ -21,9 +21,6 @@ public: unsigned int const */*subTensorOrigin*/) const override { return nullptr; }; - std::unique_ptr CreateInput(const InputQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } std::unique_ptr CreateTensorHandle(const TensorInfo& /*tensorInfo*/, const bool /*IsMemoryManaged*/) const override @@ -39,242 +36,6 @@ public: const WorkloadInfo& /*info*/) const override { return nullptr; } - std::unique_ptr CreateActivation(const ActivationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateAddition(const AdditionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateConcat(const ConcatQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateConstant(const ConstantQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDebug(const DebugQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateDivision(const DivisionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override - { - if (descriptor.m_Parameters.m_Operation == UnaryOperation::LogicalNot) - { - return CreateWorkload(armnn::LayerType::ElementwiseUnary, descriptor, info); - } - else - { - { return nullptr; } - } - } - - std::unique_ptr CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateFloor(const FloorQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateGather(const GatherQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateLstm(const LstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMean(const MeanQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMerge(const MergeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateOutput(const OutputQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePad(const PadQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePermute(const PermuteQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePooling3d(const Pooling3dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreatePrelu(const PreluQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateRank(const RankQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateResize(const ResizeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSlice(const SliceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateStack(const StackQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateSwitch(const SwitchQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } - - std::unique_ptr CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const override - { return nullptr; } }; } //namespace armnn \ No newline at end of file diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index 493080f7af..7b4e9be908 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -273,14 +273,14 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::BatchNormalization : { auto batchNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload - (*batchNormalizationQueueDescriptor, info, m_CLCompileContext); + (*batchNormalizationQueueDescriptor, info, m_CLCompileContext); } case LayerType::BatchToSpaceNd : { auto batchToSpaceNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*batchToSpaceNdQueueDescriptor, info, m_CLCompileContext); } case LayerType::Cast : @@ -291,7 +291,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ChannelShuffle : { auto channelShuffleQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*channelShuffleQueueDescriptor, info, m_CLCompileContext); } case LayerType::Comparison : @@ -312,7 +312,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ConvertFp16ToFp32 : { auto convertFp16ToFp32QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*convertFp16ToFp32QueueDescriptor, info, m_CLCompileContext); @@ -320,7 +320,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ConvertFp32ToFp16 : { auto convertFp32ToFp16QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*convertFp32ToFp16QueueDescriptor, info, m_CLCompileContext); @@ -328,7 +328,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::Convolution2d : { auto convolution2dQueueDescriptor = PolymorphicDowncast(&descriptor); - bool isFastMathEnabled = false; if (m_ModelContextPtr) { @@ -350,7 +349,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::Convolution3d : { auto convolution3dQueueDescriptor = PolymorphicDowncast(&descriptor); - bool isFastMathEnabled = false; if (m_ModelContextPtr) { @@ -382,7 +380,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DepthwiseConvolution2d : { auto depthwiseConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*depthwiseConvolution2dQueueDescriptor, info, m_CLCompileContext); @@ -395,7 +393,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DetectionPostProcess : { auto detectionPostProcessQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*detectionPostProcessQueueDescriptor, info, m_CLCompileContext); @@ -408,53 +406,52 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ElementwiseBinary : { auto elementwiseBinaryQueueDescriptor - = PolymorphicDowncast(&descriptor); - + = PolymorphicDowncast(&descriptor); switch (elementwiseBinaryQueueDescriptor->m_Parameters.m_Operation) { case BinaryOperation::Add: { AdditionQueueDescriptor additionQueueDescriptor; - additionQueueDescriptor.m_Inputs = descriptor.m_Inputs; + additionQueueDescriptor.m_Inputs = descriptor.m_Inputs; additionQueueDescriptor.m_Outputs = descriptor.m_Outputs; additionQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(additionQueueDescriptor, info, m_CLCompileContext); } case BinaryOperation::Div: { DivisionQueueDescriptor divisionQueueDescriptor; - divisionQueueDescriptor.m_Inputs = descriptor.m_Inputs; + divisionQueueDescriptor.m_Inputs = descriptor.m_Inputs; divisionQueueDescriptor.m_Outputs = descriptor.m_Outputs; divisionQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(divisionQueueDescriptor, info, m_CLCompileContext); } case BinaryOperation::Maximum: { MaximumQueueDescriptor maximumQueueDescriptor; - maximumQueueDescriptor.m_Inputs = descriptor.m_Inputs; + maximumQueueDescriptor.m_Inputs = descriptor.m_Inputs; maximumQueueDescriptor.m_Outputs = descriptor.m_Outputs; maximumQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(maximumQueueDescriptor, info, m_CLCompileContext); } case BinaryOperation::Minimum: { MinimumQueueDescriptor minimumQueueDescriptor; - minimumQueueDescriptor.m_Inputs = descriptor.m_Inputs; + minimumQueueDescriptor.m_Inputs = descriptor.m_Inputs; minimumQueueDescriptor.m_Outputs = descriptor.m_Outputs; minimumQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(minimumQueueDescriptor, info, m_CLCompileContext); } case BinaryOperation::Mul: { MultiplicationQueueDescriptor multiplicationQueueDescriptor; - multiplicationQueueDescriptor.m_Inputs = descriptor.m_Inputs; + multiplicationQueueDescriptor.m_Inputs = descriptor.m_Inputs; multiplicationQueueDescriptor.m_Outputs = descriptor.m_Outputs; multiplicationQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(multiplicationQueueDescriptor, info, m_CLCompileContext); @@ -469,10 +466,10 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case BinaryOperation::Sub: { SubtractionQueueDescriptor subtractionQueueDescriptor; - subtractionQueueDescriptor.m_Inputs = descriptor.m_Inputs; + subtractionQueueDescriptor.m_Inputs = descriptor.m_Inputs; subtractionQueueDescriptor.m_Outputs = descriptor.m_Outputs; subtractionQueueDescriptor.m_AdditionalInfoObject = - elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; + elementwiseBinaryQueueDescriptor->m_AdditionalInfoObject; return std::make_unique(subtractionQueueDescriptor, info, m_CLCompileContext); @@ -484,8 +481,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ElementwiseUnary : { auto elementwiseUnaryQueueDescriptor - = PolymorphicDowncast(&descriptor); - + = PolymorphicDowncast(&descriptor); switch(elementwiseUnaryQueueDescriptor->m_Parameters.m_Operation) { case UnaryOperation::Abs: @@ -493,7 +489,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, AbsQueueDescriptor absQueueDescriptor; absQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs; absQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs; - return std::make_unique(absQueueDescriptor, info, m_CLCompileContext); } case UnaryOperation::Exp: @@ -511,7 +506,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, RsqrtQueueDescriptor rsqrtQueueDescriptor; rsqrtQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs; rsqrtQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs; - return std::make_unique(rsqrtQueueDescriptor, info, m_CLCompileContext); } case UnaryOperation::Sin: @@ -535,7 +529,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::FullyConnected : { auto fullyConnectedQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*fullyConnectedQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager(), @@ -559,7 +553,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::InstanceNormalization : { auto instanceNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*instanceNormalizationQueueDescriptor, info, m_CLCompileContext); @@ -567,7 +561,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::L2Normalization : { auto l2NormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*l2NormalizationQueueDescriptor, info, m_CLCompileContext); @@ -575,7 +569,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::LogicalBinary : { auto logicalBinaryQueueDescriptor = PolymorphicDowncast(&descriptor); - switch(logicalBinaryQueueDescriptor->m_Parameters.m_Operation) { case LogicalBinaryOperation::LogicalAnd: @@ -593,7 +586,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::LogSoftmax : { auto logSoftmaxQueueDescriptor = PolymorphicDowncast(&descriptor); - return MakeWorkload(*logSoftmaxQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager(), @@ -735,7 +727,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::SpaceToBatchNd : { auto spaceToBatchNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*spaceToBatchNdQueueDescriptor, info, m_CLCompileContext); } case LayerType::SpaceToDepth : @@ -771,7 +763,7 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, case LayerType::TransposeConvolution2d : { auto transposeConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkload(*transposeConvolution2dQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager(), @@ -789,469 +781,6 @@ std::unique_ptr ClWorkloadFactory::CreateWorkload(LayerType type, } } -std::unique_ptr ClWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateBatchNormalization( - const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} -std::unique_ptr ClWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateConvertFp16ToFp32( - const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateConvertFp32ToFp16( - const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - bool isFastMathEnabled = false; - if (m_ModelContextPtr) - { - if (m_ModelContextPtr.get() != nullptr) - { - auto modelOptions = dynamic_cast(m_ModelContextPtr.get()); - if (modelOptions) - { - isFastMathEnabled = modelOptions->IsFastMathEnabled(); - } - } - } - return MakeWorkload(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext, - isFastMathEnabled); -} - -std::unique_ptr ClWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - bool isFastMathEnabled = false; - if (m_ModelContextPtr) - { - if (m_ModelContextPtr.get() != nullptr) - { - auto modelOptions = dynamic_cast(m_ModelContextPtr.get()); - if (modelOptions) - { - isFastMathEnabled = modelOptions->IsFastMathEnabled(); - } - } - } - return MakeWorkload(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext, - isFastMathEnabled); -} - -std::unique_ptr ClWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateDetectionPostProcess( - const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - switch(descriptor.m_Parameters.m_Operation) - { - case UnaryOperation::Abs: - { - AbsQueueDescriptor absQueueDescriptor; - absQueueDescriptor.m_Inputs = descriptor.m_Inputs; - absQueueDescriptor.m_Outputs = descriptor.m_Outputs; - - return std::make_unique(absQueueDescriptor, info, m_CLCompileContext); - } - case UnaryOperation::Exp: - return std::make_unique(descriptor, info, m_CLCompileContext); - case UnaryOperation::Log: - return std::make_unique(descriptor, info, m_CLCompileContext); - case UnaryOperation::LogicalNot: - return std::make_unique(descriptor, info, m_CLCompileContext); - case UnaryOperation::Neg: - return std::make_unique(descriptor, info, m_CLCompileContext); - case UnaryOperation::Rsqrt: - { - RsqrtQueueDescriptor rsqrtQueueDescriptor; - rsqrtQueueDescriptor.m_Inputs = descriptor.m_Inputs; - rsqrtQueueDescriptor.m_Outputs = descriptor.m_Outputs; - - return std::make_unique(rsqrtQueueDescriptor, info, m_CLCompileContext); - } - case UnaryOperation::Sin: - return std::make_unique(descriptor, info, m_CLCompileContext); - default: - return nullptr; - } -} - -std::unique_ptr ClWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - switch(descriptor.m_Parameters.m_Operation) - { - case LogicalBinaryOperation::LogicalAnd: - return std::make_unique(descriptor, info, m_CLCompileContext); - case LogicalBinaryOperation::LogicalOr: - return std::make_unique(descriptor, info, m_CLCompileContext); - default: - return nullptr; - } -} - -std::unique_ptr ClWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0]) - { - throw InvalidArgumentException("ClWorkloadFactory: Invalid null input for MemCopy workload"); - } - - return MakeWorkload(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0]) - { - throw InvalidArgumentException("ClWorkloadFactory: Invalid null input for MemImport workload"); - } - - return std::make_unique(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreatePrelu(const PreluQueueDescriptor &descriptor, - const WorkloadInfo &info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr ClWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info, m_CLCompileContext); -} - -std::unique_ptr ClWorkloadFactory::CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - m_CLCompileContext); -} } // namespace armnn diff --git a/src/backends/cl/ClWorkloadFactory.hpp b/src/backends/cl/ClWorkloadFactory.hpp index c4e49eebb4..d8e08d5556 100644 --- a/src/backends/cl/ClWorkloadFactory.hpp +++ b/src/backends/cl/ClWorkloadFactory.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -54,316 +54,10 @@ public: std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, DataLayout dataLayout, const bool IsMemoryManaged = true) const override; - std::unique_ptr CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const override; - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - private: template static std::unique_ptr MakeWorkload(const QueueDescriptorType& descriptor, diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp index 29b3ff3499..e3411de254 100644 --- a/src/backends/neon/NeonWorkloadFactory.cpp +++ b/src/backends/neon/NeonWorkloadFactory.cpp @@ -172,13 +172,13 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::BatchNormalization : { auto batchNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*batchNormalizationQueueDescriptor, info); } case LayerType::BatchToSpaceNd : { auto batchToSpaceNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*batchToSpaceNdQueueDescriptor, info); } case LayerType::Cast : @@ -209,19 +209,18 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ConvertFp16ToFp32 : { auto convertFp16ToFp32QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*convertFp16ToFp32QueueDescriptor, info); } case LayerType::ConvertFp32ToFp16 : { auto convertFp32ToFp16QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*convertFp32ToFp16QueueDescriptor, info); } case LayerType::Convolution2d : { auto convolution2dQueueDescriptor = PolymorphicDowncast(&descriptor); - bool isFastMathEnabled = false; if (m_ModelContextPtr) { @@ -242,7 +241,6 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::Convolution3d : { auto convolution3dQueueDescriptor = PolymorphicDowncast(&descriptor); - bool isFastMathEnabled = false; if (m_ModelContextPtr) { @@ -273,7 +271,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DepthwiseConvolution2d : { auto depthwiseConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*depthwiseConvolution2dQueueDescriptor, info); } case LayerType::Dequantize : @@ -284,7 +282,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DetectionPostProcess : { auto detectionPostProcessQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkloadHelper(*detectionPostProcessQueueDescriptor, info); } case LayerType::Division : @@ -295,8 +293,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ElementwiseBinary : { auto elementwiseBinaryQueueDescriptor - = PolymorphicDowncast(&descriptor); - + = PolymorphicDowncast(&descriptor); switch (elementwiseBinaryQueueDescriptor->m_Parameters.m_Operation) { case BinaryOperation::Add: @@ -353,8 +350,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ElementwiseUnary : { auto elementwiseUnaryQueueDescriptor - = PolymorphicDowncast(&descriptor); - + = PolymorphicDowncast(&descriptor); switch(elementwiseUnaryQueueDescriptor->m_Parameters.m_Operation) { case UnaryOperation::Abs: @@ -362,7 +358,6 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, AbsQueueDescriptor absQueueDescriptor; absQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs; absQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs; - return std::make_unique(absQueueDescriptor, info); } case UnaryOperation::Exp: @@ -378,7 +373,6 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, RsqrtQueueDescriptor rsqrtQueueDescriptor; rsqrtQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs; rsqrtQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs; - return std::make_unique(rsqrtQueueDescriptor, info); } case UnaryOperation::Sin: @@ -424,15 +418,15 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::InstanceNormalization : { auto instanceNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*instanceNormalizationQueueDescriptor, info); } case LayerType::L2Normalization : { auto l2NormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return MakeWorkloadHelper - (*l2NormalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager()); + (*l2NormalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager()); } case LayerType::LogSoftmax : { @@ -444,7 +438,6 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::LogicalBinary : { auto logicalBinaryQueueDescriptor = PolymorphicDowncast(&descriptor); - switch(logicalBinaryQueueDescriptor->m_Parameters.m_Operation) { case LogicalBinaryOperation::LogicalAnd: @@ -502,7 +495,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, { auto normalizationQueueDescriptor = PolymorphicDowncast(&descriptor); return MakeWorkloadHelper - (*normalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager()); + (*normalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager()); } case LayerType::Output : { @@ -589,7 +582,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::SpaceToBatchNd : { auto spaceToBatchNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*spaceToBatchNdQueueDescriptor, info); } case LayerType::SpaceToDepth : @@ -630,7 +623,7 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::TransposeConvolution2d : { auto transposeConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*transposeConvolution2dQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager()); @@ -638,7 +631,6 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, case LayerType::UnidirectionalSequenceLstm : { auto desc = PolymorphicDowncast(&descriptor); - if ((info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Float32) && (info.m_InputTensorInfos[1].GetDataType() == armnn::DataType::Float32) && (info.m_InputTensorInfos[2].GetDataType() == armnn::DataType::Float32) && @@ -658,455 +650,4 @@ std::unique_ptr NeonWorkloadFactory::CreateWorkload(LayerType type, } } -std::unique_ptr NeonWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateBatchNormalization( - const BatchNormalizationQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateConvertFp16ToFp32( - const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateConvertFp32ToFp16( - const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateConvolution2d( - const Convolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - bool isFastMathEnabled = false; - if (m_ModelContextPtr) - { - if (m_ModelContextPtr.get() != nullptr) - { - auto modelOptions = dynamic_cast(m_ModelContextPtr.get()); - if (modelOptions) - { - isFastMathEnabled = modelOptions->IsFastMathEnabled(); - } - } - } - return std::make_unique(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - isFastMathEnabled); -} - -std::unique_ptr NeonWorkloadFactory::CreateConvolution3d( - const Convolution3dQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - bool isFastMathEnabled = false; - if (m_ModelContextPtr) - { - if (m_ModelContextPtr.get() != nullptr) - { - auto modelOptions = dynamic_cast(m_ModelContextPtr.get()); - if (modelOptions) - { - isFastMathEnabled = modelOptions->IsFastMathEnabled(); - } - } - } - return std::make_unique(descriptor, - info, - m_MemoryManager->GetIntraLayerManager(), - isFastMathEnabled); -} - -std::unique_ptr NeonWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateDetectionPostProcess( - const armnn::DetectionPostProcessQueueDescriptor& descriptor, const armnn::WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateDivision( - const DivisionQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateElementwiseUnary( - const ElementwiseUnaryQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - switch(descriptor.m_Parameters.m_Operation) - { - case UnaryOperation::Abs: - { - AbsQueueDescriptor absQueueDescriptor; - absQueueDescriptor.m_Inputs = descriptor.m_Inputs; - absQueueDescriptor.m_Outputs = descriptor.m_Outputs; - - return std::make_unique(absQueueDescriptor, info); - } - case UnaryOperation::Exp: - return std::make_unique(descriptor, info); - case UnaryOperation::LogicalNot: - return std::make_unique(descriptor, info); - case UnaryOperation::Log: - return std::make_unique(descriptor, info); - case UnaryOperation::Neg: - return std::make_unique(descriptor, info); - case UnaryOperation::Rsqrt: - { - RsqrtQueueDescriptor rsqrtQueueDescriptor; - rsqrtQueueDescriptor.m_Inputs = descriptor.m_Inputs; - rsqrtQueueDescriptor.m_Outputs = descriptor.m_Outputs; - - return std::make_unique(rsqrtQueueDescriptor, info); - } - case UnaryOperation::Sin: - return std::make_unique(descriptor, info); - default: - return nullptr; - } -} - -std::unique_ptr NeonWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateFullyConnected( - const FullyConnectedQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_MemoryManager->GetIntraLayerManager()); -} - -std::unique_ptr NeonWorkloadFactory::CreateGather(const armnn::GatherQueueDescriptor& descriptor, - const armnn::WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info, - m_MemoryManager->GetIntraLayerManager()); -} - -std::unique_ptr NeonWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_MemoryManager->GetIntraLayerManager()); -} - -std::unique_ptr NeonWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - switch(descriptor.m_Parameters.m_Operation) - { - case LogicalBinaryOperation::LogicalAnd: - return std::make_unique(descriptor, info); - case LogicalBinaryOperation::LogicalOr: - return std::make_unique(descriptor, info); - default: - return nullptr; - } -} - -std::unique_ptr NeonWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0]) - { - throw InvalidArgumentException("NeonWorkloadFactory: Invalid null input for MemCopy workload"); - } - - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty() || !descriptor.m_Inputs[0]) - { - throw InvalidArgumentException("NeonWorkloadFactory: Invalid null input for MemImport workload"); - } - - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateMultiplication( - const MultiplicationQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateNormalization( - const NormalizationQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info, - m_MemoryManager->GetIntraLayerManager()); -} - -std::unique_ptr NeonWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreatePrelu(const armnn::PreluQueueDescriptor &descriptor, - const armnn::WorkloadInfo &info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info, m_MemoryManager->GetIntraLayerManager()); -} - -std::unique_ptr NeonWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateSubtraction( - const SubtractionQueueDescriptor& descriptor, const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr NeonWorkloadFactory::CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor &descriptor, - const WorkloadInfo &info) const -{ - return std::make_unique(descriptor, info, - m_MemoryManager->GetIntraLayerManager()); -} - } // namespace armnn diff --git a/src/backends/neon/NeonWorkloadFactory.hpp b/src/backends/neon/NeonWorkloadFactory.hpp index e4f545900a..bb7a11c08b 100644 --- a/src/backends/neon/NeonWorkloadFactory.hpp +++ b/src/backends/neon/NeonWorkloadFactory.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -55,312 +55,6 @@ public: std::unique_ptr CreateWorkload(LayerType type, const QueueDescriptor& descriptor, const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - private: void SetNumberOfThreads(); diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index 86a584452d..fa2082d4f2 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -3,15 +3,16 @@ // SPDX-License-Identifier: MIT // #include -#include + #include #include +#include #include + #include "RefWorkloadFactory.hpp" #include "RefBackendId.hpp" -#include "workloads/RefWorkloads.hpp" #include "RefTensorHandle.hpp" - +#include "workloads/RefWorkloads.hpp" namespace armnn { @@ -25,7 +26,7 @@ std::unique_ptr RefWorkloadFactory::MakeWorkload(const QueueDescripto const WorkloadInfo& info) const { return MakeWorkloadHelper - (descriptor, info); + (descriptor, info); } template @@ -44,37 +45,30 @@ bool IsDataType(const WorkloadInfo& info) } return false; } - bool IsSigned32(const WorkloadInfo& info) { return IsDataType(info); } - bool IsBFloat16(const WorkloadInfo& info) { return IsDataType(info); } - bool IsFloat16(const WorkloadInfo& info) { return IsDataType(info); } - bool IsQSymmS16(const WorkloadInfo& info) { return IsDataType(info); } - bool IsQSymmS8(const WorkloadInfo& info) { return IsDataType(info); } - bool IsQAsymmS8(const WorkloadInfo& info) { return IsDataType(info); } - bool IsQAsymmU8(const WorkloadInfo& info) { return IsDataType(info); @@ -155,7 +149,6 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::Addition : { auto additionQueueDescriptor = PolymorphicDowncast(&descriptor); - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) { return std::make_unique>(*additionQueueDescriptor, info); @@ -183,9 +176,9 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::BatchToSpaceNd : { auto batchToSpaceNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*batchToSpaceNdQueueDescriptor, info); - } + } case LayerType::Cast : { auto castQueueDescriptor = PolymorphicDowncast(&descriptor); @@ -194,7 +187,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ChannelShuffle : { auto channelShuffleQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*channelShuffleQueueDescriptor, info); } case LayerType::Comparison : @@ -215,13 +208,13 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ConvertFp16ToFp32: { auto convertFp16ToFp32QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*convertFp16ToFp32QueueDescriptor, info); } case LayerType::ConvertFp32ToFp16: { auto convertFp32ToFp16QueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*convertFp32ToFp16QueueDescriptor, info); } case LayerType::Convolution2d: @@ -265,7 +258,6 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, { return std::make_unique(*debugQueueDescriptor, info); } - return MakeWorkload(*debugQueueDescriptor, info); } case LayerType::DepthToSpace: @@ -276,7 +268,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DepthwiseConvolution2d: { auto depthwiseConvolution2DQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*depthwiseConvolution2DQueueDescriptor, info); } case LayerType::Dequantize: @@ -287,7 +279,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::DetectionPostProcess: { auto detectionPostProcessQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*detectionPostProcessQueueDescriptor, info); } case LayerType::Division: @@ -305,13 +297,13 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::ElementwiseBinary: { auto elementwiseBinaryQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*elementwiseBinaryQueueDescriptor, info); } case LayerType::ElementwiseUnary: { auto elementwiseUnaryQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); if ((*elementwiseUnaryQueueDescriptor).m_Parameters.m_Operation == UnaryOperation::LogicalNot) { return std::make_unique(*elementwiseUnaryQueueDescriptor, info); @@ -321,7 +313,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::FakeQuantization: { auto fakeQuantizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*fakeQuantizationQueueDescriptor, info); } case LayerType::Fill: @@ -344,7 +336,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::FullyConnected: { auto fullyConnectedQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*fullyConnectedQueueDescriptor, info); } case LayerType::Gather: @@ -368,25 +360,23 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, { throw InvalidArgumentException("RefWorkloadFactory::CreateInput: Output cannot be zero length"); } - if (info.m_InputTensorInfos[0].GetNumBytes() != info.m_OutputTensorInfos[0].GetNumBytes()) { throw InvalidArgumentException("RefWorkloadFactory::CreateInput: " "data input and output differ in byte count."); } - return std::make_unique(*inputQueueDescriptor, info); } case LayerType::InstanceNormalization: { auto instanceNormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*instanceNormalizationQueueDescriptor, info); } case LayerType::L2Normalization: { auto l2NormalizationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*l2NormalizationQueueDescriptor, info); } case LayerType::LogicalBinary: @@ -454,7 +444,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::Multiplication: { auto multiplicationQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) { return std::make_unique>(*multiplicationQueueDescriptor, info); @@ -485,7 +475,6 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: data input and output " "differ in byte count."); } - return std::make_unique(*outputQueueDescriptor, info); } case LayerType::Pad: @@ -509,7 +498,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, return std::make_unique(*permuteQueueDescriptor, info); } return MakeWorkloadHelper(*permuteQueueDescriptor, info); + NullWorkload, NullWorkload, NullWorkload>(*permuteQueueDescriptor, info); } case LayerType::Pooling2d: { @@ -583,7 +572,7 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, case LayerType::SpaceToBatchNd: { auto spaceToBatchNdQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*spaceToBatchNdQueueDescriptor, info); } case LayerType::SpaceToDepth: @@ -639,19 +628,19 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, return std::make_unique(*transposeQueueDescriptor, info); } return MakeWorkloadHelper - (*transposeQueueDescriptor, info); + RefTransposeQAsymm8Workload, NullWorkload, NullWorkload, NullWorkload> + (*transposeQueueDescriptor, info); } case LayerType::TransposeConvolution2d: { auto transposeConvolution2dQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*transposeConvolution2dQueueDescriptor, info); } case LayerType::UnidirectionalSequenceLstm: { auto unidirectionalSequenceLstmQueueDescriptor - = PolymorphicDowncast(&descriptor); + = PolymorphicDowncast(&descriptor); return std::make_unique(*unidirectionalSequenceLstmQueueDescriptor, info); } @@ -660,540 +649,4 @@ std::unique_ptr RefWorkloadFactory::CreateWorkload(LayerType type, } } -std::unique_ptr RefWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateBatchNormalization( - const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor &descriptor, - const WorkloadInfo &info) const -{ - return std::make_unique(descriptor,info); -} - -std::unique_ptr RefWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConvertFp16ToFp32( - const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConvertFp32ToFp16( - const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (IsBFloat16(info)) - { - return std::make_unique(descriptor, info); - } - if (IsFloat16(info)) - { - return std::make_unique(descriptor, info); - } - if (IsQSymmS16(info)) - { - return std::make_unique(descriptor, info); - } - if (IsQSymmS8(info)) - { - return std::make_unique(descriptor, info); - } - if (IsQAsymmU8(info)) - { - return std::make_unique(descriptor, info); - } - if (IsQAsymmS8(info)) - { - return std::make_unique(descriptor, info); - } - if (IsSigned32(info)) - { - return std::make_unique(descriptor, info); - } - - return MakeWorkload(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDepthwiseConvolution2d( - const DepthwiseConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDetectionPostProcess( - const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Parameters.m_Operation == UnaryOperation::LogicalNot) - { - return std::make_unique(descriptor, info); - } - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateFakeQuantization(const FakeQuantizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return MakeWorkload(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if(IsQuantizedType(info.m_InputTensorInfos[0].GetDataType())) - { - return nullptr; - } - else - { - return std::make_unique(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateFullyConnected( - const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos.empty() ) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateInput: Input cannot be zero length"); - } - if (info.m_OutputTensorInfos.empty()) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateInput: Output cannot be zero length"); - } - - if (info.m_InputTensorInfos[0].GetNumBytes() != info.m_OutputTensorInfos[0].GetNumBytes()) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateInput: data input and output differ in byte count."); - } - - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateInstanceNormalization( - const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty()) - { - throw InvalidArgumentException("RefWorkloadFactory: CreateMemCopy() expected an input tensor."); - } - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (descriptor.m_Inputs.empty()) - { - throw InvalidArgumentException("RefWorkloadFactory: CreateMemImport() expected an input tensor."); - } - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos.empty() ) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: Input cannot be zero length"); - } - if (info.m_OutputTensorInfos.empty()) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: Output cannot be zero length"); - } - if (info.m_InputTensorInfos[0].GetNumBytes() != info.m_OutputTensorInfos[0].GetNumBytes()) - { - throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: data input and output differ in byte count."); - } - - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (IsQSymmS16(info)) - { - return std::make_unique(descriptor, info); - } - else if (IsBFloat16(info)) - { - return std::make_unique(descriptor, info); - } - else if (IsQAsymmS8(info)) - { - return std::make_unique(descriptor, info); - } - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreatePooling3d(const Pooling3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/, - const WorkloadInfo& /*info*/) const -{ - return nullptr; -} - -std::unique_ptr RefWorkloadFactory::CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateShape(const ShapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32) - { - return std::make_unique>(descriptor, info); - } - else - { - return std::make_unique>(descriptor, info); - } -} - -std::unique_ptr RefWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - if (IsQSymmS16(info)) - { - return std::make_unique(descriptor, info); - } - else if (IsBFloat16(info)) - { - return std::make_unique(descriptor, info); - } - else if (IsQAsymmS8(info)) - { - return std::make_unique(descriptor, info); - } - return MakeWorkloadHelper(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateTransposeConvolution2d( - const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info); -} - -std::unique_ptr RefWorkloadFactory::CreateUnidirectionalSequenceLstm( - const UnidirectionalSequenceLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const -{ - return std::make_unique(descriptor, info);; -} - } // namespace armnn diff --git a/src/backends/reference/RefWorkloadFactory.hpp b/src/backends/reference/RefWorkloadFactory.hpp index 22dc35a8c8..ec7c62ba11 100644 --- a/src/backends/reference/RefWorkloadFactory.hpp +++ b/src/backends/reference/RefWorkloadFactory.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -16,13 +16,10 @@ namespace armnn template constexpr bool IsOperationQueueDescriptor(const QueueDescriptorType&) { return true; } - template <> constexpr bool IsOperationQueueDescriptor(const MemCopyQueueDescriptor&) { return false; } - template <> constexpr bool IsOperationQueueDescriptor(const ConstantQueueDescriptor&) { return false; } - template <> constexpr bool IsOperationQueueDescriptor(const PermuteQueueDescriptor&) { return false; } @@ -70,327 +67,6 @@ public: const QueueDescriptor& descriptor, const WorkloadInfo& info) const override; - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateActivation(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateAddition(const AdditionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchNormalization(const BatchNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateCast(const CastQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateComparison(const ComparisonQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConcat(const ConcatQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConstant(const ConstantQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDebug(const DebugQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDequantize(const DequantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateDivision(const DivisionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFakeQuantization(const FakeQuantizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFill(const FillQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateGather(const GatherQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInput(const InputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateLstm(const LstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMaximum(const MaximumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMean(const MeanQueueDescriptor& descriptor, - const WorkloadInfo& Info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemCopy(const MemCopyQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMemImport(const MemImportQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMinimum(const MinimumQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateMultiplication(const MultiplicationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateNormalization(const NormalizationQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateOutput(const OutputQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePad(const PadQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePermute(const PermuteQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePooling2d(const Pooling2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePooling3d(const Pooling3dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreatePrelu(const PreluQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQLstm(const QLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateQuantize(const QuantizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateRank(const RankQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReduce(const ReduceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateReshape(const ReshapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateResize(const ResizeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateShape(const ShapeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSlice(const SliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSplitter(const SplitterQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStack(const StackQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateSubtraction(const SubtractionQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTranspose(const TransposeQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - - ARMNN_DEPRECATED_MSG_REMOVAL_DATE("Use ABI stable " - "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.", "23.08") - std::unique_ptr CreateUnidirectionalSequenceLstm( - const UnidirectionalSequenceLstmQueueDescriptor& descriptor, - const WorkloadInfo& info) const override; - private: template std::unique_ptr MakeWorkload(const QueueDescriptorType& descriptor, const WorkloadInfo& info) const; -- cgit v1.2.1