aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Bentham <Matthew.Bentham@arm.com>2018-10-01 17:22:32 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:57 +0100
commit29cadb3ff3066d6feb1801a921be326bf5ed8f47 (patch)
treebe402a7460545383e1d5691b734886cae4dcf9af
parent857f3cb52712538a9341796f8b9cb1f76225ab64 (diff)
downloadarmnn-29cadb3ff3066d6feb1801a921be326bf5ed8f47.tar.gz
IVGCVSW-1951 Remove type templating from ClSplitterWorkload
Change-Id: Ib289ed5885e0e22ce6d73d7b3b3b103691187a34
-rw-r--r--src/backends/cl/ClWorkloadFactory.cpp2
-rw-r--r--src/backends/cl/backend.mk2
-rw-r--r--src/backends/cl/workloads/CMakeLists.txt6
-rw-r--r--src/backends/cl/workloads/ClSplitterFloatWorkload.cpp19
-rw-r--r--src/backends/cl/workloads/ClSplitterFloatWorkload.hpp20
-rw-r--r--src/backends/cl/workloads/ClSplitterUint8Workload.cpp19
-rw-r--r--src/backends/cl/workloads/ClSplitterUint8Workload.hpp21
-rw-r--r--src/backends/cl/workloads/ClSplitterWorkload.hpp (renamed from src/backends/cl/workloads/ClBaseSplitterWorkload.hpp)9
-rw-r--r--src/backends/cl/workloads/ClWorkloads.hpp3
-rw-r--r--src/backends/test/CreateWorkloadCl.cpp20
10 files changed, 16 insertions, 105 deletions
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp
index 0b7e539202..bf17382031 100644
--- a/src/backends/cl/ClWorkloadFactory.cpp
+++ b/src/backends/cl/ClWorkloadFactory.cpp
@@ -113,7 +113,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSoftmax(const SoftmaxQueueDe
std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<ClSplitterFloatWorkload, ClSplitterUint8Workload>(descriptor, info);
+ return std::make_unique<ClSplitterWorkload>(descriptor, info);
}
std::unique_ptr<armnn::IWorkload> ClWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index f54a8deff7..057089ebdb 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -46,6 +46,4 @@ BACKEND_SOURCES := \
workloads/ClSoftmaxBaseWorkload.cpp \
workloads/ClSoftmaxFloatWorkload.cpp \
workloads/ClSoftmaxUint8Workload.cpp \
- workloads/ClSplitterFloatWorkload.cpp \
- workloads/ClSplitterUint8Workload.cpp \
workloads/ClSubtractionWorkload.cpp
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 959d3e25df..9c48dc9e50 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -13,7 +13,6 @@ list(APPEND armnnClBackendWorkloads_sources
ClBaseConstantWorkload.cpp
ClBaseConstantWorkload.hpp
ClBaseMergerWorkload.hpp
- ClBaseSplitterWorkload.hpp
ClBatchNormalizationFloatWorkload.cpp
ClBatchNormalizationFloatWorkload.hpp
ClConstantFloatWorkload.cpp
@@ -76,10 +75,7 @@ list(APPEND armnnClBackendWorkloads_sources
ClSoftmaxFloatWorkload.hpp
ClSoftmaxUint8Workload.cpp
ClSoftmaxUint8Workload.hpp
- ClSplitterFloatWorkload.cpp
- ClSplitterFloatWorkload.hpp
- ClSplitterUint8Workload.cpp
- ClSplitterUint8Workload.hpp
+ ClSplitterWorkload.hpp
ClSubtractionWorkload.cpp
ClSubtractionWorkload.hpp
ClWorkloads.hpp
diff --git a/src/backends/cl/workloads/ClSplitterFloatWorkload.cpp b/src/backends/cl/workloads/ClSplitterFloatWorkload.cpp
deleted file mode 100644
index 5fd634bdb6..0000000000
--- a/src/backends/cl/workloads/ClSplitterFloatWorkload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClSplitterFloatWorkload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClSplitterFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClSplitterFloatWorkload_Execute");
- ClBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClSplitterFloatWorkload.hpp b/src/backends/cl/workloads/ClSplitterFloatWorkload.hpp
deleted file mode 100644
index a0b5846f8e..0000000000
--- a/src/backends/cl/workloads/ClSplitterFloatWorkload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-
-class ClSplitterFloatWorkload : public ClBaseSplitterWorkload<DataType::Float16, DataType::Float32>
-{
-public:
- using ClBaseSplitterWorkload<DataType::Float16, DataType::Float32>::ClBaseSplitterWorkload;
- virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClSplitterUint8Workload.cpp b/src/backends/cl/workloads/ClSplitterUint8Workload.cpp
deleted file mode 100644
index 50a251ada7..0000000000
--- a/src/backends/cl/workloads/ClSplitterUint8Workload.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClSplitterUint8Workload.hpp"
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClSplitterUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClSplitterUint8Workload_Execute");
- ClBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClSplitterUint8Workload.hpp b/src/backends/cl/workloads/ClSplitterUint8Workload.hpp
deleted file mode 100644
index 19e8be5034..0000000000
--- a/src/backends/cl/workloads/ClSplitterUint8Workload.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-class ClSplitterUint8Workload : public ClBaseSplitterWorkload<DataType::QuantisedAsymm8>
-{
-public:
- using ClBaseSplitterWorkload<DataType::QuantisedAsymm8>::ClBaseSplitterWorkload;
- virtual void Execute() const override;
-};
-} //namespace armnn
-
-
-
diff --git a/src/backends/cl/workloads/ClBaseSplitterWorkload.hpp b/src/backends/cl/workloads/ClSplitterWorkload.hpp
index 7fdcc84235..ffc02c047f 100644
--- a/src/backends/cl/workloads/ClBaseSplitterWorkload.hpp
+++ b/src/backends/cl/workloads/ClSplitterWorkload.hpp
@@ -7,21 +7,18 @@
#include <backends/Workload.hpp>
-#include <arm_compute/runtime/CL/CLFunctions.h>
-
namespace armnn
{
// Base class template providing an implementation of the Splitter layer common to all data types.
-template <armnn::DataType... DataTypes>
-class ClBaseSplitterWorkload : public TypedWorkload<SplitterQueueDescriptor, DataTypes...>
+class ClSplitterWorkload : public BaseWorkload<SplitterQueueDescriptor>
{
public:
- using TypedWorkload<SplitterQueueDescriptor, DataTypes...>::TypedWorkload;
+ using BaseWorkload<SplitterQueueDescriptor>::BaseWorkload;
void Execute() const override
{
- // With subtensors, merger is a no-op.
+ // With subtensors, splitter is a no-op.
}
};
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index c0625f6791..439ad2d989 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -34,8 +34,7 @@
#include "ClResizeBilinearFloatWorkload.hpp"
#include "ClSoftmaxFloatWorkload.hpp"
#include "ClSoftmaxUint8Workload.hpp"
-#include "ClSplitterFloatWorkload.hpp"
-#include "ClSplitterUint8Workload.hpp"
+#include "ClSplitterWorkload.hpp"
#include "ClSubtractionWorkload.hpp"
#include "ClConvertFp16ToFp32Workload.hpp"
#include "ClConvertFp32ToFp16Workload.hpp"
diff --git a/src/backends/test/CreateWorkloadCl.cpp b/src/backends/test/CreateWorkloadCl.cpp
index 9b68546c93..85999203f8 100644
--- a/src/backends/test/CreateWorkloadCl.cpp
+++ b/src/backends/test/CreateWorkloadCl.cpp
@@ -399,13 +399,13 @@ BOOST_AUTO_TEST_CASE(CreateSoftmaxFloat16WorkloadTest)
ClSoftmaxWorkloadTest<ClSoftmaxFloatWorkload, armnn::DataType::Float16>();
}
-template <typename SplitterWorkloadType, typename armnn::DataType DataType>
+template <typename armnn::DataType DataType>
static void ClSplitterWorkloadTest()
{
Graph graph;
ClWorkloadFactory factory;
- auto workload = CreateSplitterWorkloadTest<SplitterWorkloadType, DataType>(factory, graph);
+ auto workload = CreateSplitterWorkloadTest<ClSplitterWorkload, DataType>(factory, graph);
// Checks that outputs are as we expect them (see definition of CreateSplitterWorkloadTest).
SplitterQueueDescriptor queueDescriptor = workload->GetData();
@@ -426,15 +426,15 @@ static void ClSplitterWorkloadTest()
BOOST_AUTO_TEST_CASE(CreateSplitterFloatWorkload)
{
- ClSplitterWorkloadTest<ClSplitterFloatWorkload, armnn::DataType::Float32>();
+ ClSplitterWorkloadTest<armnn::DataType::Float32>();
}
BOOST_AUTO_TEST_CASE(CreateSplitterFloat16Workload)
{
- ClSplitterWorkloadTest<ClSplitterFloatWorkload, armnn::DataType::Float16>();
+ ClSplitterWorkloadTest<armnn::DataType::Float16>();
}
-template <typename SplitterWorkloadType, typename MergerWorkloadType, typename armnn::DataType DataType>
+template <typename MergerWorkloadType, typename armnn::DataType DataType>
static void ClSplitterMergerTest()
{
// Tests that it is possible to decide which output of the splitter layer
@@ -447,7 +447,7 @@ static void ClSplitterMergerTest()
ClWorkloadFactory factory;
auto workloads =
- CreateSplitterMergerWorkloadTest<SplitterWorkloadType, MergerWorkloadType, DataType>
+ CreateSplitterMergerWorkloadTest<ClSplitterWorkload, MergerWorkloadType, DataType>
(factory, graph);
auto wlSplitter = std::move(workloads.first);
@@ -478,12 +478,12 @@ static void ClSplitterMergerTest()
BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloatWorkload)
{
- ClSplitterMergerTest<ClSplitterFloatWorkload, ClMergerFloatWorkload, armnn::DataType::Float32>();
+ ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float32>();
}
BOOST_AUTO_TEST_CASE(CreateSplitterMergerFloat16Workload)
{
- ClSplitterMergerTest<ClSplitterFloatWorkload, ClMergerFloatWorkload, armnn::DataType::Float16>();
+ ClSplitterMergerTest<ClMergerFloatWorkload, armnn::DataType::Float16>();
}
@@ -494,13 +494,13 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
Graph graph;
ClWorkloadFactory factory;
- std::unique_ptr<ClSplitterFloatWorkload> wlSplitter;
+ std::unique_ptr<ClSplitterWorkload> wlSplitter;
std::unique_ptr<ClActivationFloatWorkload> wlActiv0_0;
std::unique_ptr<ClActivationFloatWorkload> wlActiv0_1;
std::unique_ptr<ClActivationFloatWorkload> wlActiv1_0;
std::unique_ptr<ClActivationFloatWorkload> wlActiv1_1;
- CreateSplitterMultipleInputsOneOutputWorkloadTest<ClSplitterFloatWorkload,
+ CreateSplitterMultipleInputsOneOutputWorkloadTest<ClSplitterWorkload,
ClActivationFloatWorkload, armnn::DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1,
wlActiv1_0, wlActiv1_1);