IVGCVSW-1951 Remove type templating from NeonMergerWorkload
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>
Fri, 12 Oct 2018 12:54:09 +0000 (13:54 +0100)
committerMatthew Bentham <matthew.bentham@arm.com>
Mon, 22 Oct 2018 15:57:53 +0000 (16:57 +0100)
Change-Id: I284a9aa6865cdbd6975c54b011d2cec15a174e79

src/backends/neon/NeonWorkloadFactory.cpp
src/backends/neon/backend.mk
src/backends/neon/test/NeonCreateWorkloadTests.cpp
src/backends/neon/workloads/CMakeLists.txt
src/backends/neon/workloads/NeonBaseMergerWorkload.hpp [deleted file]
src/backends/neon/workloads/NeonMergerFloatWorkload.cpp [deleted file]
src/backends/neon/workloads/NeonMergerFloatWorkload.hpp [deleted file]
src/backends/neon/workloads/NeonMergerUint8Workload.cpp [deleted file]
src/backends/neon/workloads/NeonMergerUint8Workload.hpp [deleted file]
src/backends/neon/workloads/NeonMergerWorkload.hpp [new file with mode: 0644]
src/backends/neon/workloads/NeonWorkloads.hpp

index f17c80e..8202afa 100644 (file)
@@ -110,7 +110,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSplitter(const SplitterQue
 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(
index f3c1843..709497e 100644 (file)
@@ -28,8 +28,6 @@ BACKEND_SOURCES := \
         workloads/NeonFullyConnectedWorkload.cpp \
         workloads/NeonL2NormalizationFloatWorkload.cpp \
         workloads/NeonLstmFloatWorkload.cpp \
-        workloads/NeonMergerFloatWorkload.cpp \
-        workloads/NeonMergerUint8Workload.cpp \
         workloads/NeonMultiplicationFloatWorkload.cpp \
         workloads/NeonNormalizationFloatWorkload.cpp \
         workloads/NeonPermuteWorkload.cpp \
index 8a85e7d..244002f 100644 (file)
@@ -423,7 +423,7 @@ BOOST_AUTO_TEST_CASE(CreateSplitterMerger)
     NeonWorkloadFactory factory;
 
     auto workloads =
-        CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerFloatWorkload,
+        CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerWorkload,
             DataType::Float32>(factory, graph);
 
     auto wlSplitter = std::move(workloads.first);
index 460b870..06eb504 100644 (file)
@@ -9,7 +9,6 @@ list(APPEND armnnNeonBackendWorkloads_sources
     NeonAdditionFloatWorkload.cpp
     NeonAdditionFloatWorkload.hpp
     NeonBaseConstantWorkload.hpp
-    NeonBaseMergerWorkload.hpp
     NeonBaseSplitterWorkload.hpp
     NeonBatchNormalizationFloatWorkload.cpp
     NeonBatchNormalizationFloatWorkload.hpp
@@ -41,10 +40,7 @@ list(APPEND armnnNeonBackendWorkloads_sources
     NeonL2NormalizationFloatWorkload.hpp
     NeonLstmFloatWorkload.cpp
     NeonLstmFloatWorkload.hpp
-    NeonMergerFloatWorkload.cpp
-    NeonMergerFloatWorkload.hpp
-    NeonMergerUint8Workload.cpp
-    NeonMergerUint8Workload.hpp
+    NeonMergerWorkload.hpp
     NeonMultiplicationFloatWorkload.cpp
     NeonMultiplicationFloatWorkload.hpp
     NeonNormalizationFloatWorkload.cpp
diff --git a/src/backends/neon/workloads/NeonBaseMergerWorkload.hpp b/src/backends/neon/workloads/NeonBaseMergerWorkload.hpp
deleted file mode 100644 (file)
index 9ff09f6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// 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
diff --git a/src/backends/neon/workloads/NeonMergerFloatWorkload.cpp b/src/backends/neon/workloads/NeonMergerFloatWorkload.cpp
deleted file mode 100644 (file)
index 79039aa..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// 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
diff --git a/src/backends/neon/workloads/NeonMergerFloatWorkload.hpp b/src/backends/neon/workloads/NeonMergerFloatWorkload.hpp
deleted file mode 100644 (file)
index e7088b8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// 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
diff --git a/src/backends/neon/workloads/NeonMergerUint8Workload.cpp b/src/backends/neon/workloads/NeonMergerUint8Workload.cpp
deleted file mode 100644 (file)
index 3989702..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// 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
diff --git a/src/backends/neon/workloads/NeonMergerUint8Workload.hpp b/src/backends/neon/workloads/NeonMergerUint8Workload.hpp
deleted file mode 100644 (file)
index 73c0fd5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// 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
diff --git a/src/backends/neon/workloads/NeonMergerWorkload.hpp b/src/backends/neon/workloads/NeonMergerWorkload.hpp
new file mode 100644 (file)
index 0000000..ce7241d
--- /dev/null
@@ -0,0 +1,23 @@
+//
+// 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
index db2df18..d5a76b4 100644 (file)
@@ -7,7 +7,6 @@
 #include "NeonActivationWorkload.hpp"
 #include "NeonAdditionFloatWorkload.hpp"
 #include "NeonBaseConstantWorkload.hpp"
-#include "NeonBaseMergerWorkload.hpp"
 #include "NeonBaseSplitterWorkload.hpp"
 #include "NeonBatchNormalizationFloatWorkload.hpp"
 #include "NeonConstantFloatWorkload.hpp"
@@ -23,8 +22,7 @@
 #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"