aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2018-10-11 16:16:17 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commit02f8bc10bc670dd694eeda2db8e0a43a1c84320b (patch)
tree744d662eeeef188bdb2e0a1a1934c5e221d92422
parente06757e605e4d0c5618dd58b4c8599dc96fabf7e (diff)
downloadarmnn-02f8bc10bc670dd694eeda2db8e0a43a1c84320b.tar.gz
IVGCVSW-1951 Remove type templating from ClMergerWorkload
Change-Id: I8580f5d1612567a3b02cfccfd1f8d0f196eeda93
-rw-r--r--src/backends/cl/ClWorkloadFactory.cpp2
-rw-r--r--src/backends/cl/backend.mk2
-rw-r--r--src/backends/cl/test/ClCreateWorkloadTests.cpp8
-rw-r--r--src/backends/cl/workloads/CMakeLists.txt6
-rw-r--r--src/backends/cl/workloads/ClBaseMergerWorkload.hpp28
-rw-r--r--src/backends/cl/workloads/ClMergerFloatWorkload.cpp20
-rw-r--r--src/backends/cl/workloads/ClMergerFloatWorkload.hpp22
-rw-r--r--src/backends/cl/workloads/ClMergerUint8Workload.cpp19
-rw-r--r--src/backends/cl/workloads/ClMergerUint8Workload.hpp21
-rw-r--r--src/backends/cl/workloads/ClMergerWorkload.hpp24
-rw-r--r--src/backends/cl/workloads/ClWorkloads.hpp4
11 files changed, 31 insertions, 125 deletions
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp
index 189509a6a5..d293759bc9 100644
--- a/src/backends/cl/ClWorkloadFactory.cpp
+++ b/src/backends/cl/ClWorkloadFactory.cpp
@@ -119,7 +119,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSplitter(const SplitterQueue
std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<ClMergerFloatWorkload, ClMergerUint8Workload>(descriptor, info);
+ return std::make_unique<ClMergerWorkload>(descriptor, info);
}
std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateFullyConnected(
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index ac2e7718c9..d5aa945ee2 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -25,8 +25,6 @@ BACKEND_SOURCES := \
workloads/ClFullyConnectedWorkload.cpp \
workloads/ClL2NormalizationFloatWorkload.cpp \
workloads/ClLstmFloatWorkload.cpp \
- workloads/ClMergerFloatWorkload.cpp \
- workloads/ClMergerUint8Workload.cpp \
workloads/ClMultiplicationWorkload.cpp \
workloads/ClNormalizationFloatWorkload.cpp \
workloads/ClPadWorkload.cpp \
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index 6ac47fd4d6..d3bae440bd 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -475,7 +475,7 @@ BOOST_AUTO_TEST_CASE(CreateSplitterFloat16Workload)
ClSplitterWorkloadTest<armnn::DataType::Float16>();
}
-template <typename MergerWorkloadType, typename armnn::DataType DataType>
+template <typename armnn::DataType DataType>
static void ClSplitterMergerTest()
{
// Tests that it is possible to decide which output of the splitter layer
@@ -488,7 +488,7 @@ static void ClSplitterMergerTest()
ClWorkloadFactory factory;
auto workloads =
- CreateSplitterMergerWorkloadTest<ClSplitterWorkload, MergerWorkloadType, DataType>
+ CreateSplitterMergerWorkloadTest<ClSplitterWorkload, ClMergerWorkload, DataType>
(factory, graph);
auto wlSplitter = std::move(workloads.first);
@@ -519,12 +519,12 @@ static void ClSplitterMergerTest()
BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloatWorkload)
{
- ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float32>();
+ ClSplitterMergerTest<armnn::DataType::Float32>();
}
BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloat16Workload)
{
- ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float16>();
+ ClSplitterMergerTest<armnn::DataType::Float16>();
}
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 7ff04a774f..e7877f2d45 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -8,7 +8,6 @@ list(APPEND armnnClBackendWorkloads_sources
ClActivationWorkload.hpp
ClAdditionWorkload.cpp
ClAdditionWorkload.hpp
- ClBaseMergerWorkload.hpp
ClBatchNormalizationFloatWorkload.cpp
ClBatchNormalizationFloatWorkload.hpp
ClConstantWorkload.cpp
@@ -31,10 +30,7 @@ list(APPEND armnnClBackendWorkloads_sources
ClL2NormalizationFloatWorkload.hpp
ClLstmFloatWorkload.cpp
ClLstmFloatWorkload.hpp
- ClMergerFloatWorkload.cpp
- ClMergerFloatWorkload.hpp
- ClMergerUint8Workload.cpp
- ClMergerUint8Workload.hpp
+ ClMergerWorkload.hpp
ClMultiplicationWorkload.cpp
ClMultiplicationWorkload.hpp
ClNormalizationFloatWorkload.cpp
diff --git a/src/backends/cl/workloads/ClBaseMergerWorkload.hpp b/src/backends/cl/workloads/ClBaseMergerWorkload.hpp
deleted file mode 100644
index f8ff6f9379..0000000000
--- a/src/backends/cl/workloads/ClBaseMergerWorkload.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/Workload.hpp>
-
-#include <arm_compute/runtime/CL/CLFunctions.h>
-
-namespace armnn
-{
-
-// Base class template providing an implementation of the Merger layer common to all data types.
-template <armnn::DataType... DataTypes>
-class ClBaseMergerWorkload : public TypedWorkload<MergerQueueDescriptor, DataTypes...>
-{
-public:
- using TypedWorkload<MergerQueueDescriptor, DataTypes...>::TypedWorkload;
-
- void Execute() const override
- {
- // With subtensors, merger is a no-op.
- }
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClMergerFloatWorkload.cpp b/src/backends/cl/workloads/ClMergerFloatWorkload.cpp
deleted file mode 100644
index 151f1e0ee7..0000000000
--- a/src/backends/cl/workloads/ClMergerFloatWorkload.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClMergerFloatWorkload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClMergerFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClMergerFloatWorkload_Execute");
- ClBaseMergerWorkload::Execute();
-}
-
-} //namespace armnn
-
diff --git a/src/backends/cl/workloads/ClMergerFloatWorkload.hpp b/src/backends/cl/workloads/ClMergerFloatWorkload.hpp
deleted file mode 100644
index 9782f7a8f3..0000000000
--- a/src/backends/cl/workloads/ClMergerFloatWorkload.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class ClMergerFloatWorkload : public ClBaseMergerWorkload<DataType::Float16, DataType::Float32>
-{
-public:
- using ClBaseMergerWorkload<DataType::Float16, DataType::Float32>::ClBaseMergerWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
-
-
diff --git a/src/backends/cl/workloads/ClMergerUint8Workload.cpp b/src/backends/cl/workloads/ClMergerUint8Workload.cpp
deleted file mode 100644
index 9d1060d857..0000000000
--- a/src/backends/cl/workloads/ClMergerUint8Workload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClMergerUint8Workload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClMergerUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClMergerUint8Workload_Execute");
- ClBaseMergerWorkload<DataType::QuantisedAsymm8>::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClMergerUint8Workload.hpp b/src/backends/cl/workloads/ClMergerUint8Workload.hpp
deleted file mode 100644
index cbfc19a0f2..0000000000
--- a/src/backends/cl/workloads/ClMergerUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseMergerWorkload.hpp"
-
-namespace armnn
-{
-
-class ClMergerUint8Workload : public ClBaseMergerWorkload<armnn::DataType::QuantisedAsymm8>
-{
-public:
- using ClBaseMergerWorkload<armnn::DataType::QuantisedAsymm8>::ClBaseMergerWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
-
diff --git a/src/backends/cl/workloads/ClMergerWorkload.hpp b/src/backends/cl/workloads/ClMergerWorkload.hpp
new file mode 100644
index 0000000000..a6deb2e2b3
--- /dev/null
+++ b/src/backends/cl/workloads/ClMergerWorkload.hpp
@@ -0,0 +1,24 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/Workload.hpp>
+
+namespace armnn
+{
+
+class ClMergerWorkload : public BaseWorkload<MergerQueueDescriptor>
+{
+public:
+ using BaseWorkload<MergerQueueDescriptor>::BaseWorkload;
+
+ void Execute() const override
+ {
+ // With subtensors, merger is a no-op.
+ }
+};
+
+} //namespace armnn
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index a01d9d809c..8257218291 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -7,7 +7,6 @@
#include "ClActivationWorkload.hpp"
#include "ClAdditionWorkload.hpp"
#include "ClConstantWorkload.hpp"
-#include "ClBaseMergerWorkload.hpp"
#include "ClBatchNormalizationFloatWorkload.hpp"
#include "ClConvolution2dWorkload.hpp"
#include "ClDepthwiseConvolutionWorkload.hpp"
@@ -16,8 +15,7 @@
#include "ClFullyConnectedWorkload.hpp"
#include "ClL2NormalizationFloatWorkload.hpp"
#include "ClLstmFloatWorkload.hpp"
-#include "ClMergerFloatWorkload.hpp"
-#include "ClMergerUint8Workload.hpp"
+#include "ClMergerWorkload.hpp"
#include "ClMultiplicationWorkload.hpp"
#include "ClNormalizationFloatWorkload.hpp"
#include "ClPermuteWorkload.hpp"