From a76698c34941ad5cf67fe114be05b038a31d98a7 Mon Sep 17 00:00:00 2001 From: Nattapat Chaimanowong Date: Thu, 11 Oct 2018 10:29:15 +0100 Subject: IVGCVSW-1951 Remove type templating from ClReshapeWorkload Change-Id: I5349629bc5b36e5b5029a158bf888c09c3bda4b0 --- src/backends/cl/ClWorkloadFactory.cpp | 2 +- src/backends/cl/backend.mk | 3 +- src/backends/cl/test/ClCreateWorkloadTests.cpp | 10 +++---- src/backends/cl/workloads/CMakeLists.txt | 6 ++-- .../cl/workloads/ClReshapeFloatWorkload.cpp | 33 ---------------------- .../cl/workloads/ClReshapeFloatWorkload.hpp | 28 ------------------ .../cl/workloads/ClReshapeUint8Workload.cpp | 31 -------------------- .../cl/workloads/ClReshapeUint8Workload.hpp | 29 ------------------- src/backends/cl/workloads/ClReshapeWorkload.cpp | 32 +++++++++++++++++++++ src/backends/cl/workloads/ClReshapeWorkload.hpp | 26 +++++++++++++++++ src/backends/cl/workloads/ClWorkloads.hpp | 3 +- 11 files changed, 68 insertions(+), 135 deletions(-) delete mode 100644 src/backends/cl/workloads/ClReshapeFloatWorkload.cpp delete mode 100644 src/backends/cl/workloads/ClReshapeFloatWorkload.hpp delete mode 100644 src/backends/cl/workloads/ClReshapeUint8Workload.cpp delete mode 100644 src/backends/cl/workloads/ClReshapeUint8Workload.hpp create mode 100644 src/backends/cl/workloads/ClReshapeWorkload.cpp create mode 100644 src/backends/cl/workloads/ClReshapeWorkload.hpp diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index fa86840e5f..499d13d8e1 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -229,7 +229,7 @@ std::unique_ptr ClWorkloadFactory::CreateConstant(const ConstantQueue std::unique_ptr ClWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info) const { - return MakeWorkload(descriptor, info); + return std::make_unique(descriptor, info); } std::unique_ptr ClWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor, diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk index 810bb20859..4375d9496c 100644 --- a/src/backends/cl/backend.mk +++ b/src/backends/cl/backend.mk @@ -30,8 +30,7 @@ BACKEND_SOURCES := \ workloads/ClPadWorkload.cpp \ workloads/ClPermuteWorkload.cpp \ workloads/ClPooling2dWorkload.cpp \ - workloads/ClReshapeFloatWorkload.cpp \ - workloads/ClReshapeUint8Workload.cpp \ + workloads/ClReshapeWorkload.cpp \ workloads/ClResizeBilinearFloatWorkload.cpp \ workloads/ClSoftmaxBaseWorkload.cpp \ workloads/ClSoftmaxFloatWorkload.cpp \ diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index 29f7cddc44..67f3e3c5bb 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -380,13 +380,13 @@ BOOST_AUTO_TEST_CASE(CreatePooling2dFloat16NhwcWorkload) ClPooling2dWorkloadTest(DataLayout::NHWC); } -template +template static void ClCreateReshapeWorkloadTest() { Graph graph; ClWorkloadFactory factory; - auto workload = CreateReshapeWorkloadTest(factory, graph); + auto workload = CreateReshapeWorkloadTest(factory, graph); // Checks that outputs and inputs are as we expect them (see definition of CreateReshapeWorkloadTest). ReshapeQueueDescriptor queueDescriptor = workload->GetData(); @@ -399,17 +399,17 @@ static void ClCreateReshapeWorkloadTest() BOOST_AUTO_TEST_CASE(CreateReshapeFloatWorkload) { - ClCreateReshapeWorkloadTest(); + ClCreateReshapeWorkloadTest(); } BOOST_AUTO_TEST_CASE(CreateReshapeFloat16Workload) { - ClCreateReshapeWorkloadTest(); + ClCreateReshapeWorkloadTest(); } BOOST_AUTO_TEST_CASE(CreateReshapeUint8Workload) { - ClCreateReshapeWorkloadTest(); + ClCreateReshapeWorkloadTest(); } template diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt index 222748b89a..5bd217295e 100644 --- a/src/backends/cl/workloads/CMakeLists.txt +++ b/src/backends/cl/workloads/CMakeLists.txt @@ -41,10 +41,8 @@ list(APPEND armnnClBackendWorkloads_sources ClPermuteWorkload.hpp ClPooling2dWorkload.cpp ClPooling2dWorkload.hpp - ClReshapeFloatWorkload.cpp - ClReshapeFloatWorkload.hpp - ClReshapeUint8Workload.cpp - ClReshapeUint8Workload.hpp + ClReshapeWorkload.cpp + ClReshapeWorkload.hpp ClResizeBilinearFloatWorkload.cpp ClResizeBilinearFloatWorkload.hpp ClSoftmaxBaseWorkload.cpp diff --git a/src/backends/cl/workloads/ClReshapeFloatWorkload.cpp b/src/backends/cl/workloads/ClReshapeFloatWorkload.cpp deleted file mode 100644 index 4da3bbd703..0000000000 --- a/src/backends/cl/workloads/ClReshapeFloatWorkload.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "ClReshapeFloatWorkload.hpp" -#include -#include - -#include "ClWorkloadUtils.hpp" - -namespace armnn -{ - -ClReshapeFloatWorkload::ClReshapeFloatWorkload(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info) - : FloatWorkload(descriptor, info) -{ - m_Data.ValidateInputsOutputs("ClReshapeFloatWorkload", 1, 1); - - arm_compute::ICLTensor& input = static_cast(m_Data.m_Inputs[0])->GetTensor(); - arm_compute::ICLTensor& output = static_cast(m_Data.m_Outputs[0])->GetTensor(); - - m_Layer.configure(&input, &output); -} - -void ClReshapeFloatWorkload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT_CL("ClReshapeFloatWorkload_Execute"); - m_Layer.run(); -} - -} //namespace armnn - diff --git a/src/backends/cl/workloads/ClReshapeFloatWorkload.hpp b/src/backends/cl/workloads/ClReshapeFloatWorkload.hpp deleted file mode 100644 index e5fc20ec8b..0000000000 --- a/src/backends/cl/workloads/ClReshapeFloatWorkload.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include - -#include - -namespace armnn -{ - -class ClReshapeFloatWorkload : public FloatWorkload -{ -public: - ClReshapeFloatWorkload(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info); - - void Execute() const override; - -private: - mutable arm_compute::CLReshapeLayer m_Layer; -}; - -} //namespace armnn - - diff --git a/src/backends/cl/workloads/ClReshapeUint8Workload.cpp b/src/backends/cl/workloads/ClReshapeUint8Workload.cpp deleted file mode 100644 index 8fbee151fc..0000000000 --- a/src/backends/cl/workloads/ClReshapeUint8Workload.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "ClReshapeUint8Workload.hpp" -#include -#include - -#include "ClWorkloadUtils.hpp" - -namespace armnn -{ -ClReshapeUint8Workload::ClReshapeUint8Workload(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info) - : Uint8Workload(descriptor, info) -{ - m_Data.ValidateInputsOutputs("ClReshapeUint8Workload", 1, 1); - - arm_compute::ICLTensor& input = static_cast(m_Data.m_Inputs[0])->GetTensor(); - arm_compute::ICLTensor& output = static_cast(m_Data.m_Outputs[0])->GetTensor(); - m_Layer.configure(&input, &output); -} - -void ClReshapeUint8Workload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT_CL("ClReshapeUint8Workload_Execute"); - - m_Layer.run(); -} - -} //namespace armnn diff --git a/src/backends/cl/workloads/ClReshapeUint8Workload.hpp b/src/backends/cl/workloads/ClReshapeUint8Workload.hpp deleted file mode 100644 index 654437a4c1..0000000000 --- a/src/backends/cl/workloads/ClReshapeUint8Workload.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include - -#include - -namespace armnn -{ - -// Reshape -class ClReshapeUint8Workload : public Uint8Workload -{ -public: - ClReshapeUint8Workload( const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info); - - void Execute() const override; - -private: - mutable arm_compute::CLReshapeLayer m_Layer; -}; - -} //namespace armnn - - diff --git a/src/backends/cl/workloads/ClReshapeWorkload.cpp b/src/backends/cl/workloads/ClReshapeWorkload.cpp new file mode 100644 index 0000000000..43a53cb7a1 --- /dev/null +++ b/src/backends/cl/workloads/ClReshapeWorkload.cpp @@ -0,0 +1,32 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "ClReshapeWorkload.hpp" +#include +#include + +#include "ClWorkloadUtils.hpp" + +namespace armnn +{ + +ClReshapeWorkload::ClReshapeWorkload(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info) + : BaseWorkload(descriptor, info) +{ + m_Data.ValidateInputsOutputs("ClReshapeWorkload", 1, 1); + + arm_compute::ICLTensor& input = static_cast(m_Data.m_Inputs[0])->GetTensor(); + arm_compute::ICLTensor& output = static_cast(m_Data.m_Outputs[0])->GetTensor(); + + m_Layer.configure(&input, &output); +} + +void ClReshapeWorkload::Execute() const +{ + ARMNN_SCOPED_PROFILING_EVENT_CL("ClReshapeWorkload_Execute"); + m_Layer.run(); +} + +} //namespace armnn diff --git a/src/backends/cl/workloads/ClReshapeWorkload.hpp b/src/backends/cl/workloads/ClReshapeWorkload.hpp new file mode 100644 index 0000000000..f949f764b2 --- /dev/null +++ b/src/backends/cl/workloads/ClReshapeWorkload.hpp @@ -0,0 +1,26 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include + +#include + +namespace armnn +{ + +class ClReshapeWorkload : public BaseWorkload +{ +public: + ClReshapeWorkload(const ReshapeQueueDescriptor& descriptor, const WorkloadInfo& info); + + void Execute() const override; + +private: + mutable arm_compute::CLReshapeLayer m_Layer; +}; + +} //namespace armnn diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp index e2dede68e2..63de744be5 100644 --- a/src/backends/cl/workloads/ClWorkloads.hpp +++ b/src/backends/cl/workloads/ClWorkloads.hpp @@ -21,8 +21,7 @@ #include "ClPermuteWorkload.hpp" #include "ClPadWorkload.hpp" #include "ClPooling2dWorkload.hpp" -#include "ClReshapeFloatWorkload.hpp" -#include "ClReshapeUint8Workload.hpp" +#include "ClReshapeWorkload.hpp" #include "ClResizeBilinearFloatWorkload.hpp" #include "ClSoftmaxFloatWorkload.hpp" #include "ClSoftmaxUint8Workload.hpp" -- cgit v1.2.1