aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2018-10-12 15:09:53 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commit14766d76d06c43d9e4a16a319b0e720ff4318a64 (patch)
tree24a8a3a959a53844e1b1ce91813e02894d534859
parentcce11fc89c7e5e71d0595f94c2a37e1e5d47c643 (diff)
downloadarmnn-14766d76d06c43d9e4a16a319b0e720ff4318a64.tar.gz
IVGCVSW-1951 Remove type templating from NeonSplitterWorkload
Change-Id: Iace26e575d8eca50cc81a881b7bb5be46b00f1dc
-rw-r--r--src/backends/neon/NeonWorkloadFactory.cpp2
-rw-r--r--src/backends/neon/backend.mk2
-rw-r--r--src/backends/neon/test/NeonCreateWorkloadTests.cpp8
-rw-r--r--src/backends/neon/workloads/CMakeLists.txt6
-rw-r--r--src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp27
-rw-r--r--src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp17
-rw-r--r--src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp20
-rw-r--r--src/backends/neon/workloads/NeonSplitterUint8Workload.cpp17
-rw-r--r--src/backends/neon/workloads/NeonSplitterUint8Workload.hpp20
-rw-r--r--src/backends/neon/workloads/NeonSplitterWorkload.hpp24
-rw-r--r--src/backends/neon/workloads/NeonWorkloads.hpp4
11 files changed, 31 insertions, 116 deletions
diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp
index 0568c81f8f..0f386d129d 100644
--- a/src/backends/neon/NeonWorkloadFactory.cpp
+++ b/src/backends/neon/NeonWorkloadFactory.cpp
@@ -104,7 +104,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSoftmax(const SoftmaxQueue
std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<NeonSplitterFloatWorkload, NeonSplitterUint8Workload>(descriptor, info);
+ return std::make_unique<NeonSplitterWorkload>(descriptor, info);
}
std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk
index 4350297454..26bf33e2f5 100644
--- a/src/backends/neon/backend.mk
+++ b/src/backends/neon/backend.mk
@@ -38,7 +38,5 @@ BACKEND_SOURCES := \
workloads/NeonSoftmaxBaseWorkload.cpp \
workloads/NeonSoftmaxFloatWorkload.cpp \
workloads/NeonSoftmaxUint8Workload.cpp \
- workloads/NeonSplitterFloatWorkload.cpp \
- workloads/NeonSplitterUint8Workload.cpp \
workloads/NeonSubtractionFloatWorkload.cpp \
workloads/NeonWorkloadUtils.cpp
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
index 3f07ef0152..e8790c3ae2 100644
--- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp
+++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
@@ -433,7 +433,7 @@ BOOST_AUTO_TEST_CASE(CreateSplitterWorkload)
{
Graph graph;
NeonWorkloadFactory factory;
- auto workload = CreateSplitterWorkloadTest<NeonSplitterFloatWorkload, DataType::Float32>(factory, graph);
+ auto workload = CreateSplitterWorkloadTest<NeonSplitterWorkload, DataType::Float32>(factory, graph);
// Checks that outputs are as we expect them (see definition of CreateSplitterWorkloadTest).
SplitterQueueDescriptor queueDescriptor = workload->GetData();
@@ -462,7 +462,7 @@ BOOST_AUTO_TEST_CASE(CreateSplitterMerger)
NeonWorkloadFactory factory;
auto workloads =
- CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerWorkload,
+ CreateSplitterMergerWorkloadTest<NeonSplitterWorkload, NeonMergerWorkload,
DataType::Float32>(factory, graph);
auto wlSplitter = std::move(workloads.first);
@@ -491,13 +491,13 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
Graph graph;
NeonWorkloadFactory factory;
- std::unique_ptr<NeonSplitterFloatWorkload> wlSplitter;
+ std::unique_ptr<NeonSplitterWorkload> wlSplitter;
std::unique_ptr<NeonActivationWorkload> wlActiv0_0;
std::unique_ptr<NeonActivationWorkload> wlActiv0_1;
std::unique_ptr<NeonActivationWorkload> wlActiv1_0;
std::unique_ptr<NeonActivationWorkload> wlActiv1_1;
- CreateSplitterMultipleInputsOneOutputWorkloadTest<NeonSplitterFloatWorkload,
+ CreateSplitterMultipleInputsOneOutputWorkloadTest<NeonSplitterWorkload,
NeonActivationWorkload, DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1,
wlActiv1_0, wlActiv1_1);
diff --git a/src/backends/neon/workloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt
index 7c2247256d..7f912610ef 100644
--- a/src/backends/neon/workloads/CMakeLists.txt
+++ b/src/backends/neon/workloads/CMakeLists.txt
@@ -9,7 +9,6 @@ list(APPEND armnnNeonBackendWorkloads_sources
NeonAdditionFloatWorkload.cpp
NeonAdditionFloatWorkload.hpp
NeonBaseConstantWorkload.hpp
- NeonBaseSplitterWorkload.hpp
NeonBatchNormalizationFloatWorkload.cpp
NeonBatchNormalizationFloatWorkload.hpp
NeonConstantFloatWorkload.cpp
@@ -61,10 +60,7 @@ list(APPEND armnnNeonBackendWorkloads_sources
NeonSoftmaxFloatWorkload.hpp
NeonSoftmaxUint8Workload.cpp
NeonSoftmaxUint8Workload.hpp
- NeonSplitterFloatWorkload.cpp
- NeonSplitterFloatWorkload.hpp
- NeonSplitterUint8Workload.cpp
- NeonSplitterUint8Workload.hpp
+ NeonSplitterWorkload.hpp
NeonSubtractionFloatWorkload.cpp
NeonSubtractionFloatWorkload.hpp
NeonWorkloads.hpp
diff --git a/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp b/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
deleted file mode 100644
index dcee93363d..0000000000
--- a/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/Workload.hpp>
-#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-
-namespace armnn
-{
-
-// Base class template providing an implementation of the Splitter layer common to all data types.
-template <armnn::DataType... DataTypes>
-class NeonBaseSplitterWorkload : public TypedWorkload<SplitterQueueDescriptor, DataTypes...>
-{
-public:
- using TypedWorkload<SplitterQueueDescriptor, DataTypes...>::TypedWorkload;
-
- virtual void Execute() const override
- {
- // With subtensors, splitter is a no-op.
- }
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
deleted file mode 100644
index 39ed5b7cbc..0000000000
--- a/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonSplitterFloatWorkload.hpp"
-
-namespace armnn
-{
-
-void NeonSplitterFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonSplitterFloatWorkload_Execute");
- NeonBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
deleted file mode 100644
index 744a4fe216..0000000000
--- a/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonSplitterFloatWorkload : public NeonBaseSplitterWorkload<DataType::Float16, DataType::Float32>
-{
-public:
- using NeonBaseSplitterWorkload<DataType::Float16, DataType::Float32>::NeonBaseSplitterWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
deleted file mode 100644
index 4b2cf8fc91..0000000000
--- a/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonSplitterUint8Workload.hpp"
-
-namespace armnn
-{
-
-void NeonSplitterUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonSplitterUint8Workload_Execute");
- NeonBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
deleted file mode 100644
index f219cfaa7d..0000000000
--- a/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonSplitterUint8Workload : public NeonBaseSplitterWorkload<DataType::QuantisedAsymm8>
-{
-public:
- using NeonBaseSplitterWorkload<DataType::QuantisedAsymm8>::NeonBaseSplitterWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterWorkload.hpp b/src/backends/neon/workloads/NeonSplitterWorkload.hpp
new file mode 100644
index 0000000000..11c1767ea6
--- /dev/null
+++ b/src/backends/neon/workloads/NeonSplitterWorkload.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 NeonSplitterWorkload : public BaseWorkload<SplitterQueueDescriptor>
+{
+public:
+ using BaseWorkload<SplitterQueueDescriptor>::BaseWorkload;
+
+ virtual void Execute() const override
+ {
+ // With subtensors, splitter is a no-op.
+ }
+};
+
+} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonWorkloads.hpp b/src/backends/neon/workloads/NeonWorkloads.hpp
index c877c943f4..917b1feac3 100644
--- a/src/backends/neon/workloads/NeonWorkloads.hpp
+++ b/src/backends/neon/workloads/NeonWorkloads.hpp
@@ -7,7 +7,6 @@
#include "NeonActivationWorkload.hpp"
#include "NeonAdditionFloatWorkload.hpp"
#include "NeonBaseConstantWorkload.hpp"
-#include "NeonBaseSplitterWorkload.hpp"
#include "NeonBatchNormalizationFloatWorkload.hpp"
#include "NeonConstantFloatWorkload.hpp"
#include "NeonConstantUint8Workload.hpp"
@@ -32,6 +31,5 @@
#include "NeonReshapeWorkload.hpp"
#include "NeonSoftmaxFloatWorkload.hpp"
#include "NeonSoftmaxUint8Workload.hpp"
-#include "NeonSplitterFloatWorkload.hpp"
-#include "NeonSplitterUint8Workload.hpp"
+#include "NeonSplitterWorkload.hpp"
#include "NeonSubtractionFloatWorkload.hpp"