From 14766d76d06c43d9e4a16a319b0e720ff4318a64 Mon Sep 17 00:00:00 2001 From: Nattapat Chaimanowong Date: Fri, 12 Oct 2018 15:09:53 +0100 Subject: IVGCVSW-1951 Remove type templating from NeonSplitterWorkload Change-Id: Iace26e575d8eca50cc81a881b7bb5be46b00f1dc --- src/backends/neon/NeonWorkloadFactory.cpp | 2 +- src/backends/neon/backend.mk | 2 -- src/backends/neon/test/NeonCreateWorkloadTests.cpp | 8 +++---- src/backends/neon/workloads/CMakeLists.txt | 6 +---- .../neon/workloads/NeonBaseSplitterWorkload.hpp | 27 ---------------------- .../neon/workloads/NeonSplitterFloatWorkload.cpp | 17 -------------- .../neon/workloads/NeonSplitterFloatWorkload.hpp | 20 ---------------- .../neon/workloads/NeonSplitterUint8Workload.cpp | 17 -------------- .../neon/workloads/NeonSplitterUint8Workload.hpp | 20 ---------------- .../neon/workloads/NeonSplitterWorkload.hpp | 24 +++++++++++++++++++ src/backends/neon/workloads/NeonWorkloads.hpp | 4 +--- 11 files changed, 31 insertions(+), 116 deletions(-) delete mode 100644 src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp delete mode 100644 src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp delete mode 100644 src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp delete mode 100644 src/backends/neon/workloads/NeonSplitterUint8Workload.cpp delete mode 100644 src/backends/neon/workloads/NeonSplitterUint8Workload.hpp create mode 100644 src/backends/neon/workloads/NeonSplitterWorkload.hpp 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 NeonWorkloadFactory::CreateSoftmax(const SoftmaxQueue std::unique_ptr NeonWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor, const WorkloadInfo& info) const { - return MakeWorkload(descriptor, info); + return std::make_unique(descriptor, info); } std::unique_ptr 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(factory, graph); + auto workload = CreateSplitterWorkloadTest(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(factory, graph); auto wlSplitter = std::move(workloads.first); @@ -491,13 +491,13 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs) Graph graph; NeonWorkloadFactory factory; - std::unique_ptr wlSplitter; + std::unique_ptr wlSplitter; std::unique_ptr wlActiv0_0; std::unique_ptr wlActiv0_1; std::unique_ptr wlActiv1_0; std::unique_ptr wlActiv1_1; - CreateSplitterMultipleInputsOneOutputWorkloadTest(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 -#include - -namespace armnn -{ - -// Base class template providing an implementation of the Splitter layer common to all data types. -template -class NeonBaseSplitterWorkload : public TypedWorkload -{ -public: - using TypedWorkload::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 -{ -public: - using NeonBaseSplitterWorkload::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 -{ -public: - using NeonBaseSplitterWorkload::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 + +namespace armnn +{ + +class NeonSplitterWorkload : public BaseWorkload +{ +public: + using BaseWorkload::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" -- cgit v1.2.1