aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCian McGriskin <cian.mcgriskin@arm.com>2023-08-01 14:04:09 +0100
committerFrancis Murtagh <francis.murtagh@arm.com>2023-08-04 14:58:17 +0100
commit7894ef93ad568250afda12e1b67bc5bfa4c0b41c (patch)
tree980a6d139c13585d18587505f6fba8e7069952ac
parent66277031d8fb9588b5a9f3436b6a5f06173668a8 (diff)
downloadarmnn-7894ef93ad568250afda12e1b67bc5bfa4c0b41c.tar.gz
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 <cian.mcgriskin@arm.com> Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: Id37af2f882fc9d12b8c779de6b714013af866028
-rw-r--r--include/armnn/Version.hpp2
-rw-r--r--include/armnn/backends/ITensorHandleFactory.hpp2
-rw-r--r--include/armnn/backends/OptimizationViews.hpp3
-rw-r--r--include/armnn/backends/WorkloadFactory.hpp346
-rw-r--r--include/armnnTestUtils/MockBackend.hpp27
-rw-r--r--src/armnn/test/CloneTests.cpp2
-rw-r--r--src/backends/backendsCommon/WorkloadFactory.cpp762
-rw-r--r--src/backends/backendsCommon/WorkloadFactoryBase.hpp241
-rw-r--r--src/backends/cl/ClWorkloadFactory.cpp525
-rw-r--r--src/backends/cl/ClWorkloadFactory.hpp308
-rw-r--r--src/backends/neon/NeonWorkloadFactory.cpp487
-rw-r--r--src/backends/neon/NeonWorkloadFactory.hpp308
-rw-r--r--src/backends/reference/RefWorkloadFactory.cpp597
-rw-r--r--src/backends/reference/RefWorkloadFactory.hpp326
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<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
DataLayout dataLayout,
const bool IsMemoryManaged = true) const = 0;
-
virtual std::unique_ptr<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<MockTensorHandle>(tensorInfo, static_cast<unsigned int>(MemorySource::Malloc));
};
- ARMNN_DEPRECATED_MSG_REMOVAL_DATE(
- "Use ABI stable "
- "CreateWorkload(LayerType, const QueueDescriptor&, const WorkloadInfo& info) instead.",
- "23.08")
- std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(descriptor, info);
- };
-
std::unique_ptr<IWorkload>
- 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<MockMemoryManager> 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<armnn::IWorkload> 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<IWorkload> IWorkloadFactory::CreateWorkload(LayerType type,
const QueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
+ IgnoreUnused(descriptor);
+ IgnoreUnused(info);
switch(type)
{
- case LayerType::Activation :
- {
- auto activationQueueDescriptor = PolymorphicDowncast<const ActivationQueueDescriptor*>(&descriptor);
- return CreateActivation(*activationQueueDescriptor, info);
- }
- case LayerType::Addition :
- {
- auto additionQueueDescriptor = PolymorphicDowncast<const AdditionQueueDescriptor*>(&descriptor);
- return CreateAddition(*additionQueueDescriptor, info);
- }
- case LayerType::ArgMinMax :
- {
- auto argMinMaxQueueDescriptor = PolymorphicDowncast<const ArgMinMaxQueueDescriptor*>(&descriptor);
- return CreateArgMinMax(*argMinMaxQueueDescriptor, info);
- }
- case LayerType::BatchNormalization :
- {
- auto batchNormQueueDescriptor = PolymorphicDowncast<const BatchNormalizationQueueDescriptor*>(&descriptor);
- return CreateBatchNormalization(*batchNormQueueDescriptor, info);
- }
- case LayerType::BatchToSpaceNd :
- {
- auto batchToSpaceNdQueueDescriptor
- = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
- return CreateBatchToSpaceNd(*batchToSpaceNdQueueDescriptor, info);
- }
- case LayerType::Cast :
- {
- auto castQueueDescriptor = PolymorphicDowncast<const CastQueueDescriptor*>(&descriptor);
- return CreateCast(*castQueueDescriptor, info);
- }
- case LayerType::ChannelShuffle :
- {
- auto channelShuffleQueueDescriptor
- = PolymorphicDowncast<const ChannelShuffleQueueDescriptor*>(&descriptor);
- return CreateChannelShuffle(*channelShuffleQueueDescriptor, info);
- }
- case LayerType::Comparison :
- {
- auto comparisonQueueDescriptor = PolymorphicDowncast<const ComparisonQueueDescriptor*>(&descriptor);
- return CreateComparison(*comparisonQueueDescriptor, info);
- }
- case LayerType::Concat :
- {
- auto concatQueueDescriptor = PolymorphicDowncast<const ConcatQueueDescriptor*>(&descriptor);
- return CreateConcat(*concatQueueDescriptor, info);
- }
- case LayerType::Constant :
- {
- auto constantQueueDescriptor = PolymorphicDowncast<const ConstantQueueDescriptor*>(&descriptor);
- return CreateConstant(*constantQueueDescriptor, info);
- }
- case LayerType::ConvertFp16ToFp32:
- {
- auto convertFp16ToFp32QueueDescriptor
- = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
- return CreateConvertFp16ToFp32(*convertFp16ToFp32QueueDescriptor, info);
- }
- case LayerType::ConvertFp32ToFp16:
- {
- auto convertFp32ToFp16QueueDescriptor
- = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
- return CreateConvertFp32ToFp16(*convertFp32ToFp16QueueDescriptor, info);
- }
- case LayerType::Convolution2d:
- {
- auto convolution2dQueueDescriptor = PolymorphicDowncast<const Convolution2dQueueDescriptor*>(&descriptor);
- return CreateConvolution2d(*convolution2dQueueDescriptor, info);
- }
- case LayerType::Convolution3d:
- {
- auto convolution3dQueueDescriptor = PolymorphicDowncast<const Convolution3dQueueDescriptor*>(&descriptor);
- return CreateConvolution3d(*convolution3dQueueDescriptor, info);
- }
- case LayerType::Debug:
- {
- auto debugQueueDescriptor = PolymorphicDowncast<const DebugQueueDescriptor*>(&descriptor);
- return CreateDebug(*debugQueueDescriptor, info);
- }
- case LayerType::DepthToSpace:
- {
- auto depthToSpaceQueueDescriptor = PolymorphicDowncast<const DepthToSpaceQueueDescriptor*>(&descriptor);
- return CreateDepthToSpace(*depthToSpaceQueueDescriptor, info);
- }
- case LayerType::DepthwiseConvolution2d:
- {
- auto depthwiseConvolution2DQueueDescriptor
- = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
- return CreateDepthwiseConvolution2d(*depthwiseConvolution2DQueueDescriptor, info);
- }
- case LayerType::Dequantize:
- {
- auto dequantizeQueueDescriptor = PolymorphicDowncast<const DequantizeQueueDescriptor*>(&descriptor);
- return CreateDequantize(*dequantizeQueueDescriptor, info);
- }
- case LayerType::DetectionPostProcess:
- {
- auto detectionPostProcessQueueDescriptor
- = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
- return CreateDetectionPostProcess(*detectionPostProcessQueueDescriptor, info);
- }
- case LayerType::Division:
- {
- auto divisionQueueDescriptor = PolymorphicDowncast<const DivisionQueueDescriptor*>(&descriptor);
- return CreateDivision(*divisionQueueDescriptor, info);
- }
- case LayerType::ElementwiseBinary:
- {
- auto queueDescriptor = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
- return CreateWorkload(LayerType::ElementwiseBinary, *queueDescriptor, info);
- }
- case LayerType::ElementwiseUnary:
- {
- auto elementwiseUnaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
- return CreateElementwiseUnary(*elementwiseUnaryQueueDescriptor, info);
-
- }
- case LayerType::FakeQuantization:
- {
- auto fakeQuantizationQueueDescriptor
- = PolymorphicDowncast<const FakeQuantizationQueueDescriptor*>(&descriptor);
- return CreateFakeQuantization(*fakeQuantizationQueueDescriptor, info);
- }
- case LayerType::Fill:
- {
- auto fillQueueDescriptor = PolymorphicDowncast<const FillQueueDescriptor*>(&descriptor);
- return CreateFill(*fillQueueDescriptor, info);
- }
- case LayerType::Floor:
- {
- auto floorQueueDescriptor = PolymorphicDowncast<const FloorQueueDescriptor*>(&descriptor);
- return CreateFloor(*floorQueueDescriptor, info);
- }
- case LayerType::FullyConnected:
- {
- auto fullyConnectedQueueDescriptor
- = PolymorphicDowncast<const FullyConnectedQueueDescriptor*>(&descriptor);
- return CreateFullyConnected(*fullyConnectedQueueDescriptor, info);
- }
- case LayerType::Gather:
- {
- auto gatherQueueDescriptor = PolymorphicDowncast<const GatherQueueDescriptor*>(&descriptor);
- return CreateGather(*gatherQueueDescriptor, info);
- }
- case LayerType::Input:
- {
- auto inputQueueDescriptor = PolymorphicDowncast<const InputQueueDescriptor*>(&descriptor);
- return CreateInput(*inputQueueDescriptor, info);
- }
- case LayerType::InstanceNormalization:
- {
- auto instanceNormalizationQueueDescriptor
- = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
- return CreateInstanceNormalization(*instanceNormalizationQueueDescriptor, info);
- }
- case LayerType::L2Normalization:
- {
- auto l2NormalizationQueueDescriptor
- = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
- return CreateL2Normalization(*l2NormalizationQueueDescriptor, info);
- }
- case LayerType::LogicalBinary:
- {
- auto logicalBinaryQueueDescriptor = PolymorphicDowncast<const LogicalBinaryQueueDescriptor*>(&descriptor);
- return CreateLogicalBinary(*logicalBinaryQueueDescriptor, info);
- }
- case LayerType::LogSoftmax:
- {
- auto logSoftmaxQueueDescriptor = PolymorphicDowncast<const LogSoftmaxQueueDescriptor*>(&descriptor);
- return CreateLogSoftmax(*logSoftmaxQueueDescriptor, info);
- }
- case LayerType::Lstm:
- {
- auto lstmQueueDescriptor = PolymorphicDowncast<const LstmQueueDescriptor*>(&descriptor);
- return CreateLstm(*lstmQueueDescriptor, info);
- }
- case LayerType::Maximum:
- {
- auto maximumQueueDescriptor = PolymorphicDowncast<const MaximumQueueDescriptor*>(&descriptor);
- return CreateMaximum(*maximumQueueDescriptor, info);
- }
- case LayerType::Mean:
- {
- auto meanQueueDescriptor = PolymorphicDowncast<const MeanQueueDescriptor*>(&descriptor);
- return CreateMean(*meanQueueDescriptor, info);
- }
- case LayerType::MemCopy:
- {
- auto memCopyQueueDescriptor = PolymorphicDowncast<const MemCopyQueueDescriptor*>(&descriptor);
- return CreateMemCopy(*memCopyQueueDescriptor, info);
- }
- case LayerType::MemImport:
- {
- auto memImportQueueDescriptor = PolymorphicDowncast<const MemImportQueueDescriptor*>(&descriptor);
- return CreateMemImport(*memImportQueueDescriptor, info);
- }
- case LayerType::Minimum:
- {
- auto minimumQueueDescriptor = PolymorphicDowncast<const MinimumQueueDescriptor*>(&descriptor);
- return CreateMinimum(*minimumQueueDescriptor, info);
- }
- case LayerType::Multiplication:
- {
- auto multiplicationQueueDescriptor
- = PolymorphicDowncast<const MultiplicationQueueDescriptor*>(&descriptor);
- return CreateMultiplication(*multiplicationQueueDescriptor, info);
- }
- case LayerType::Normalization:
- {
- auto normalizationQueueDescriptor = PolymorphicDowncast<const NormalizationQueueDescriptor*>(&descriptor);
- return CreateNormalization(*normalizationQueueDescriptor, info);
- }
- case LayerType::Output:
- {
- auto outputQueueDescriptor = PolymorphicDowncast<const OutputQueueDescriptor*>(&descriptor);
- return CreateOutput(*outputQueueDescriptor, info);
- }
- case LayerType::Pad:
- {
- auto padQueueDescriptor = PolymorphicDowncast<const PadQueueDescriptor*>(&descriptor);
- return CreatePad(*padQueueDescriptor, info);
- }
- case LayerType::Permute:
- {
- auto permuteQueueDescriptor = PolymorphicDowncast<const PermuteQueueDescriptor*>(&descriptor);
- return CreatePermute(*permuteQueueDescriptor, info);
- }
- case LayerType::Pooling2d:
- {
- auto pooling2dQueueDescriptor = PolymorphicDowncast<const Pooling2dQueueDescriptor*>(&descriptor);
- return CreatePooling2d(*pooling2dQueueDescriptor, info);
- }
- case LayerType::Pooling3d:
- {
- auto pooling3dQueueDescriptor = PolymorphicDowncast<const Pooling3dQueueDescriptor*>(&descriptor);
- return CreatePooling3d(*pooling3dQueueDescriptor, info);
- }
- case LayerType::PreCompiled:
- {
- auto preCompiledQueueDescriptor = PolymorphicDowncast<const PreCompiledQueueDescriptor*>(&descriptor);
- return CreatePreCompiled(*preCompiledQueueDescriptor, info);
- }
- case LayerType::Prelu:
- {
- auto preluQueueDescriptor = PolymorphicDowncast<const PreluQueueDescriptor*>(&descriptor);
- return CreatePrelu(*preluQueueDescriptor, info);
- }
- case LayerType::QLstm:
- {
- auto qlstmQueueDescriptor = PolymorphicDowncast<const QLstmQueueDescriptor*>(&descriptor);
- return CreateQLstm(*qlstmQueueDescriptor, info);
- }
- case LayerType::Quantize:
- {
- auto quantizeQueueDescriptor = PolymorphicDowncast<const QuantizeQueueDescriptor*>(&descriptor);
- return CreateQuantize(*quantizeQueueDescriptor, info);
- }
- case LayerType::Rank:
- {
- auto rankQueueDescriptor = PolymorphicDowncast<const RankQueueDescriptor*>(&descriptor);
- return CreateRank(*rankQueueDescriptor, info);
- }
- case LayerType::Reduce:
- {
- auto reduceQueueDescriptor = PolymorphicDowncast<const ReduceQueueDescriptor*>(&descriptor);
- return CreateReduce(*reduceQueueDescriptor, info);
- }
- case LayerType::Reshape:
- {
- auto reshapeQueueDescriptor = PolymorphicDowncast<const ReshapeQueueDescriptor*>(&descriptor);
- return CreateReshape(*reshapeQueueDescriptor, info);
- }
- case LayerType::Resize:
- {
- auto resizeQueueDescriptor = PolymorphicDowncast<const ResizeQueueDescriptor*>(&descriptor);
- return CreateResize(*resizeQueueDescriptor, info);
- }
- case LayerType::Shape:
- {
- auto shapeQueueDescriptor = PolymorphicDowncast<const ShapeQueueDescriptor*>(&descriptor);
- return CreateShape(*shapeQueueDescriptor, info);
- }
- case LayerType::Slice:
- {
- auto sliceQueueDescriptor = PolymorphicDowncast<const SliceQueueDescriptor*>(&descriptor);
- return CreateSlice(*sliceQueueDescriptor, info);
- }
- case LayerType::Softmax:
- {
- auto softmaxQueueDescriptor = PolymorphicDowncast<const SoftmaxQueueDescriptor*>(&descriptor);
- return CreateSoftmax(*softmaxQueueDescriptor, info);
- }
- case LayerType::SpaceToBatchNd:
- {
- auto spaceToBatchNdQueueDescriptor
- = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
- return CreateSpaceToBatchNd(*spaceToBatchNdQueueDescriptor, info);
- }
- case LayerType::SpaceToDepth:
- {
- auto spaceToDepthQueueDescriptor = PolymorphicDowncast<const SpaceToDepthQueueDescriptor*>(&descriptor);
- return CreateSpaceToDepth(*spaceToDepthQueueDescriptor, info);
- }
- case LayerType::Splitter:
- {
- auto splitterQueueDescriptor = PolymorphicDowncast<const SplitterQueueDescriptor*>(&descriptor);
- return CreateSplitter(*splitterQueueDescriptor, info);
- }
- case LayerType::Stack:
- {
- auto stackQueueDescriptor = PolymorphicDowncast<const StackQueueDescriptor*>(&descriptor);
- return CreateStack(*stackQueueDescriptor, info);
- }
- case LayerType::StridedSlice:
- {
- auto stridedSliceQueueDescriptor = PolymorphicDowncast<const StridedSliceQueueDescriptor*>(&descriptor);
- return CreateStridedSlice(*stridedSliceQueueDescriptor, info);
- }
- case LayerType::Subtraction:
- {
- auto subtractionQueueDescriptor = PolymorphicDowncast<const SubtractionQueueDescriptor*>(&descriptor);
- return CreateSubtraction(*subtractionQueueDescriptor, info);
- }
- case LayerType::Transpose:
- {
- auto transposeQueueDescriptor = PolymorphicDowncast<const TransposeQueueDescriptor*>(&descriptor);
- return CreateTranspose(*transposeQueueDescriptor, info);
- }
- case LayerType::TransposeConvolution2d:
- {
- auto transposeConvolution2dQueueDescriptor
- = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
- return CreateTransposeConvolution2d(*transposeConvolution2dQueueDescriptor, info);
- }
- case LayerType::UnidirectionalSequenceLstm:
- {
- auto unidirectionalSequenceLstmQueueDescriptor
- = PolymorphicDowncast<const UnidirectionalSequenceLstmQueueDescriptor*>(&descriptor);
- return CreateUnidirectionalSequenceLstm(*unidirectionalSequenceLstmQueueDescriptor, info);
- }
default:
- return nullptr;
+ return std::unique_ptr<IWorkload>();
}
}
-ARMNN_NO_DEPRECATE_WARN_END
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateBatchNormalization(
- const BatchNormalizationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*Info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateCast(const CastQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDebug(const DebugQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDepthwiseConvolution2d(
- const DepthwiseConvolution2dQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDequantize(
- const DequantizeQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDetectionPostProcess(
- const DetectionPostProcessQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateFill(const FillQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateFloor(const FloorQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateFullyConnected(const FullyConnectedQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateGather(const GatherQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateInstanceNormalization(
- const InstanceNormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateLogicalUnary(const ElementwiseUnaryQueueDescriptor& /*desc*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateLstm(const LstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMean(const MeanQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*Info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMemCopy(const MemCopyQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMemImport(const MemImportQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMerge(const MergeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateOutput(const OutputQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePad(const PadQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*Info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePooling3d(const Pooling3dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreatePrelu(const PreluQueueDescriptor &/*descriptor*/,
- const WorkloadInfo &/*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*Info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateRank(const RankQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateResize(const ResizeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateShape(const ShapeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSlice(const SliceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateStack(const StackQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateSwitch(const SwitchQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateTransposeConvolution2d(
- const TransposeConvolution2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateUnidirectionalSequenceLstm(
- const UnidirectionalSequenceLstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
-
-std::unique_ptr<IWorkload> IWorkloadFactory::CreateInput(
- const InputQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return std::unique_ptr<IWorkload>();
-}
} // 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<IWorkload> CreateInput(const InputQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& /*tensorInfo*/,
const bool /*IsMemoryManaged*/) const override
@@ -39,242 +36,6 @@ public:
const WorkloadInfo& /*info*/) const override
{ return nullptr; }
- std::unique_ptr<IWorkload> CreateActivation(const ActivationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateAddition(const AdditionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateArgMinMax(const ArgMinMaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateBatchNormalization(const BatchNormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateComparison(const ComparisonQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateConcat(const ConcatQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateConstant(const ConstantQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateConvolution2d(const Convolution2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDebug(const DebugQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDepthToSpace(const DepthToSpaceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDequantize(const DequantizeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDetectionPostProcess(const DetectionPostProcessQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateDivision(const DivisionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> 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<IWorkload> CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateFloor(const FloorQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateFullyConnected(const FullyConnectedQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateGather(const GatherQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateInstanceNormalization(const InstanceNormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateL2Normalization(const L2NormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateLogSoftmax(const LogSoftmaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateLstm(const LstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMaximum(const MaximumQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMean(const MeanQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMemCopy(const MemCopyQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMemImport(const MemImportQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMerge(const MergeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMinimum(const MinimumQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateMultiplication(const MultiplicationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateNormalization(const NormalizationQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateOutput(const OutputQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePad(const PadQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePermute(const PermuteQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePooling2d(const Pooling2dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePooling3d(const Pooling3dQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreatePrelu(const PreluQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateQuantize(const QuantizeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateRank(const RankQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateReshape(const ReshapeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateResize(const ResizeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSlice(const SliceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSoftmax(const SoftmaxQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSplitter(const SplitterQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateStack(const StackQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateStridedSlice(const StridedSliceQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateSwitch(const SwitchQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> CreateTranspose(const TransposeQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const override
- { return nullptr; }
-
- std::unique_ptr<IWorkload> 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<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::BatchNormalization :
{
auto batchNormalizationQueueDescriptor
- = PolymorphicDowncast<const BatchNormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const BatchNormalizationQueueDescriptor*>(&descriptor);
return MakeWorkload<ClBatchNormalizationFloatWorkload, NullWorkload>
- (*batchNormalizationQueueDescriptor, info, m_CLCompileContext);
+ (*batchNormalizationQueueDescriptor, info, m_CLCompileContext);
}
case LayerType::BatchToSpaceNd :
{
auto batchToSpaceNdQueueDescriptor
- = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
return MakeWorkload<ClBatchToSpaceNdWorkload>(*batchToSpaceNdQueueDescriptor, info, m_CLCompileContext);
}
case LayerType::Cast :
@@ -291,7 +291,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ChannelShuffle :
{
auto channelShuffleQueueDescriptor
- = PolymorphicDowncast<const ChannelShuffleQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ChannelShuffleQueueDescriptor*>(&descriptor);
return MakeWorkload<ClChannelShuffleWorkload>(*channelShuffleQueueDescriptor, info, m_CLCompileContext);
}
case LayerType::Comparison :
@@ -312,7 +312,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ConvertFp16ToFp32 :
{
auto convertFp16ToFp32QueueDescriptor
- = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
return MakeWorkload<ClConvertFp16ToFp32Workload>(*convertFp16ToFp32QueueDescriptor,
info,
m_CLCompileContext);
@@ -320,7 +320,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ConvertFp32ToFp16 :
{
auto convertFp32ToFp16QueueDescriptor
- = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
return MakeWorkload<ClConvertFp32ToFp16Workload>(*convertFp32ToFp16QueueDescriptor,
info,
m_CLCompileContext);
@@ -328,7 +328,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::Convolution2d :
{
auto convolution2dQueueDescriptor = PolymorphicDowncast<const Convolution2dQueueDescriptor*>(&descriptor);
-
bool isFastMathEnabled = false;
if (m_ModelContextPtr)
{
@@ -350,7 +349,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::Convolution3d :
{
auto convolution3dQueueDescriptor = PolymorphicDowncast<const Convolution3dQueueDescriptor*>(&descriptor);
-
bool isFastMathEnabled = false;
if (m_ModelContextPtr)
{
@@ -382,7 +380,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DepthwiseConvolution2d :
{
auto depthwiseConvolution2dQueueDescriptor
- = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
return MakeWorkload<ClDepthwiseConvolutionWorkload>(*depthwiseConvolution2dQueueDescriptor,
info,
m_CLCompileContext);
@@ -395,7 +393,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DetectionPostProcess :
{
auto detectionPostProcessQueueDescriptor
- = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
return MakeWorkload<NullWorkload, NullWorkload>(*detectionPostProcessQueueDescriptor,
info,
m_CLCompileContext);
@@ -408,53 +406,52 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ElementwiseBinary :
{
auto elementwiseBinaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
-
+ = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&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<ClAdditionWorkload>(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<ClDivisionWorkload>(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<ClMaximumWorkload>(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<ClMinimumWorkload>(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<ClMultiplicationWorkload>(multiplicationQueueDescriptor,
info,
m_CLCompileContext);
@@ -469,10 +466,10 @@ std::unique_ptr<IWorkload> 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<ClSubtractionWorkload>(subtractionQueueDescriptor,
info,
m_CLCompileContext);
@@ -484,8 +481,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ElementwiseUnary :
{
auto elementwiseUnaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
-
+ = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
switch(elementwiseUnaryQueueDescriptor->m_Parameters.m_Operation)
{
case UnaryOperation::Abs:
@@ -493,7 +489,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
AbsQueueDescriptor absQueueDescriptor;
absQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs;
absQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs;
-
return std::make_unique<ClAbsWorkload>(absQueueDescriptor, info, m_CLCompileContext);
}
case UnaryOperation::Exp:
@@ -511,7 +506,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
RsqrtQueueDescriptor rsqrtQueueDescriptor;
rsqrtQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs;
rsqrtQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs;
-
return std::make_unique<ClRsqrtWorkload>(rsqrtQueueDescriptor, info, m_CLCompileContext);
}
case UnaryOperation::Sin:
@@ -535,7 +529,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::FullyConnected :
{
auto fullyConnectedQueueDescriptor
- = PolymorphicDowncast<const FullyConnectedQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const FullyConnectedQueueDescriptor*>(&descriptor);
return MakeWorkload<ClFullyConnectedWorkload>(*fullyConnectedQueueDescriptor,
info,
m_MemoryManager->GetIntraLayerManager(),
@@ -559,7 +553,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::InstanceNormalization :
{
auto instanceNormalizationQueueDescriptor
- = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
return MakeWorkload<ClInstanceNormalizationWorkload>(*instanceNormalizationQueueDescriptor,
info,
m_CLCompileContext);
@@ -567,7 +561,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::L2Normalization :
{
auto l2NormalizationQueueDescriptor
- = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
return MakeWorkload<ClL2NormalizationFloatWorkload, NullWorkload>(*l2NormalizationQueueDescriptor,
info,
m_CLCompileContext);
@@ -575,7 +569,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::LogicalBinary :
{
auto logicalBinaryQueueDescriptor = PolymorphicDowncast<const LogicalBinaryQueueDescriptor*>(&descriptor);
-
switch(logicalBinaryQueueDescriptor->m_Parameters.m_Operation)
{
case LogicalBinaryOperation::LogicalAnd:
@@ -593,7 +586,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::LogSoftmax :
{
auto logSoftmaxQueueDescriptor = PolymorphicDowncast<const LogSoftmaxQueueDescriptor*>(&descriptor);
-
return MakeWorkload<ClLogSoftmaxWorkload>(*logSoftmaxQueueDescriptor,
info,
m_MemoryManager->GetIntraLayerManager(),
@@ -735,7 +727,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::SpaceToBatchNd :
{
auto spaceToBatchNdQueueDescriptor
- = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
return MakeWorkload<ClSpaceToBatchNdWorkload>(*spaceToBatchNdQueueDescriptor, info, m_CLCompileContext);
}
case LayerType::SpaceToDepth :
@@ -771,7 +763,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::TransposeConvolution2d :
{
auto transposeConvolution2dQueueDescriptor
- = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
return MakeWorkload<ClTransposeConvolution2dWorkload>(*transposeConvolution2dQueueDescriptor,
info,
m_MemoryManager->GetIntraLayerManager(),
@@ -789,469 +781,6 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateWorkload(LayerType type,
}
}
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClActivationWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClAdditionWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClArgMinMaxWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateBatchNormalization(
- const BatchNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClBatchNormalizationFloatWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClBatchToSpaceNdWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClCastWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClChannelShuffleWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClComparisonWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClConcatWorkload>(descriptor, info, m_CLCompileContext);
-}
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClConstantWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConvertFp16ToFp32(
- const ConvertFp16ToFp32QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClConvertFp16ToFp32Workload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConvertFp32ToFp16(
- const ConvertFp32ToFp16QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClConvertFp32ToFp16Workload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- bool isFastMathEnabled = false;
- if (m_ModelContextPtr)
- {
- if (m_ModelContextPtr.get() != nullptr)
- {
- auto modelOptions = dynamic_cast<ClBackendModelContext*>(m_ModelContextPtr.get());
- if (modelOptions)
- {
- isFastMathEnabled = modelOptions->IsFastMathEnabled();
- }
- }
- }
- return MakeWorkload<ClConvolution2dWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- m_CLCompileContext,
- isFastMathEnabled);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- bool isFastMathEnabled = false;
- if (m_ModelContextPtr)
- {
- if (m_ModelContextPtr.get() != nullptr)
- {
- auto modelOptions = dynamic_cast<ClBackendModelContext*>(m_ModelContextPtr.get());
- if (modelOptions)
- {
- isFastMathEnabled = modelOptions->IsFastMathEnabled();
- }
- }
- }
- return MakeWorkload<ClConvolution3dWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- m_CLCompileContext,
- isFastMathEnabled);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClDepthToSpaceWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDepthwiseConvolution2d(
- const DepthwiseConvolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClDepthwiseConvolutionWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClDequantizeWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDetectionPostProcess(
- const DetectionPostProcessQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClDivisionWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> 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<ClAbsWorkload>(absQueueDescriptor, info, m_CLCompileContext);
- }
- case UnaryOperation::Exp:
- return std::make_unique<ClExpWorkload>(descriptor, info, m_CLCompileContext);
- case UnaryOperation::Log:
- return std::make_unique<ClLogWorkload>(descriptor, info, m_CLCompileContext);
- case UnaryOperation::LogicalNot:
- return std::make_unique<ClLogicalNotWorkload>(descriptor, info, m_CLCompileContext);
- case UnaryOperation::Neg:
- return std::make_unique<ClNegWorkload>(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<ClRsqrtWorkload>(rsqrtQueueDescriptor, info, m_CLCompileContext);
- }
- case UnaryOperation::Sin:
- return std::make_unique<ClSinWorkload>(descriptor, info, m_CLCompileContext);
- default:
- return nullptr;
- }
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClFillWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClFloorFloatWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateFullyConnected(const FullyConnectedQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClFullyConnectedWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateGather(const GatherQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClGatherWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateInstanceNormalization(
- const InstanceNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClInstanceNormalizationWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClL2NormalizationFloatWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- switch(descriptor.m_Parameters.m_Operation)
- {
- case LogicalBinaryOperation::LogicalAnd:
- return std::make_unique<ClLogicalAndWorkload>(descriptor, info, m_CLCompileContext);
- case LogicalBinaryOperation::LogicalOr:
- return std::make_unique<ClLogicalOrWorkload>(descriptor, info, m_CLCompileContext);
- default:
- return nullptr;
- }
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClLogSoftmaxWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClLstmFloatWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClMaximumWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClMeanWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<ImportMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClMinimumWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClMultiplicationWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClNormalizationFloatWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClPadWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClPermuteWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClPooling2dWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreatePrelu(const PreluQueueDescriptor &descriptor,
- const WorkloadInfo &info) const
-{
- return MakeWorkload<ClPreluWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClQLstmWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClQuantizeWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClQuantizedLstmWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClRankWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClReduceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClReshapeWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClResizeWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClSliceWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<ClSoftmaxWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClSpaceToBatchNdWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClSpaceToDepthWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClSplitterWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClStackWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClStridedSliceWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClSubtractionWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClTransposeWorkload>(descriptor, info, m_CLCompileContext);
-}
-
-std::unique_ptr<IWorkload> ClWorkloadFactory::CreateTransposeConvolution2d(
- const TransposeConvolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<ClTransposeConvolution2dWorkload>(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<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
DataLayout dataLayout,
const bool IsMemoryManaged = true) const override;
-
std::unique_ptr<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const override;
-
private:
template<typename FloatWorkload, typename Uint8Workload, typename QueueDescriptorType, typename... Args>
static std::unique_ptr<IWorkload> 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<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::BatchNormalization :
{
auto batchNormalizationQueueDescriptor
- = PolymorphicDowncast<const BatchNormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const BatchNormalizationQueueDescriptor*>(&descriptor);
return std::make_unique<NeonBatchNormalizationWorkload>(*batchNormalizationQueueDescriptor, info);
}
case LayerType::BatchToSpaceNd :
{
auto batchToSpaceNdQueueDescriptor
- = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
return std::make_unique<NeonBatchToSpaceNdWorkload>(*batchToSpaceNdQueueDescriptor, info);
}
case LayerType::Cast :
@@ -209,19 +209,18 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ConvertFp16ToFp32 :
{
auto convertFp16ToFp32QueueDescriptor
- = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
return std::make_unique<NeonConvertFp16ToFp32Workload>(*convertFp16ToFp32QueueDescriptor, info);
}
case LayerType::ConvertFp32ToFp16 :
{
auto convertFp32ToFp16QueueDescriptor
- = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
return std::make_unique<NeonConvertFp32ToFp16Workload>(*convertFp32ToFp16QueueDescriptor, info);
}
case LayerType::Convolution2d :
{
auto convolution2dQueueDescriptor = PolymorphicDowncast<const Convolution2dQueueDescriptor*>(&descriptor);
-
bool isFastMathEnabled = false;
if (m_ModelContextPtr)
{
@@ -242,7 +241,6 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::Convolution3d :
{
auto convolution3dQueueDescriptor = PolymorphicDowncast<const Convolution3dQueueDescriptor*>(&descriptor);
-
bool isFastMathEnabled = false;
if (m_ModelContextPtr)
{
@@ -273,7 +271,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DepthwiseConvolution2d :
{
auto depthwiseConvolution2dQueueDescriptor
- = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
return std::make_unique<NeonDepthwiseConvolutionWorkload>(*depthwiseConvolution2dQueueDescriptor, info);
}
case LayerType::Dequantize :
@@ -284,7 +282,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DetectionPostProcess :
{
auto detectionPostProcessQueueDescriptor
- = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
return MakeWorkloadHelper<NullWorkload, NullWorkload>(*detectionPostProcessQueueDescriptor, info);
}
case LayerType::Division :
@@ -295,8 +293,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ElementwiseBinary :
{
auto elementwiseBinaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
-
+ = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
switch (elementwiseBinaryQueueDescriptor->m_Parameters.m_Operation)
{
case BinaryOperation::Add:
@@ -353,8 +350,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ElementwiseUnary :
{
auto elementwiseUnaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
-
+ = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
switch(elementwiseUnaryQueueDescriptor->m_Parameters.m_Operation)
{
case UnaryOperation::Abs:
@@ -362,7 +358,6 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
AbsQueueDescriptor absQueueDescriptor;
absQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs;
absQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs;
-
return std::make_unique<NeonAbsWorkload>(absQueueDescriptor, info);
}
case UnaryOperation::Exp:
@@ -378,7 +373,6 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
RsqrtQueueDescriptor rsqrtQueueDescriptor;
rsqrtQueueDescriptor.m_Inputs = elementwiseUnaryQueueDescriptor->m_Inputs;
rsqrtQueueDescriptor.m_Outputs = elementwiseUnaryQueueDescriptor->m_Outputs;
-
return std::make_unique<NeonRsqrtWorkload>(rsqrtQueueDescriptor, info);
}
case UnaryOperation::Sin:
@@ -424,15 +418,15 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::InstanceNormalization :
{
auto instanceNormalizationQueueDescriptor
- = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
return std::make_unique<NeonInstanceNormalizationWorkload>(*instanceNormalizationQueueDescriptor, info);
}
case LayerType::L2Normalization :
{
auto l2NormalizationQueueDescriptor
- = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
return MakeWorkloadHelper<NeonL2NormalizationFloatWorkload, NullWorkload>
- (*l2NormalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager());
+ (*l2NormalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager());
}
case LayerType::LogSoftmax :
{
@@ -444,7 +438,6 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::LogicalBinary :
{
auto logicalBinaryQueueDescriptor = PolymorphicDowncast<const LogicalBinaryQueueDescriptor*>(&descriptor);
-
switch(logicalBinaryQueueDescriptor->m_Parameters.m_Operation)
{
case LogicalBinaryOperation::LogicalAnd:
@@ -502,7 +495,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
{
auto normalizationQueueDescriptor = PolymorphicDowncast<const NormalizationQueueDescriptor*>(&descriptor);
return MakeWorkloadHelper<NeonNormalizationFloatWorkload, NullWorkload>
- (*normalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager());
+ (*normalizationQueueDescriptor, info, m_MemoryManager->GetIntraLayerManager());
}
case LayerType::Output :
{
@@ -589,7 +582,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::SpaceToBatchNd :
{
auto spaceToBatchNdQueueDescriptor
- = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
return std::make_unique<NeonSpaceToBatchNdWorkload>(*spaceToBatchNdQueueDescriptor, info);
}
case LayerType::SpaceToDepth :
@@ -630,7 +623,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::TransposeConvolution2d :
{
auto transposeConvolution2dQueueDescriptor
- = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
return std::make_unique<NeonTransposeConvolution2dWorkload>(*transposeConvolution2dQueueDescriptor,
info,
m_MemoryManager->GetIntraLayerManager());
@@ -638,7 +631,6 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::UnidirectionalSequenceLstm :
{
auto desc = PolymorphicDowncast<const UnidirectionalSequenceLstmQueueDescriptor*>(&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<IWorkload> NeonWorkloadFactory::CreateWorkload(LayerType type,
}
}
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonActivationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonAdditionWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonArgMinMaxWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateBatchNormalization(
- const BatchNormalizationQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonBatchNormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonBatchToSpaceNdWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonCastWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonChannelShuffleWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonComparisonWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonConcatWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonConstantWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateConvertFp16ToFp32(
- const ConvertFp16ToFp32QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonConvertFp16ToFp32Workload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateConvertFp32ToFp16(
- const ConvertFp32ToFp16QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonConvertFp32ToFp16Workload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateConvolution2d(
- const Convolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- bool isFastMathEnabled = false;
- if (m_ModelContextPtr)
- {
- if (m_ModelContextPtr.get() != nullptr)
- {
- auto modelOptions = dynamic_cast<NeonBackendModelContext*>(m_ModelContextPtr.get());
- if (modelOptions)
- {
- isFastMathEnabled = modelOptions->IsFastMathEnabled();
- }
- }
- }
- return std::make_unique<NeonConvolution2dWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- isFastMathEnabled);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateConvolution3d(
- const Convolution3dQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- bool isFastMathEnabled = false;
- if (m_ModelContextPtr)
- {
- if (m_ModelContextPtr.get() != nullptr)
- {
- auto modelOptions = dynamic_cast<NeonBackendModelContext*>(m_ModelContextPtr.get());
- if (modelOptions)
- {
- isFastMathEnabled = modelOptions->IsFastMathEnabled();
- }
- }
- }
- return std::make_unique<NeonConvolution3dWorkload>(descriptor,
- info,
- m_MemoryManager->GetIntraLayerManager(),
- isFastMathEnabled);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonDepthToSpaceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateDepthwiseConvolution2d(
- const DepthwiseConvolution2dQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonDepthwiseConvolutionWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonDequantizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateDetectionPostProcess(
- const armnn::DetectionPostProcessQueueDescriptor& descriptor, const armnn::WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateDivision(
- const DivisionQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonDivisionWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<NeonAbsWorkload>(absQueueDescriptor, info);
- }
- case UnaryOperation::Exp:
- return std::make_unique<NeonExpWorkload>(descriptor, info);
- case UnaryOperation::LogicalNot:
- return std::make_unique<NeonLogicalNotWorkload>(descriptor, info);
- case UnaryOperation::Log:
- return std::make_unique<NeonLogWorkload>(descriptor, info);
- case UnaryOperation::Neg:
- return std::make_unique<NeonNegWorkload>(descriptor, info);
- case UnaryOperation::Rsqrt:
- {
- RsqrtQueueDescriptor rsqrtQueueDescriptor;
- rsqrtQueueDescriptor.m_Inputs = descriptor.m_Inputs;
- rsqrtQueueDescriptor.m_Outputs = descriptor.m_Outputs;
-
- return std::make_unique<NeonRsqrtWorkload>(rsqrtQueueDescriptor, info);
- }
- case UnaryOperation::Sin:
- return std::make_unique<NeonSinWorkload>(descriptor, info);
- default:
- return nullptr;
- }
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonFillWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NeonFloorFloatWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateFullyConnected(
- const FullyConnectedQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonFullyConnectedWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateGather(const armnn::GatherQueueDescriptor& descriptor,
- const armnn::WorkloadInfo& info) const
-{
- return std::make_unique<NeonGatherWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateInstanceNormalization(
- const InstanceNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonInstanceNormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NeonL2NormalizationFloatWorkload, NullWorkload>(descriptor, info,
- m_MemoryManager->GetIntraLayerManager());
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonLogSoftmaxWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- switch(descriptor.m_Parameters.m_Operation)
- {
- case LogicalBinaryOperation::LogicalAnd:
- return std::make_unique<NeonLogicalAndWorkload>(descriptor, info);
- case LogicalBinaryOperation::LogicalOr:
- return std::make_unique<NeonLogicalOrWorkload>(descriptor, info);
- default:
- return nullptr;
- }
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NeonLstmFloatWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonMaximumWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonMeanWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> 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<CopyMemGenericWorkload, CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> 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<ImportMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonMinimumWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateMultiplication(
- const MultiplicationQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonMultiplicationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateNormalization(
- const NormalizationQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NeonNormalizationFloatWorkload, NullWorkload>(descriptor, info,
- m_MemoryManager->GetIntraLayerManager());
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonPadWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonPermuteWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonPooling2dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreatePrelu(const armnn::PreluQueueDescriptor &descriptor,
- const armnn::WorkloadInfo &info) const
-{
- return std::make_unique<NeonPreluWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonQLstmWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonQuantizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateQuantizedLstm(const QuantizedLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonQuantizedLstmWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonRankWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonReduceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonReshapeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonResizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSliceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSoftmaxWorkload>(descriptor, info, m_MemoryManager->GetIntraLayerManager());
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSpaceToBatchNdWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSpaceToDepthWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSplitterWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonStackWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonStridedSliceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateSubtraction(
- const SubtractionQueueDescriptor& descriptor, const WorkloadInfo& info) const
-{
- return std::make_unique<NeonSubtractionWorkload>(descriptor, info);
-}
-
-std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<NeonTransposeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateTransposeConvolution2d(
- const TransposeConvolution2dQueueDescriptor &descriptor,
- const WorkloadInfo &info) const
-{
- return std::make_unique<NeonTransposeConvolution2dWorkload>(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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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 <Layer.hpp>
-#include <armnn/backends/MemCopyWorkload.hpp>
+
#include <backendsCommon/MemImportWorkload.hpp>
#include <backendsCommon/MakeWorkloadHelper.hpp>
+#include <armnn/backends/MemCopyWorkload.hpp>
#include <armnn/backends/TensorHandle.hpp>
+
#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<IWorkload> RefWorkloadFactory::MakeWorkload(const QueueDescripto
const WorkloadInfo& info) const
{
return MakeWorkloadHelper<NullWorkload, F32Workload, U8Workload, NullWorkload, NullWorkload, NullWorkload>
- (descriptor, info);
+ (descriptor, info);
}
template <DataType ArmnnType>
@@ -44,37 +45,30 @@ bool IsDataType(const WorkloadInfo& info)
}
return false;
}
-
bool IsSigned32(const WorkloadInfo& info)
{
return IsDataType<DataType::Signed32>(info);
}
-
bool IsBFloat16(const WorkloadInfo& info)
{
return IsDataType<DataType::BFloat16>(info);
}
-
bool IsFloat16(const WorkloadInfo& info)
{
return IsDataType<DataType::Float16>(info);
}
-
bool IsQSymmS16(const WorkloadInfo& info)
{
return IsDataType<DataType::QSymmS16>(info);
}
-
bool IsQSymmS8(const WorkloadInfo& info)
{
return IsDataType<DataType::QSymmS8>(info);
}
-
bool IsQAsymmS8(const WorkloadInfo& info)
{
return IsDataType<DataType::QAsymmS8>(info);
}
-
bool IsQAsymmU8(const WorkloadInfo& info)
{
return IsDataType<DataType::QAsymmU8>(info);
@@ -155,7 +149,6 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::Addition :
{
auto additionQueueDescriptor = PolymorphicDowncast<const AdditionQueueDescriptor*>(&descriptor);
-
if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
{
return std::make_unique<RefAdditionWorkload<int32_t>>(*additionQueueDescriptor, info);
@@ -183,9 +176,9 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::BatchToSpaceNd :
{
auto batchToSpaceNdQueueDescriptor
- = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const BatchToSpaceNdQueueDescriptor*>(&descriptor);
return std::make_unique<RefBatchToSpaceNdWorkload>(*batchToSpaceNdQueueDescriptor, info);
- }
+ }
case LayerType::Cast :
{
auto castQueueDescriptor = PolymorphicDowncast<const CastQueueDescriptor*>(&descriptor);
@@ -194,7 +187,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ChannelShuffle :
{
auto channelShuffleQueueDescriptor
- = PolymorphicDowncast<const ChannelShuffleQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ChannelShuffleQueueDescriptor*>(&descriptor);
return std::make_unique<RefChannelShuffleWorkload>(*channelShuffleQueueDescriptor, info);
}
case LayerType::Comparison :
@@ -215,13 +208,13 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ConvertFp16ToFp32:
{
auto convertFp16ToFp32QueueDescriptor
- = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor);
return std::make_unique<RefConvertFp16ToFp32Workload>(*convertFp16ToFp32QueueDescriptor, info);
}
case LayerType::ConvertFp32ToFp16:
{
auto convertFp32ToFp16QueueDescriptor
- = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ConvertFp32ToFp16QueueDescriptor*>(&descriptor);
return std::make_unique<RefConvertFp32ToFp16Workload>(*convertFp32ToFp16QueueDescriptor, info);
}
case LayerType::Convolution2d:
@@ -265,7 +258,6 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
{
return std::make_unique<RefDebugSigned32Workload>(*debugQueueDescriptor, info);
}
-
return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymmU8Workload>(*debugQueueDescriptor, info);
}
case LayerType::DepthToSpace:
@@ -276,7 +268,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DepthwiseConvolution2d:
{
auto depthwiseConvolution2DQueueDescriptor
- = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DepthwiseConvolution2dQueueDescriptor*>(&descriptor);
return std::make_unique<RefDepthwiseConvolution2dWorkload>(*depthwiseConvolution2DQueueDescriptor, info);
}
case LayerType::Dequantize:
@@ -287,7 +279,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::DetectionPostProcess:
{
auto detectionPostProcessQueueDescriptor
- = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const DetectionPostProcessQueueDescriptor*>(&descriptor);
return std::make_unique<RefDetectionPostProcessWorkload>(*detectionPostProcessQueueDescriptor, info);
}
case LayerType::Division:
@@ -305,13 +297,13 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::ElementwiseBinary:
{
auto elementwiseBinaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ElementwiseBinaryQueueDescriptor*>(&descriptor);
return std::make_unique<RefElementwiseBinaryWorkload>(*elementwiseBinaryQueueDescriptor, info);
}
case LayerType::ElementwiseUnary:
{
auto elementwiseUnaryQueueDescriptor
- = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const ElementwiseUnaryQueueDescriptor*>(&descriptor);
if ((*elementwiseUnaryQueueDescriptor).m_Parameters.m_Operation == UnaryOperation::LogicalNot)
{
return std::make_unique<RefLogicalUnaryWorkload>(*elementwiseUnaryQueueDescriptor, info);
@@ -321,7 +313,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::FakeQuantization:
{
auto fakeQuantizationQueueDescriptor
- = PolymorphicDowncast<const FakeQuantizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const FakeQuantizationQueueDescriptor*>(&descriptor);
return std::make_unique<RefFakeQuantizationFloat32Workload>(*fakeQuantizationQueueDescriptor, info);
}
case LayerType::Fill:
@@ -344,7 +336,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::FullyConnected:
{
auto fullyConnectedQueueDescriptor
- = PolymorphicDowncast<const FullyConnectedQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const FullyConnectedQueueDescriptor*>(&descriptor);
return std::make_unique<RefFullyConnectedWorkload>(*fullyConnectedQueueDescriptor, info);
}
case LayerType::Gather:
@@ -368,25 +360,23 @@ std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(*inputQueueDescriptor, info);
}
case LayerType::InstanceNormalization:
{
auto instanceNormalizationQueueDescriptor
- = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const InstanceNormalizationQueueDescriptor*>(&descriptor);
return std::make_unique<RefInstanceNormalizationWorkload>(*instanceNormalizationQueueDescriptor, info);
}
case LayerType::L2Normalization:
{
auto l2NormalizationQueueDescriptor
- = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const L2NormalizationQueueDescriptor*>(&descriptor);
return std::make_unique<RefL2NormalizationWorkload>(*l2NormalizationQueueDescriptor, info);
}
case LayerType::LogicalBinary:
@@ -454,7 +444,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::Multiplication:
{
auto multiplicationQueueDescriptor
- = PolymorphicDowncast<const MultiplicationQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const MultiplicationQueueDescriptor*>(&descriptor);
if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
{
return std::make_unique<RefMultiplicationWorkload<int32_t>>(*multiplicationQueueDescriptor, info);
@@ -485,7 +475,6 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: data input and output "
"differ in byte count.");
}
-
return std::make_unique<CopyMemGenericWorkload>(*outputQueueDescriptor, info);
}
case LayerType::Pad:
@@ -509,7 +498,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
return std::make_unique<RefPermuteQAsymmS8Workload>(*permuteQueueDescriptor, info);
}
return MakeWorkloadHelper<RefPermuteFloat16Workload, RefPermuteFloat32Workload, RefPermuteQAsymm8Workload,
- NullWorkload, NullWorkload, NullWorkload>(*permuteQueueDescriptor, info);
+ NullWorkload, NullWorkload, NullWorkload>(*permuteQueueDescriptor, info);
}
case LayerType::Pooling2d:
{
@@ -583,7 +572,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
case LayerType::SpaceToBatchNd:
{
auto spaceToBatchNdQueueDescriptor
- = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const SpaceToBatchNdQueueDescriptor*>(&descriptor);
return std::make_unique<RefSpaceToBatchNdWorkload>(*spaceToBatchNdQueueDescriptor, info);
}
case LayerType::SpaceToDepth:
@@ -639,19 +628,19 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
return std::make_unique<RefTransposeQAsymmS8Workload>(*transposeQueueDescriptor, info);
}
return MakeWorkloadHelper<RefTransposeFloat16Workload, RefTransposeFloat32Workload,
- RefTransposeQAsymm8Workload, NullWorkload, NullWorkload, NullWorkload>
- (*transposeQueueDescriptor, info);
+ RefTransposeQAsymm8Workload, NullWorkload, NullWorkload, NullWorkload>
+ (*transposeQueueDescriptor, info);
}
case LayerType::TransposeConvolution2d:
{
auto transposeConvolution2dQueueDescriptor
- = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const TransposeConvolution2dQueueDescriptor*>(&descriptor);
return std::make_unique<RefTransposeConvolution2dWorkload>(*transposeConvolution2dQueueDescriptor, info);
}
case LayerType::UnidirectionalSequenceLstm:
{
auto unidirectionalSequenceLstmQueueDescriptor
- = PolymorphicDowncast<const UnidirectionalSequenceLstmQueueDescriptor*>(&descriptor);
+ = PolymorphicDowncast<const UnidirectionalSequenceLstmQueueDescriptor*>(&descriptor);
return std::make_unique<RefUnidirectionalSequenceLstmWorkload>(*unidirectionalSequenceLstmQueueDescriptor,
info);
}
@@ -660,540 +649,4 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateWorkload(LayerType type,
}
}
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefActivationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefAdditionWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefAdditionWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateArgMinMax(const ArgMinMaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefArgMinMaxWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateBatchNormalization(
- const BatchNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefBatchNormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateBatchToSpaceNd(const BatchToSpaceNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefBatchToSpaceNdWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateCast(const CastQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefCastWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateChannelShuffle(const ChannelShuffleQueueDescriptor &descriptor,
- const WorkloadInfo &info) const
-{
- return std::make_unique<RefChannelShuffleWorkload>(descriptor,info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateComparison(const ComparisonQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefComparisonWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConcat(const ConcatQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConcatWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConstantWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConvertFp16ToFp32(
- const ConvertFp16ToFp32QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConvertFp16ToFp32Workload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConvertFp32ToFp16(
- const ConvertFp32ToFp16QueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConvertFp32ToFp16Workload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConvolution2d(const Convolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConvolution2dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateConvolution3d(const Convolution3dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefConvolution3dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDebug(const DebugQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (IsBFloat16(info))
- {
- return std::make_unique<RefDebugBFloat16Workload>(descriptor, info);
- }
- if (IsFloat16(info))
- {
- return std::make_unique<RefDebugFloat16Workload>(descriptor, info);
- }
- if (IsQSymmS16(info))
- {
- return std::make_unique<RefDebugQSymmS16Workload>(descriptor, info);
- }
- if (IsQSymmS8(info))
- {
- return std::make_unique<RefDebugQSymmS8Workload>(descriptor, info);
- }
- if (IsQAsymmU8(info))
- {
- return std::make_unique<RefDebugQAsymmU8Workload>(descriptor, info);
- }
- if (IsQAsymmS8(info))
- {
- return std::make_unique<RefDebugQAsymmS8Workload>(descriptor, info);
- }
- if (IsSigned32(info))
- {
- return std::make_unique<RefDebugSigned32Workload>(descriptor, info);
- }
-
- return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymmU8Workload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefDepthToSpaceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDepthwiseConvolution2d(
- const DepthwiseConvolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefDepthwiseConvolution2dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDequantize(const DequantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefDequantizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDetectionPostProcess(
- const DetectionPostProcessQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefDetectionPostProcessWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDivision(const DivisionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefDivisionWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefDivisionWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (descriptor.m_Parameters.m_Operation == UnaryOperation::LogicalNot)
- {
- return std::make_unique<RefLogicalUnaryWorkload>(descriptor, info);
- }
- return std::make_unique<RefElementwiseUnaryWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFakeQuantization(const FakeQuantizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return MakeWorkload<RefFakeQuantizationFloat32Workload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFill(const FillQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefFillWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if(IsQuantizedType(info.m_InputTensorInfos[0].GetDataType()))
- {
- return nullptr;
- }
- else
- {
- return std::make_unique<RefFloorWorkload>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateFullyConnected(
- const FullyConnectedQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefFullyConnectedWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateGather(const GatherQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefGatherWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateInstanceNormalization(
- const InstanceNormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefInstanceNormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateL2Normalization(const L2NormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefL2NormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateLogicalBinary(const LogicalBinaryQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefLogicalBinaryWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateLogSoftmax(const LogSoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefLogSoftmaxWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefLstmWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateMaximum(const MaximumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefMaximumWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefMaximumWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefMeanWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<ImportMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateMinimum(const MinimumQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefMinimumWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefMinimumWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateMultiplication(const MultiplicationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefMultiplicationWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefMultiplicationWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateNormalization(const NormalizationQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefNormalizationWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> 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<CopyMemGenericWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefPadWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (IsQSymmS16(info))
- {
- return std::make_unique<RefPermuteQSymm16Workload>(descriptor, info);
- }
- else if (IsBFloat16(info))
- {
- return std::make_unique<RefPermuteBFloat16Workload>(descriptor, info);
- }
- else if (IsQAsymmS8(info))
- {
- return std::make_unique<RefPermuteQAsymmS8Workload>(descriptor, info);
- }
- return MakeWorkloadHelper<RefPermuteFloat16Workload, RefPermuteFloat32Workload, RefPermuteQAsymm8Workload,
- NullWorkload, NullWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefPooling2dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePooling3d(const Pooling3dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefPooling3dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePreCompiled(const PreCompiledQueueDescriptor& /*descriptor*/,
- const WorkloadInfo& /*info*/) const
-{
- return nullptr;
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePrelu(const PreluQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefPreluWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateQLstm(const QLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefQLstmWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateQuantize(const QuantizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefQuantizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateRank(const RankQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefRankWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateReduce(const ReduceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefReduceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefReshapeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateResize(const ResizeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefResizeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateShape(const ShapeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefShapeWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSlice(const SliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefSliceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefSoftmaxWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSpaceToBatchNd(const SpaceToBatchNdQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefSpaceToBatchNdWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSpaceToDepth(const SpaceToDepthQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefSpaceToDepthWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefSplitterWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateStack(const StackQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefStackWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateStridedSlice(const StridedSliceQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefStridedSliceWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (info.m_InputTensorInfos[0].GetDataType() == armnn::DataType::Signed32)
- {
- return std::make_unique<RefSubtractionWorkload<int32_t>>(descriptor, info);
- }
- else
- {
- return std::make_unique<RefSubtractionWorkload<float>>(descriptor, info);
- }
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateTranspose(const TransposeQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- if (IsQSymmS16(info))
- {
- return std::make_unique<RefTransposeQSymm16Workload>(descriptor, info);
- }
- else if (IsBFloat16(info))
- {
- return std::make_unique<RefTransposeBFloat16Workload>(descriptor, info);
- }
- else if (IsQAsymmS8(info))
- {
- return std::make_unique<RefTransposeQAsymmS8Workload>(descriptor, info);
- }
- return MakeWorkloadHelper<RefTransposeFloat16Workload, RefTransposeFloat32Workload, RefTransposeQAsymm8Workload,
- NullWorkload, NullWorkload, NullWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateTransposeConvolution2d(
- const TransposeConvolution2dQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefTransposeConvolution2dWorkload>(descriptor, info);
-}
-
-std::unique_ptr<IWorkload> RefWorkloadFactory::CreateUnidirectionalSequenceLstm(
- const UnidirectionalSequenceLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const
-{
- return std::make_unique<RefUnidirectionalSequenceLstmWorkload>(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 <typename QueueDescriptorType>
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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> 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<IWorkload> CreateUnidirectionalSequenceLstm(
- const UnidirectionalSequenceLstmQueueDescriptor& descriptor,
- const WorkloadInfo& info) const override;
-
private:
template <typename F32Workload, typename U8Workload, typename QueueDescriptorType>
std::unique_ptr<IWorkload> MakeWorkload(const QueueDescriptorType& descriptor, const WorkloadInfo& info) const;