aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2018-10-11 15:39:18 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commite06757e605e4d0c5618dd58b4c8599dc96fabf7e (patch)
tree9caeb3ca5a40dc2c9eab6b3ee0c400afc1125be5
parent595408218a0e17f04d91ff131a8227a4f352ff61 (diff)
downloadarmnn-e06757e605e4d0c5618dd58b4c8599dc96fabf7e.tar.gz
IVGCVSW-1951 Remove type templating from ClActivationWorkload
Change-Id: I200adcef35b861a412e7beef8043d5c7dddba443
-rw-r--r--src/backends/cl/ClLayerSupport.cpp2
-rw-r--r--src/backends/cl/ClWorkloadFactory.cpp2
-rw-r--r--src/backends/cl/backend.mk3
-rw-r--r--src/backends/cl/test/ClCreateWorkloadTests.cpp18
-rw-r--r--src/backends/cl/workloads/CMakeLists.txt6
-rw-r--r--src/backends/cl/workloads/ClActivationUint8Workload.cpp44
-rw-r--r--src/backends/cl/workloads/ClActivationUint8Workload.hpp29
-rw-r--r--src/backends/cl/workloads/ClActivationWorkload.cpp (renamed from src/backends/cl/workloads/ClActivationFloatWorkload.cpp)21
-rw-r--r--src/backends/cl/workloads/ClActivationWorkload.hpp (renamed from src/backends/cl/workloads/ClActivationFloatWorkload.hpp)5
-rw-r--r--src/backends/cl/workloads/ClWorkloads.hpp3
10 files changed, 29 insertions, 104 deletions
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp
index 68563944b4..124fc8c230 100644
--- a/src/backends/cl/ClLayerSupport.cpp
+++ b/src/backends/cl/ClLayerSupport.cpp
@@ -12,7 +12,7 @@
#ifdef ARMCOMPUTECL_ENABLED
#include "workloads/ClAdditionWorkload.hpp"
-#include "workloads/ClActivationFloatWorkload.hpp"
+#include "workloads/ClActivationWorkload.hpp"
#include "workloads/ClBatchNormalizationFloatWorkload.hpp"
#include "workloads/ClConvertFp16ToFp32Workload.hpp"
#include "workloads/ClConvertFp32ToFp16Workload.hpp"
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp
index afb3720cdc..189509a6a5 100644
--- a/src/backends/cl/ClWorkloadFactory.cpp
+++ b/src/backends/cl/ClWorkloadFactory.cpp
@@ -100,7 +100,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateOutput(const OutputQueueDesc
std::unique_ptr<IWorkload> ClWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<ClActivationFloatWorkload, ClActivationUint8Workload>(descriptor, info);
+ return std::make_unique<ClActivationWorkload>(descriptor, info);
}
std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor,
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index e233bfbb7b..ac2e7718c9 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -12,8 +12,7 @@ BACKEND_SOURCES := \
ClContextControl.cpp \
ClLayerSupport.cpp \
ClWorkloadFactory.cpp \
- workloads/ClActivationFloatWorkload.cpp \
- workloads/ClActivationUint8Workload.cpp \
+ workloads/ClActivationWorkload.cpp \
workloads/ClAdditionWorkload.cpp \
workloads/ClBatchNormalizationFloatWorkload.cpp \
workloads/ClConstantWorkload.cpp \
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index 6ec89aa579..6ac47fd4d6 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -22,13 +22,13 @@ boost::test_tools::predicate_result CompareIClTensorHandleShape(IClTensorHandle*
BOOST_FIXTURE_TEST_SUITE(CreateWorkloadCl, ClContextControlFixture)
-template <typename ActivationWorkloadType, armnn::DataType DataType>
+template <armnn::DataType DataType>
static void ClCreateActivationWorkloadTest()
{
Graph graph;
ClWorkloadFactory factory;
- auto workload = CreateActivationWorkloadTest<ActivationWorkloadType, DataType>(factory, graph);
+ auto workload = CreateActivationWorkloadTest<ClActivationWorkload, DataType>(factory, graph);
// Checks that inputs/outputs are as we expect them (see definition of CreateActivationWorkloadTest).
ActivationQueueDescriptor queueDescriptor = workload->GetData();
@@ -41,12 +41,12 @@ static void ClCreateActivationWorkloadTest()
BOOST_AUTO_TEST_CASE(CreateActivationFloatWorkload)
{
- ClCreateActivationWorkloadTest<ClActivationFloatWorkload, armnn::DataType::Float32>();
+ ClCreateActivationWorkloadTest<armnn::DataType::Float32>();
}
BOOST_AUTO_TEST_CASE(CreateActivationFloat16Workload)
{
- ClCreateActivationWorkloadTest<ClActivationFloatWorkload, armnn::DataType::Float16>();
+ ClCreateActivationWorkloadTest<armnn::DataType::Float16>();
}
template <typename WorkloadType,
@@ -536,13 +536,13 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs)
Graph graph;
ClWorkloadFactory factory;
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;
+ std::unique_ptr<ClActivationWorkload> wlActiv0_0;
+ std::unique_ptr<ClActivationWorkload> wlActiv0_1;
+ std::unique_ptr<ClActivationWorkload> wlActiv1_0;
+ std::unique_ptr<ClActivationWorkload> wlActiv1_1;
CreateSplitterMultipleInputsOneOutputWorkloadTest<ClSplitterWorkload,
- ClActivationFloatWorkload, armnn::DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1,
+ ClActivationWorkload, armnn::DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1,
wlActiv1_0, wlActiv1_1);
//Checks that the index of inputs/outputs matches what we declared on InputDescriptor construction.
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 1e19bf5bf9..7ff04a774f 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -4,10 +4,8 @@
#
list(APPEND armnnClBackendWorkloads_sources
- ClActivationFloatWorkload.cpp
- ClActivationFloatWorkload.hpp
- ClActivationUint8Workload.cpp
- ClActivationUint8Workload.hpp
+ ClActivationWorkload.cpp
+ ClActivationWorkload.hpp
ClAdditionWorkload.cpp
ClAdditionWorkload.hpp
ClBaseMergerWorkload.hpp
diff --git a/src/backends/cl/workloads/ClActivationUint8Workload.cpp b/src/backends/cl/workloads/ClActivationUint8Workload.cpp
deleted file mode 100644
index ad6b73074b..0000000000
--- a/src/backends/cl/workloads/ClActivationUint8Workload.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClActivationUint8Workload.hpp"
-#include <backends/cl/ClLayerSupport.hpp>
-
-#include <backends/aclCommon/ArmComputeUtils.hpp>
-#include <backends/cl/ClTensorHandle.hpp>
-#include <backends/CpuTensorHandle.hpp>
-
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-ClActivationUint8Workload::ClActivationUint8Workload(const ActivationQueueDescriptor& descriptor,
- const WorkloadInfo& info)
- : Uint8Workload<ActivationQueueDescriptor>(descriptor, info)
-{
- auto activation = ConvertActivationFunctionToAclActivationFunction(m_Data.m_Parameters.m_Function);
- arm_compute::ActivationLayerInfo layerInfo(activation,
- m_Data.m_Parameters.m_A,
- m_Data.m_Parameters.m_B);
-
- m_Data.ValidateInputsOutputs("ClActivationUint8Workload", 1, 1);
-
- arm_compute::ICLTensor& input = static_cast<ClTensorHandle*>(m_Data.m_Inputs[0])->GetTensor();
- arm_compute::ICLTensor& output = static_cast<ClTensorHandle*>(m_Data.m_Outputs[0])->GetTensor();
-
- m_ActivationLayer.configure(&input, &output, layerInfo);
-}
-
-void ClActivationUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClActivationUint8Workload_Execute");
-
- m_ActivationLayer.run();
-}
-
-} //namespace Armnn
-
-
diff --git a/src/backends/cl/workloads/ClActivationUint8Workload.hpp b/src/backends/cl/workloads/ClActivationUint8Workload.hpp
deleted file mode 100644
index d0b7d3a78f..0000000000
--- a/src/backends/cl/workloads/ClActivationUint8Workload.hpp
+++ /dev/null
@@ -1,29 +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
-{
-
-// Activation layer execution.
-class ClActivationUint8Workload : public Uint8Workload<ActivationQueueDescriptor>
-{
-public:
- ClActivationUint8Workload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info);
- void Execute() const override;
-
-private:
- mutable arm_compute::CLActivationLayer m_ActivationLayer;
-};
-
-} //namespace armnn
-
-
-
diff --git a/src/backends/cl/workloads/ClActivationFloatWorkload.cpp b/src/backends/cl/workloads/ClActivationWorkload.cpp
index cbaac9d226..426af9f16d 100644
--- a/src/backends/cl/workloads/ClActivationFloatWorkload.cpp
+++ b/src/backends/cl/workloads/ClActivationWorkload.cpp
@@ -3,12 +3,15 @@
// SPDX-License-Identifier: MIT
//
-#include "ClActivationFloatWorkload.hpp"
-#include <backends/cl/ClTensorHandle.hpp>
-#include <backends/aclCommon/ArmComputeUtils.hpp>
+#include "ClActivationWorkload.hpp"
#include "ClWorkloadUtils.hpp"
+#include <backends/CpuTensorHandle.hpp>
+#include <backends/cl/ClLayerSupport.hpp>
+#include <backends/cl/ClTensorHandle.hpp>
+#include <backends/aclCommon/ArmComputeUtils.hpp>
+
namespace armnn
{
arm_compute::Status ClActivationWorkloadValidate(const TensorInfo& input,
@@ -33,11 +36,11 @@ arm_compute::Status ClActivationWorkloadValidate(const TensorInfo& input,
activationLayerInfo);
}
-ClActivationFloatWorkload::ClActivationFloatWorkload(const ActivationQueueDescriptor& descriptor,
- const WorkloadInfo& info)
- : FloatWorkload<ActivationQueueDescriptor>(descriptor, info)
+ClActivationWorkload::ClActivationWorkload(const ActivationQueueDescriptor& descriptor,
+ const WorkloadInfo& info)
+ : BaseWorkload<ActivationQueueDescriptor>(descriptor, info)
{
- m_Data.ValidateInputsOutputs("ClActivationFloatWorkload", 1, 1);
+ m_Data.ValidateInputsOutputs("ClActivationWorkload", 1, 1);
const arm_compute::ActivationLayerInfo activationLayerInfo =
ConvertActivationDescriptorToAclActivationLayerInfo(m_Data.m_Parameters);
@@ -47,9 +50,9 @@ ClActivationFloatWorkload::ClActivationFloatWorkload(const ActivationQueueDescri
m_ActivationLayer.configure(&input, &output, activationLayerInfo);
}
-void ClActivationFloatWorkload::Execute() const
+void ClActivationWorkload::Execute() const
{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClActivationFloatWorkload_Execute");
+ ARMNN_SCOPED_PROFILING_EVENT_CL("ClActivationWorkload_Execute");
m_ActivationLayer.run();
}
diff --git a/src/backends/cl/workloads/ClActivationFloatWorkload.hpp b/src/backends/cl/workloads/ClActivationWorkload.hpp
index cb560a791b..c1f6de2601 100644
--- a/src/backends/cl/workloads/ClActivationFloatWorkload.hpp
+++ b/src/backends/cl/workloads/ClActivationWorkload.hpp
@@ -15,11 +15,10 @@ arm_compute::Status ClActivationWorkloadValidate(const TensorInfo& input,
const TensorInfo& output,
const ActivationDescriptor& descriptor);
-// Activation layer execution.
-class ClActivationFloatWorkload : public FloatWorkload<ActivationQueueDescriptor>
+class ClActivationWorkload : public BaseWorkload<ActivationQueueDescriptor>
{
public:
- ClActivationFloatWorkload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info);
+ ClActivationWorkload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info);
void Execute() const override;
private:
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index e03f6a5955..a01d9d809c 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -4,8 +4,7 @@
//
#pragma once
-#include "ClActivationFloatWorkload.hpp"
-#include "ClActivationUint8Workload.hpp"
+#include "ClActivationWorkload.hpp"
#include "ClAdditionWorkload.hpp"
#include "ClConstantWorkload.hpp"
#include "ClBaseMergerWorkload.hpp"