diff options
author | Teresa Charlin <teresa.charlinreyes@arm.com> | 2022-01-07 09:47:29 +0000 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2022-01-18 13:15:41 +0000 |
commit | 611c7fb97412230d5cefee047081455fb60db06c (patch) | |
tree | 1244050b50a300f67285aef00d8b05c52865b89a /src/backends/backendsCommon | |
parent | 53e06599a3af44db90c37d1cda34fc85ec9c27fa (diff) | |
download | armnn-611c7fb97412230d5cefee047081455fb60db06c.tar.gz |
IVGCVSW-6641 Stabilize the IWorkloadFactory interface with unified strategy
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: Ia941be9bf2c15fe56e49a9b9a2bbe943a8152438
Diffstat (limited to 'src/backends/backendsCommon')
67 files changed, 659 insertions, 144 deletions
diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 9c47a19208..56874a6a8c 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -1538,6 +1538,366 @@ bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, outReasonIfUnsupported, modelOptions); } +ARMNN_NO_DEPRECATE_WARN_BEGIN +std::unique_ptr<IWorkload> IWorkloadFactory::CreateWorkload(LayerType type, + const QueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + 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::ConvertBf16ToFp32 : + { + auto convertBf16ToFp32QueueDescriptor + = PolymorphicDowncast<const ConvertBf16ToFp32QueueDescriptor*>(&descriptor); + return CreateConvertBf16ToFp32(*convertBf16ToFp32QueueDescriptor, info); + } + case LayerType::ConvertFp16ToFp32: + { + auto convertFp16ToFp32QueueDescriptor + = PolymorphicDowncast<const ConvertFp16ToFp32QueueDescriptor*>(&descriptor); + return CreateConvertFp16ToFp32(*convertFp16ToFp32QueueDescriptor, info); + } + case LayerType::ConvertFp32ToBf16: + { + auto convertFp32ToBf16QueueDescriptor + = PolymorphicDowncast<const ConvertFp32ToBf16QueueDescriptor*>(&descriptor); + return CreateConvertFp32ToBf16(*convertFp32ToBf16QueueDescriptor, 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::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; + } +} +ARMNN_NO_DEPRECATE_WARN_END std::unique_ptr<IWorkload> IWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const diff --git a/src/backends/backendsCommon/WorkloadFactoryBase.hpp b/src/backends/backendsCommon/WorkloadFactoryBase.hpp index 42a506afe0..00e549c933 100644 --- a/src/backends/backendsCommon/WorkloadFactoryBase.hpp +++ b/src/backends/backendsCommon/WorkloadFactoryBase.hpp @@ -34,6 +34,11 @@ public: const bool /*IsMemoryManaged*/) const override { return nullptr; } + std::unique_ptr<IWorkload> CreateWorkload(LayerType /*type*/, + const QueueDescriptor& /*descriptor*/, + const WorkloadInfo& /*info*/) const override + { return nullptr; } + std::unique_ptr<IWorkload> CreateActivation(const ActivationQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const override { return nullptr; } @@ -105,19 +110,14 @@ public: std::unique_ptr<IWorkload> CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor& descriptor, const WorkloadInfo& info) const override { - if (descriptor.m_Parameters.m_Operation == UnaryOperation::Abs) + if (descriptor.m_Parameters.m_Operation == UnaryOperation::LogicalNot) { - { return nullptr; } + return CreateWorkload(armnn::LayerType::ElementwiseUnary, descriptor, info); } - else if (descriptor.m_Parameters.m_Operation == UnaryOperation::Rsqrt) + else { { return nullptr; } } - else if (descriptor.m_Parameters.m_Operation == UnaryOperation::LogicalNot) - { - return CreateLogicalUnary(descriptor, info); - } - { return nullptr; } } std::unique_ptr<IWorkload> CreateFakeQuantization(const FakeQuantizationQueueDescriptor& /*descriptor*/, diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp index 1782fa44f6..6c37d18042 100644 --- a/src/backends/backendsCommon/test/DynamicBackendTests.hpp +++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp @@ -1474,7 +1474,9 @@ void CreateReferenceDynamicBackendTestImpl() convolution2dQueueDescriptor.m_Weight = weights.get(); // Create a convolution workload with the dummy settings - auto workload = referenceWorkloadFactory->CreateConvolution2d(convolution2dQueueDescriptor, workloadInfo); + auto workload = referenceWorkloadFactory->CreateWorkload(LayerType::Convolution2d, + convolution2dQueueDescriptor, + workloadInfo); CHECK((workload != nullptr)); CHECK(workload.get() == PolymorphicDowncast<RefConvolution2dWorkload*>(workload.get())); } diff --git a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp index bc5e335a93..06f3eb561e 100644 --- a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp +++ b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp @@ -549,7 +549,7 @@ struct LayerTypePolicy<armnn::LayerType::name, DataType> \ { \ QueueDesc desc; \ armnn::WorkloadInfo info = MakeDummyWorkloadInfo<DataType>(nIn, nOut); \ - return factory->Create##name(desc, info); \ + return factory->CreateWorkload(armnn::LayerType::name, desc, info); \ } \ }; diff --git a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp index 119f8744d3..c715d28ebe 100644 --- a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp +++ b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp @@ -50,7 +50,8 @@ TEST_CASE("QueueDescriptor_Validate_WrongNumOfInputsOutputs") InputQueueDescriptor invalidData; WorkloadInfo invalidInfo; //Invalid argument exception is expected, because no inputs and no outputs were defined. - CHECK_THROWS_AS(RefWorkloadFactory().CreateInput(invalidData, invalidInfo), armnn::InvalidArgumentException); + CHECK_THROWS_AS(RefWorkloadFactory().CreateWorkload(LayerType::Input, invalidData, invalidInfo), + armnn::InvalidArgumentException); } TEST_CASE("RefPooling2dFloat32Workload_Validate_WrongDimTensor") diff --git a/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.cpp index 57687051b6..ea9973b7d3 100644 --- a/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.cpp @@ -71,7 +71,8 @@ LayerTestResult<T, 4> BoundedReLuTestCommon( descriptor.m_Parameters.m_A = upperBound; descriptor.m_Parameters.m_B = lowerBound; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(descriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + descriptor, workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -269,7 +270,8 @@ std::vector<float> BoundedReLuRandomInputTest( AddOutputToWorkload(descriptor, workloadInfo, outputTensorInfo, outputHandle.get()); descriptor.m_Parameters = activationDescriptor; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(descriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + descriptor, workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -352,7 +354,8 @@ LayerTestResult<T, 4> ConstantLinearActivationTestCommon( data.m_Parameters.m_B = 0.0f; data.m_Parameters.m_Function = armnn::ActivationFunction::Linear; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -458,7 +461,8 @@ LayerTestResult<T, 4> SimpleActivationTest( descriptor.m_Parameters.m_A = activationParameterA; descriptor.m_Parameters.m_B = activationParameterB; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(descriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + descriptor, workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -875,7 +879,8 @@ LayerTestResult<float, 5> SqrtNNTest( descriptor.m_Parameters.m_Function = armnn::ActivationFunction::Sqrt; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(descriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + descriptor, workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -1278,9 +1283,11 @@ LayerTestResult<T, 4> CompareActivationTestImpl( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateActivation(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Activation, + data, info); ARMNN_ASSERT(workload != nullptr); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateActivation(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateWorkload(armnn::LayerType::Activation, + refData, refInfo); ARMNN_ASSERT(workloadRef != nullptr); inputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.cpp index ce8f74d2e0..56906bc2a1 100644 --- a/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.cpp @@ -16,7 +16,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::AdditionQueueDescriptor> const armnn::WorkloadInfo& info, const armnn::AdditionQueueDescriptor& descriptor) { - return workloadFactory.CreateAddition(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Addition, descriptor, info); } LayerTestResult<float,4> AdditionTest( @@ -231,7 +231,8 @@ LayerTestResult<T, 4> AdditionBroadcastTestImpl( AddInputToWorkload(data, info, inputTensorInfo2, inputHandle2.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateAddition(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Addition, + data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -314,7 +315,8 @@ LayerTestResult<T, 4> AdditionBroadcast1ElementTestImpl( AddInputToWorkload(data, info, inputTensorInfo2, inputHandle2.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateAddition(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Addition, + data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -580,7 +582,9 @@ LayerTestResult<float, 4> AdditionAfterMaxPoolTest( AddOutputToWorkload(queueDescriptor, workloadInfo, poolingOutputTensorInfo, poolingOutputHandle.get()); // Create the MaxPool - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePooling2d(queueDescriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pooling2d, + queueDescriptor, + workloadInfo); std::vector<float> resultMaxPool(poolingOutputTensorInfo.GetNumElements()); @@ -611,7 +615,8 @@ LayerTestResult<float, 4> AdditionAfterMaxPoolTest( AddInputToWorkload(data, info, addInputTensorInfo, addInputHandle.get()); AddOutputToWorkload(data, info, addOutputTensorInfo, addOutputHandle.get()); - std::unique_ptr<armnn::IWorkload> addWorkload = workloadFactory.CreateAddition(data, info); + std::unique_ptr<armnn::IWorkload> addWorkload = workloadFactory.CreateWorkload(armnn::LayerType::Addition, + data, info); poolingInputHandle->Allocate(); poolingOutputHandle->Allocate(); @@ -685,8 +690,10 @@ LayerTestResult<float,4> CompareAdditionTest( SetWorkloadInput(refData, refInfo, 1, inputTensorInfo2, inputHandle2Ref.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateAddition(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateAddition(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Addition, + data, info); + std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateWorkload(armnn::LayerType::Addition, + refData, refInfo); inputHandle1->Allocate(); inputHandle2->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp index e98708fd02..88d92d22f1 100644 --- a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp @@ -41,7 +41,8 @@ LayerTestResult<int32_t, 3> ArgMinMaxTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateArgMinMax(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::ArgMinMax, + descriptor, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp index b4414050e7..928918c83a 100644 --- a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp @@ -94,7 +94,8 @@ LayerTestResult<T, 4> BatchNormTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateBatchNormalization(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::BatchNormalization, descriptor, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -192,7 +193,8 @@ LayerTestResult<T,4> BatchNormTestNhwcImpl( }, qScale, qOffset); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateBatchNormalization(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::BatchNormalization, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -672,8 +674,10 @@ LayerTestResult<float,4> CompareBatchNormTest( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateBatchNormalization(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateBatchNormalization(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::BatchNormalization, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::BatchNormalization, refData, refInfo); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp index 23e790f15a..a5fdfa64d0 100644 --- a/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp @@ -64,7 +64,8 @@ LayerTestResult<T, OutputDim> BatchToSpaceNdHelper( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateBatchToSpaceNd(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::BatchToSpaceNd, + data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/CastTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/CastTestImpl.cpp index 92bce4f460..8d60cf1b0f 100644 --- a/src/backends/backendsCommon/test/layerTests/CastTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/CastTestImpl.cpp @@ -41,7 +41,7 @@ LayerTestResult<TOutput, 4> CastTest(armnn::IWorkloadFactory& workloadFactory, AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateCast(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Cast, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ChannelShuffleTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ChannelShuffleTestImpl.cpp index 08a68cc04c..74b7bc3b07 100644 --- a/src/backends/backendsCommon/test/layerTests/ChannelShuffleTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ChannelShuffleTestImpl.cpp @@ -35,7 +35,8 @@ LayerTestResult<T, NumDims> ChannelShuffleTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateChannelShuffle(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::ChannelShuffle, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.cpp index 2640c329b3..016d27897e 100644 --- a/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.cpp @@ -66,7 +66,8 @@ LayerTestResult<uint8_t, NumDims> ComparisonTestImpl( AddInputToWorkload(qDescriptor, info, inputTensorInfo1, inputHandle1.get()); AddOutputToWorkload(qDescriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateComparison(qDescriptor, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Comparison, qDescriptor, info); inputHandle0->Allocate(); inputHandle1->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.cpp index 8fbd3e39d8..88a392cf18 100644 --- a/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.cpp @@ -147,7 +147,9 @@ template<typename T> void PermuteTensorData( AddInputToWorkload(queueDescriptor, workloadInfo, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(queueDescriptor, workloadInfo, outputTensorInfo, outputHandle.get()); - std::unique_ptr<IWorkload> workload = workloadFactory.CreatePermute(queueDescriptor, workloadInfo); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Permute, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -379,7 +381,8 @@ template<typename T> void Concatenate( AddOutputToWorkload(queueDescriptor, workloadInfo, outputTensorInfo, outputHandle.get()); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(queueDescriptor, workloadInfo); + std::unique_ptr<IWorkload> workload + = workloadFactory.CreateWorkload(LayerType::Concat, queueDescriptor, workloadInfo); for (auto& inputHandle : inputHandles) { @@ -2069,7 +2072,7 @@ LayerTestResult<T, 3> ConcatDifferentInputOutputQParamTest( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(data, info); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Concat, data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -2217,7 +2220,7 @@ LayerTestResult<float,3> ConcatTest( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(data, info); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Concat, data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -2549,7 +2552,7 @@ LayerTestResult<uint8_t, 3> ConcatUint8DifferentQParamsTest( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(data, info); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Concat, data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -2687,7 +2690,7 @@ LayerTestResult<uint8_t, 3> ConcatUint8Test( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(data, info); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Concat, data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); @@ -2826,7 +2829,7 @@ LayerTestResult<uint16_t, 3> ConcatUint16Test( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConcat(data, info); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(LayerType::Concat, data, info); inputHandle1->Allocate(); inputHandle2->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.cpp index f7d84157ad..c9da74985e 100644 --- a/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.cpp @@ -108,7 +108,9 @@ LayerTestResult<T, 4> ConstantTestImpl( armnn::WorkloadInfo info; AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConstant(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Constant, + descriptor, + info); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp index 0982d01e2e..33dfc23b7d 100644 --- a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.cpp @@ -344,7 +344,9 @@ LayerTestResult<T, 4> SimpleConvolution2dTestImpl( data.m_Parameters.m_DilationX = dilationX; data.m_Parameters.m_DilationY = dilationY; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -444,7 +446,9 @@ LayerTestResult<O, 4> SimpleConvolution2dNhwcTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -570,7 +574,9 @@ LayerTestResult<T,4> Convolution1dTestImpl( data.m_Parameters.m_PadBottom = padSize; data.m_Parameters.m_BiasEnabled = biasEnabled; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -1388,8 +1394,10 @@ LayerTestResult<T,4> CompareConvolution2dTestImpl( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvolution2d(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateConvolution2d(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, refData, refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); @@ -1756,7 +1764,8 @@ LayerTestResult<T, 4> DepthwiseConvolution2dAsymmetricTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -1905,7 +1914,8 @@ LayerTestResult<T, 4> DepthwiseConvolution2dDepthMul1TestImpl( data.m_Parameters.m_BiasEnabled = biasEnabled; data.m_Parameters.m_DataLayout = layout; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -2100,7 +2110,8 @@ LayerTestResult<T, 4> DepthwiseConvolution2dTestImpl( data.m_Parameters.m_BiasEnabled = biasEnabled; data.m_Parameters.m_DataLayout = layout; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -2266,7 +2277,8 @@ LayerTestResult<T, 4> DepthwiseConvolution2dTestImpl( data.m_Parameters.m_DilationX = dilationX; data.m_Parameters.m_DilationY = dilationY; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -2989,8 +3001,10 @@ LayerTestResult<T, 4> CompareDepthwiseConvolution2dTestImpl( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateDepthwiseConvolution2d(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, refData, refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); @@ -3474,7 +3488,9 @@ LayerTestResult<uint8_t, 4> Convolution2dPerAxisQuantTest( AddInputToWorkload(queueDescriptor, workloadInfo, inputInfo, inputHandle.get()); AddOutputToWorkload(queueDescriptor, workloadInfo, outputInfo, outputHandle.get()); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateConvolution2d(queueDescriptor, workloadInfo); + std::unique_ptr<IWorkload> workload= workloadFactory.CreateWorkload(armnn::LayerType::Convolution2d, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -3740,7 +3756,9 @@ LayerTestResult<uint8_t, 4> DepthwiseConvolution2dPerAxisQuantTest( AddInputToWorkload(queueDescriptor, workloadInfo, inputInfo, inputHandle.get()); AddOutputToWorkload(queueDescriptor, workloadInfo, outputInfo, outputHandle.get()); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateDepthwiseConvolution2d(queueDescriptor, workloadInfo); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::DepthwiseConvolution2d, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/Conv3dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/Conv3dTestImpl.cpp index 45cf48b40e..406fcb4700 100644 --- a/src/backends/backendsCommon/test/layerTests/Conv3dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/Conv3dTestImpl.cpp @@ -275,7 +275,9 @@ LayerTestResult<T, 5> SimpleConvolution3dTestImpl( AddInputToWorkload(data, info, biasDesc, input2Handle.get()); } - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvolution3d(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Convolution3d, + data, + info); input0Handle->Allocate(); input1Handle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConvertBf16ToFp32TestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConvertBf16ToFp32TestImpl.cpp index e4ba0b8c0b..49e1cebc0f 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertBf16ToFp32TestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertBf16ToFp32TestImpl.cpp @@ -42,7 +42,9 @@ LayerTestResult<float, 4> ConvertBf16ToFp32Test( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvertBf16ToFp32(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::ConvertBf16ToFp32, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.cpp index 74c03d939b..d581032838 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.cpp @@ -46,7 +46,9 @@ LayerTestResult<float, 4> SimpleConvertFp16ToFp32Test( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvertFp16ToFp32(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::ConvertFp16ToFp32, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToBf16TestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToBf16TestImpl.cpp index 667fd29c24..61a55f26c2 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToBf16TestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToBf16TestImpl.cpp @@ -63,7 +63,9 @@ LayerTestResult<armnn::BFloat16, 4> ConvertFp32ToBf16Test( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvertFp32ToBf16(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::ConvertFp32ToBf16, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.cpp index 13dde067b0..060e7a2762 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.cpp @@ -44,7 +44,9 @@ LayerTestResult<armnn::Half, 4> SimpleConvertFp32ToFp16Test( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateConvertFp32ToFp16(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::ConvertFp32ToFp16, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/DebugTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/DebugTestImpl.cpp index 2938489d63..d2cbdd1412 100644 --- a/src/backends/backendsCommon/test/layerTests/DebugTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/DebugTestImpl.cpp @@ -56,7 +56,9 @@ LayerTestResult<T, Dim> DebugTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDebug(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Debug, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp index ee4f1b3660..6476e7b0da 100644 --- a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.cpp @@ -58,7 +58,9 @@ LayerTestResult<T, 4> DepthToSpaceTestImpl( AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDepthToSpace(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::DepthToSpace, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.cpp index 98bf74f833..e8fabea3ba 100644 --- a/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.cpp @@ -39,7 +39,9 @@ LayerTestResult<T1, Dim> DequantizeTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDequantize(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Dequantize, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp index 52aacad38c..43e7d15158 100644 --- a/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp @@ -200,7 +200,9 @@ void DetectionPostProcessImpl(const armnn::TensorInfo& boxEncodingsInfo, AddOutputToWorkload(data, info, detectionScoresInfo, outputScoresHandle.get()); AddOutputToWorkload(data, info, numDetectionInfo, numDetectionHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateDetectionPostProcess(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::DetectionPostProcess, + data, + info); boxedHandle->Allocate(); scoreshandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.cpp index f3688347d2..e355ec69c1 100644 --- a/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.cpp @@ -13,7 +13,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::DivisionQueueDescriptor> const armnn::WorkloadInfo& info, const armnn::DivisionQueueDescriptor& descriptor) { - return workloadFactory.CreateDivision(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Division, descriptor, info); } LayerTestResult<float, 4> DivisionByZeroTest( diff --git a/src/backends/backendsCommon/test/layerTests/ElementwiseUnaryTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ElementwiseUnaryTestImpl.cpp index a2c88a62e7..c821e83835 100644 --- a/src/backends/backendsCommon/test/layerTests/ElementwiseUnaryTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ElementwiseUnaryTestImpl.cpp @@ -10,5 +10,5 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload( const armnn::WorkloadInfo& info, const armnn::ElementwiseUnaryQueueDescriptor& descriptor) { - return workloadFactory.CreateElementwiseUnary(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::ElementwiseUnary, descriptor, info); }
\ No newline at end of file diff --git a/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.cpp index 613f8b7f6a..e2fb6fa373 100644 --- a/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.cpp @@ -54,7 +54,9 @@ LayerTestResult<float, 2> FakeQuantizationTest( armnn::WorkloadInfo refInfo = info; SetWorkloadOutput(refData, refInfo, 0, tensorInfo, &refHandle); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFakeQuantization(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::FakeQuantization, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/FillTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/FillTestImpl.cpp index fae2691af7..1be0e40871 100644 --- a/src/backends/backendsCommon/test/layerTests/FillTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/FillTestImpl.cpp @@ -40,7 +40,7 @@ LayerTestResult<T, 4> SimpleFillTest( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFill(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Fill, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/FloorTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/FloorTestImpl.cpp index 527b0dbd13..fbd962584a 100644 --- a/src/backends/backendsCommon/test/layerTests/FloorTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/FloorTestImpl.cpp @@ -47,7 +47,7 @@ LayerTestResult<T, 4> SimpleFloorTest( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFloor(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Floor, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.cpp index 9361f4d2b3..71d2d0a81e 100644 --- a/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.cpp @@ -69,7 +69,9 @@ LayerTestResult<T, 2> SimpleFullyConnectedTestImpl( AddInputToWorkload(data, info, biasesTensorInfo, input2Handle.get()); } - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateFullyConnected(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::FullyConnected, + data, + info); LayerTestResult<T, 2> result(outputTensorInfo); input0Handle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/GatherTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/GatherTestImpl.cpp index ad81968b71..c89d53be66 100644 --- a/src/backends/backendsCommon/test/layerTests/GatherTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/GatherTestImpl.cpp @@ -46,7 +46,7 @@ LayerTestResult<T, OutputDim> GatherTestImpl( AddInputToWorkload(data, info, indicesInfo, indicesHandle.get()); AddOutputToWorkload(data, info, outputInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateGather(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Gather, data, info); paramsHandle->Allocate(); indicesHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp index 9de7df7029..bebbedad87 100644 --- a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp @@ -48,7 +48,8 @@ LayerTestResult<T, 4> InstanceNormTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateInstanceNormalization(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::InstanceNormalization, descriptor, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.cpp index f7566fd014..0a60658b47 100644 --- a/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.cpp @@ -79,7 +79,9 @@ LayerTestResult<T, 4> L2NormalizationTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateL2Normalization(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::L2Normalization, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -740,7 +742,9 @@ LayerTestResult<float, 2> L2Normalization2dShapeTest( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateL2Normalization(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::L2Normalization, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp index 016d143e35..cb182d6d3f 100644 --- a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp @@ -52,7 +52,9 @@ LayerTestResult<T, NumDims> LogSoftmaxTestImpl( AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateLogSoftmax(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::LogSoftmax, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/LogicalTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/LogicalTestImpl.cpp index d2fa2bd6f7..60e14b5d9d 100644 --- a/src/backends/backendsCommon/test/layerTests/LogicalTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/LogicalTestImpl.cpp @@ -48,7 +48,7 @@ LayerTestResult<uint8_t, NumDims> LogicalUnaryTestHelper( AddInputToWorkload(qDesc, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(qDesc, info, outputTensorInfo, outputHandle.get()); - auto workload = workloadFactory.CreateElementwiseUnary(qDesc, info); + auto workload = workloadFactory.CreateWorkload(armnn::LayerType::ElementwiseUnary, qDesc, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -104,7 +104,7 @@ LayerTestResult<uint8_t, NumDims> LogicalBinaryTestHelper( AddInputToWorkload(qDesc, info, inputTensorInfo1, inputHandle1.get()); AddOutputToWorkload(qDesc, info, outputTensorInfo, outputHandle.get()); - auto workload = workloadFactory.CreateLogicalBinary(qDesc, info); + auto workload = workloadFactory.CreateWorkload(armnn::LayerType::LogicalBinary, qDesc, info); inputHandle0->Allocate(); inputHandle1->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/LstmTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/LstmTestImpl.cpp index c04e97bb0f..a69f7270b4 100644 --- a/src/backends/backendsCommon/test/layerTests/LstmTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/LstmTestImpl.cpp @@ -314,7 +314,7 @@ LstmNoCifgNoPeepholeNoProjectionTestImpl( data.m_Parameters.m_PeepholeEnabled = false; data.m_Parameters.m_ProjectionEnabled = false; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Lstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -987,7 +987,7 @@ LstmLayerNoCifgWithPeepholeWithProjectionTestImpl(armnn::IWorkloadFactory& workl data.m_Parameters.m_PeepholeEnabled = true; data.m_Parameters.m_ProjectionEnabled = true; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Lstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1211,7 +1211,7 @@ LayerTestResult<T, 2> LstmLayerWithCifgWithPeepholeNoProjectionTestImpl( AddOutputToWorkload(data, info, cellStateOutTensorInfo, cellStateOutHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Lstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); @@ -1464,7 +1464,7 @@ LstmLayerNoCifgWithPeepholeWithProjectionWithLayerNormTestImpl(armnn::IWorkloadF data.m_Parameters.m_LayerNormEnabled = true; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Lstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1653,7 +1653,9 @@ LayerTestResult<uint8_t, 2> QuantizedLstmTestImpl( data.m_OutputGateBias = &outputGateBiasTensor; // Create workload and allocate tensor handles - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateQuantizedLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::QuantizedLstm, + data, + info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1890,7 +1892,7 @@ LayerTestResult<int8_t, 2> QLstmTestImpl( data.m_Parameters.m_ProjectionClip = projectionClip; // Create workload and allocate tensor handles - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateQLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::QLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -2155,7 +2157,7 @@ LayerTestResult<int8_t, 2> QLstmTestImpl1( data.m_Parameters.m_ProjectionClip = projectionClip; // Create workload and allocate tensor handles - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateQLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::QLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -2406,7 +2408,7 @@ LayerTestResult<int8_t, 2> QLstmTestImpl2( data.m_Parameters.m_ProjectionClip = projectionClip; // Create workload and allocate tensor handles - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateQLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::QLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.cpp index 1ef8f9a4e9..c2c7cd520a 100644 --- a/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.cpp @@ -13,7 +13,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::MaximumQueueDescriptor>( const armnn::WorkloadInfo& info, const armnn::MaximumQueueDescriptor& descriptor) { - return workloadFactory.CreateMaximum(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Maximum, descriptor, info); } LayerTestResult<float, 4> MaximumSimpleTest( diff --git a/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp index 29dba2f152..eacb4e0f1b 100644 --- a/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp @@ -55,7 +55,7 @@ LayerTestResult<T, OutputDim> MeanTestHelper( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateMean(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Mean, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.cpp index 015d055dcc..ff31d27774 100644 --- a/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.cpp @@ -13,7 +13,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::MinimumQueueDescriptor>( const armnn::WorkloadInfo& info, const armnn::MinimumQueueDescriptor& descriptor) { - return workloadFactory.CreateMinimum(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Minimum, descriptor, info); } LayerTestResult<float, 4> MinimumBroadcast1ElementTest1( diff --git a/src/backends/backendsCommon/test/layerTests/MirrorPadTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/MirrorPadTestImpl.cpp index 2647bb976f..d99e5c8fbd 100644 --- a/src/backends/backendsCommon/test/layerTests/MirrorPadTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/MirrorPadTestImpl.cpp @@ -43,7 +43,9 @@ LayerTestResult<T, 2> MirrorPad2dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -86,7 +88,9 @@ LayerTestResult<T, 3> MirrorPad3dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -129,7 +133,9 @@ LayerTestResult<T, 4> MirrorPad4dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.cpp index c7b082183c..eab24810d5 100644 --- a/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.cpp @@ -14,7 +14,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::MultiplicationQueueDescr const armnn::WorkloadInfo& info, const armnn::MultiplicationQueueDescriptor& descriptor) { - return workloadFactory.CreateMultiplication(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Multiplication, descriptor, info); } LayerTestResult<float, 4> MultiplicationTest(armnn::IWorkloadFactory& workloadFactory, @@ -571,8 +571,10 @@ LayerTestResult<float,4> CompareMultiplicationTest( SetWorkloadInput(refData, refInfo, 1, inputTensorInfo1, inputHandle1Ref.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateMultiplication(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateMultiplication(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Multiplication, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::Multiplication, refData, refInfo); inputHandle0->Allocate(); inputHandle1->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.cpp index 4f2add51ff..2b2ff0cc14 100644 --- a/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.cpp @@ -82,7 +82,9 @@ LayerTestResult<float,4> SimpleNormalizationTestImpl( armnn::WorkloadInfo refInfo = info; SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, &refHandle); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateNormalization(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Normalization, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -237,7 +239,9 @@ LayerTestResult<float,4> SimpleNormalizationNhwcTestImpl( armnn::WorkloadInfo refInfo = info; SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, &refHandle); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateNormalization(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Normalization, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -355,8 +359,10 @@ LayerTestResult<float,4> CompareNormalizationTestImpl( return ret; } - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateNormalization(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateNormalization(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Normalization, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::Normalization, refData, refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); @@ -438,7 +444,9 @@ LayerTestResult<float,4> AcrossChannelNormalizationTestImpl( armnn::WorkloadInfo refInfo = info; SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, &refHandle); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateNormalization(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Normalization, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/PadTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/PadTestImpl.cpp index ab2ef24a2b..b1d8c31dfc 100644 --- a/src/backends/backendsCommon/test/layerTests/PadTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/PadTestImpl.cpp @@ -72,7 +72,9 @@ LayerTestResult<T, 2> Pad2dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -157,7 +159,9 @@ LayerTestResult<T, 3> Pad3dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -397,7 +401,9 @@ LayerTestResult<T, 4> Pad4dTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -470,7 +476,9 @@ LayerTestResult<T, 2> PadQAsymmTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePad(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pad, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp index fb55f08c54..bffa3d47a1 100644 --- a/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp @@ -39,7 +39,7 @@ LayerTestResult<T, 4> SimplePermuteTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePermute(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Permute, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.cpp index 248f9726a1..643a5df6be 100644 --- a/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.cpp @@ -100,7 +100,9 @@ LayerTestResult<T, 4> SimplePooling2dTestImpl( return result; } - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePooling2d(queueDescriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pooling2d, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -830,8 +832,10 @@ LayerTestResult<T, 4> ComparePooling2dTestCommon( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePooling2d(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreatePooling2d(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Pooling2d, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::Pooling2d, refData, refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.cpp index 3befc7c585..013ed03f08 100644 --- a/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.cpp @@ -104,7 +104,9 @@ LayerTestResult<T, 5> SimplePooling3dTestImpl( return result; } - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePooling3d(queueDescriptor, workloadInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Pooling3d, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -1035,8 +1037,10 @@ LayerTestResult<T, 5> ComparePooling3dTestCommon( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePooling3d(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreatePooling3d(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::Pooling3d, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef + = refWorkloadFactory.CreateWorkload(armnn::LayerType::Pooling3d, refData, refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp index a74be62b66..02452452a3 100644 --- a/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp @@ -84,7 +84,9 @@ LayerTestResult<T, 4> PreluTest( AddInputToWorkload (descriptor, info, alphaTensorInfo, alphaHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreatePrelu(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Prelu, + descriptor, + info); inputHandle->Allocate(); alphaHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp index 5878ec8d9b..38d6fbaac1 100644 --- a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp @@ -40,7 +40,9 @@ LayerTestResult<T, Dim> QuantizeTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateQuantize(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Quantize, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/RankTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/RankTestImpl.cpp index ef45eec8c5..be22fc6eed 100644 --- a/src/backends/backendsCommon/test/layerTests/RankTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/RankTestImpl.cpp @@ -35,7 +35,7 @@ LayerTestResult<int32_t, 1> RankTest( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateRank(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Rank, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ReduceProdTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReduceProdTestImpl.cpp index a8b1fda8dc..9506f36bd4 100644 --- a/src/backends/backendsCommon/test/layerTests/ReduceProdTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ReduceProdTestImpl.cpp @@ -59,7 +59,9 @@ LayerTestResult<float, 4> ReduceTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReduce(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Reduce, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ReduceSumTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReduceSumTestImpl.cpp index acb2990c98..c8a61bb42d 100644 --- a/src/backends/backendsCommon/test/layerTests/ReduceSumTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ReduceSumTestImpl.cpp @@ -59,7 +59,9 @@ LayerTestResult<float, 4> ReduceTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReduce(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Reduce, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ReductionTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReductionTestImpl.cpp index 47cb1d730a..4edf3dd689 100644 --- a/src/backends/backendsCommon/test/layerTests/ReductionTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ReductionTestImpl.cpp @@ -61,7 +61,9 @@ LayerTestResult<float, 4> ReductionTestCommon( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReduce(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Reduce, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp index ae9280b10f..217d8e9d4b 100644 --- a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.cpp @@ -35,7 +35,7 @@ LayerTestResult<T, NumDims> SimpleReshapeTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateReshape(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Reshape, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp index 1773809d70..2e8cc66c09 100644 --- a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.cpp @@ -123,7 +123,9 @@ LayerTestResult<T, NumDims> ResizeTestImpl( AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateResize(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Resize, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/ShapeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ShapeTestImpl.cpp index 5aa3b7ca24..e30912c9ed 100644 --- a/src/backends/backendsCommon/test/layerTests/ShapeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ShapeTestImpl.cpp @@ -33,7 +33,7 @@ LayerTestResult<int32_t, 1> ShapeTest( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateShape(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Shape, data, info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SliceTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SliceTestImpl.cpp index 32abf35576..95d2320508 100644 --- a/src/backends/backendsCommon/test/layerTests/SliceTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SliceTestImpl.cpp @@ -52,7 +52,9 @@ LayerTestResult<T, NumDims> SliceTestImpl( AddInputToWorkload(descriptor, info, inputInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSlice(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Slice, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.cpp index e8b4ee5af3..1956533611 100644 --- a/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.cpp @@ -98,7 +98,7 @@ LayerTestResult<T, n> SimpleSoftmaxBaseTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSoftmax(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Softmax, data, info); inputHandle->Allocate(); outputHandle->Allocate(); @@ -283,8 +283,10 @@ LayerTestResult<T, 2> CompareSoftmaxTestImpl( SetWorkloadInput(refData, refInfo, 0, inputTensorInfo, inputHandleRef.get()); SetWorkloadOutput(refData, refInfo, 0, outputTensorInfo, outputHandleRef.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSoftmax(data, info); - std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateSoftmax(refData, refInfo); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Softmax, data, info); + std::unique_ptr<armnn::IWorkload> workloadRef = refWorkloadFactory.CreateWorkload(armnn::LayerType::Softmax, + refData, + refInfo); outputHandleRef->Allocate(); inputHandleRef->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.cpp index fe6aa70b87..103e3363ba 100644 --- a/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.cpp @@ -69,7 +69,9 @@ LayerTestResult<T, 4> SpaceToBatchNdTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSpaceToBatchNd(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::SpaceToBatchNd, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.cpp index 0080bb6243..f67ed9bcd9 100644 --- a/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.cpp @@ -70,7 +70,9 @@ LayerTestResult<T, 4> SpaceToDepthTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSpaceToDepth(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::SpaceToDepth, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.cpp index cfb6a1f9c7..f2ee7bff3d 100644 --- a/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.cpp @@ -207,7 +207,9 @@ std::vector<LayerTestResult<T,3>> SplitterTestCommon( data.m_ViewOrigins.push_back(window1); data.m_ViewOrigins.push_back(window2); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSplitter(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Splitter, + data, + info); inputHandle->Allocate(); outputHandle1->Allocate(); @@ -230,7 +232,9 @@ std::vector<LayerTestResult<T,3>> SplitterTestCommon( data2.m_ViewOrigins.push_back(window3); data2.m_ViewOrigins.push_back(window4); - std::unique_ptr<armnn::IWorkload> workload2 = workloadFactory.CreateSplitter(data2, info2); + std::unique_ptr<armnn::IWorkload> workload2 = workloadFactory.CreateWorkload(armnn::LayerType::Splitter, + data2, + info2); outputHandle3->Allocate(); outputHandle4->Allocate(); @@ -305,7 +309,9 @@ LayerTestResult<T, 3> CopyViaSplitterTestImpl( data.m_ViewOrigins.push_back(window); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateSplitter(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Splitter, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp index 5250c3af73..252adb93ac 100644 --- a/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp @@ -65,7 +65,9 @@ LayerTestResult<T, outputDimLength> StackTestHelper( AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); outputHandle->Allocate(); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateStack(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Stack, + descriptor, + info); workload->Execute(); diff --git a/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.cpp index b4818bb12b..865b74c610 100644 --- a/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.cpp @@ -54,7 +54,9 @@ LayerTestResult<T, OutDim> StridedSliceTestImpl( AddInputToWorkload(descriptor, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(descriptor, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateStridedSlice(descriptor, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::StridedSlice, + descriptor, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.cpp index 3c4946e44a..61e76ed1ab 100644 --- a/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.cpp @@ -13,7 +13,7 @@ std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::SubtractionQueueDescript const armnn::WorkloadInfo& info, const armnn::SubtractionQueueDescriptor& descriptor) { - return workloadFactory.CreateSubtraction(descriptor, info); + return workloadFactory.CreateWorkload(armnn::LayerType::Subtraction, descriptor, info); } LayerTestResult<uint8_t, 4> SubtractionUint8Test( diff --git a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp index 95687e3c25..41e57de734 100644 --- a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.cpp @@ -96,7 +96,7 @@ void TransposeConvolution2dTestImpl(armnn::IWorkloadFactory& workloadFactory, AddOutputToWorkload(queueDescriptor, workloadInfo, output.first, outputHandle.get()); std::unique_ptr<armnn::IWorkload> workload = - workloadFactory.CreateTransposeConvolution2d(queueDescriptor, workloadInfo); + workloadFactory.CreateWorkload(armnn::LayerType::TransposeConvolution2d, queueDescriptor, workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); @@ -658,7 +658,9 @@ LayerTestResult<uint8_t, 4> TransposeConvolution2dPerAxisQuantTest( AddInputToWorkload(queueDescriptor, workloadInfo, inputInfo, inputHandle.get()); AddOutputToWorkload(queueDescriptor, workloadInfo, outputInfo, outputHandle.get()); - std::unique_ptr<IWorkload> workload = workloadFactory.CreateTransposeConvolution2d(queueDescriptor, workloadInfo); + std::unique_ptr<IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::TransposeConvolution2d, + queueDescriptor, + workloadInfo); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/TransposeTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/TransposeTestImpl.hpp index 82bd487d3c..66652f28da 100644 --- a/src/backends/backendsCommon/test/layerTests/TransposeTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/TransposeTestImpl.hpp @@ -39,7 +39,9 @@ LayerTestResult<T, 4> SimpleTransposeTestImpl( AddInputToWorkload(data, info, inputTensorInfo, inputHandle.get()); AddOutputToWorkload(data, info, outputTensorInfo, outputHandle.get()); - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateTranspose(data, info); + std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateWorkload(armnn::LayerType::Transpose, + data, + info); inputHandle->Allocate(); outputHandle->Allocate(); diff --git a/src/backends/backendsCommon/test/layerTests/UnidirectionalSequenceLstmTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/UnidirectionalSequenceLstmTestImpl.cpp index e6b50f614a..66a26cc41d 100644 --- a/src/backends/backendsCommon/test/layerTests/UnidirectionalSequenceLstmTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/UnidirectionalSequenceLstmTestImpl.cpp @@ -169,7 +169,8 @@ LayerTestResult<T, 3> UnidirectionalSequenceLstmLayerFloat32TestImpl( data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = false; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -344,7 +345,8 @@ UnidirectionalSequenceLstmLayerFloat32TimeMajorTestImpl( data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = true; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -624,7 +626,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithP data.m_Parameters.m_ClippingThresCell = 10.0f; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -848,7 +851,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerNoCifgWithPeepholeWithP data.m_Parameters.m_TimeMajor = false; data.m_Parameters.m_ClippingThresCell = 10.0f; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1008,7 +1012,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmWithCifgWithPeepholeNoProjec data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = false; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1147,7 +1152,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8Test( data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = false; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1286,7 +1292,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8TimeMajorTest( data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = true; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1449,7 +1456,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeW data.m_Parameters.m_ClippingThresCell = 10.0f; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1640,7 +1648,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmLayerInt8NoCifgWithPeepholeW data.m_Parameters.m_TimeMajor = false; data.m_Parameters.m_ClippingThresCell = 10.0f; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); @@ -1776,7 +1785,8 @@ LayerTestResult<float, 3> UnidirectionalSequenceLstmInt8WithCifgWithPeepholeNoPr data.m_Parameters.m_ProjectionEnabled = false; data.m_Parameters.m_TimeMajor = false; - std::unique_ptr<armnn::IWorkload> workload = workloadFactory.CreateUnidirectionalSequenceLstm(data, info); + std::unique_ptr<armnn::IWorkload> workload + = workloadFactory.CreateWorkload(armnn::LayerType::UnidirectionalSequenceLstm, data, info); inputHandle->Allocate(); outputStateInHandle->Allocate(); cellStateInHandle->Allocate(); |