std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<NeonMergerFloatWorkload, NeonMergerUint8Workload>(descriptor, info);
+ return std::make_unique<NeonMergerWorkload>(descriptor, info);
}
std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateFullyConnected(
workloads/NeonFullyConnectedWorkload.cpp \
workloads/NeonL2NormalizationFloatWorkload.cpp \
workloads/NeonLstmFloatWorkload.cpp \
- workloads/NeonMergerFloatWorkload.cpp \
- workloads/NeonMergerUint8Workload.cpp \
workloads/NeonMultiplicationFloatWorkload.cpp \
workloads/NeonNormalizationFloatWorkload.cpp \
workloads/NeonPermuteWorkload.cpp \
NeonWorkloadFactory factory;
auto workloads =
- CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerFloatWorkload,
+ CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerWorkload,
DataType::Float32>(factory, graph);
auto wlSplitter = std::move(workloads.first);
NeonAdditionFloatWorkload.cpp
NeonAdditionFloatWorkload.hpp
NeonBaseConstantWorkload.hpp
- NeonBaseMergerWorkload.hpp
NeonBaseSplitterWorkload.hpp
NeonBatchNormalizationFloatWorkload.cpp
NeonBatchNormalizationFloatWorkload.hpp
NeonL2NormalizationFloatWorkload.hpp
NeonLstmFloatWorkload.cpp
NeonLstmFloatWorkload.hpp
- NeonMergerFloatWorkload.cpp
- NeonMergerFloatWorkload.hpp
- NeonMergerUint8Workload.cpp
- NeonMergerUint8Workload.hpp
+ NeonMergerWorkload.hpp
NeonMultiplicationFloatWorkload.cpp
NeonMultiplicationFloatWorkload.hpp
NeonNormalizationFloatWorkload.cpp
+++ /dev/null
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-#include <backends/Workload.hpp>
-
-namespace armnn
-{
-// Base class template providing an implementation of the Merger layer common to all data types.
-template <armnn::DataType... DataTypes>
-class NeonBaseMergerWorkload : public TypedWorkload<MergerQueueDescriptor, DataTypes...>
-{
-public:
- using TypedWorkload<MergerQueueDescriptor, DataTypes...>::TypedWorkload;
-
- virtual void Execute() const override
- {
- // With subtensors, merger is a no-op.
- }
-};
-
-} //namespace armnn
+++ /dev/null
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonMergerFloatWorkload.hpp"
-
-namespace armnn
-{
-
-void NeonMergerFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonMergerFloatWorkload_Execute");
- NeonBaseMergerWorkload::Execute();
-}
-
-} // namespace armnn
+++ /dev/null
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonMergerFloatWorkload : public NeonBaseMergerWorkload<DataType::Float16, DataType::Float32>
-{
-public:
- using NeonBaseMergerWorkload<DataType::Float16, DataType::Float32>::NeonBaseMergerWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
+++ /dev/null
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonMergerUint8Workload.hpp"
-
-namespace armnn
-{
-
-void NeonMergerUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonMergerUint8Workload_Execute");
- NeonBaseMergerWorkload::Execute();
-}
-
-} // namespace armnn
+++ /dev/null
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonMergerUint8Workload : public NeonBaseMergerWorkload<DataType::QuantisedAsymm8>
-{
-public:
- using NeonBaseMergerWorkload<DataType::QuantisedAsymm8>::NeonBaseMergerWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
--- /dev/null
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/Workload.hpp>
+
+namespace armnn
+{
+class NeonMergerWorkload : public BaseWorkload<MergerQueueDescriptor>
+{
+public:
+ using BaseWorkload<MergerQueueDescriptor>::BaseWorkload;
+
+ virtual void Execute() const override
+ {
+ // With subtensors, merger is a no-op.
+ }
+};
+
+} //namespace armnn
#include "NeonActivationWorkload.hpp"
#include "NeonAdditionFloatWorkload.hpp"
#include "NeonBaseConstantWorkload.hpp"
-#include "NeonBaseMergerWorkload.hpp"
#include "NeonBaseSplitterWorkload.hpp"
#include "NeonBatchNormalizationFloatWorkload.hpp"
#include "NeonConstantFloatWorkload.hpp"
#include "NeonFullyConnectedWorkload.hpp"
#include "NeonL2NormalizationFloatWorkload.hpp"
#include "NeonLstmFloatWorkload.hpp"
-#include "NeonMergerFloatWorkload.hpp"
-#include "NeonMergerUint8Workload.hpp"
+#include "NeonMergerWorkload.hpp"
#include "NeonMultiplicationFloatWorkload.hpp"
#include "NeonNormalizationFloatWorkload.hpp"
#include "NeonPermuteWorkload.hpp"