aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2018-10-10 14:51:27 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commit55b1cda7d242ceb22963fd40370c2e6dbbb074ba (patch)
tree5005cb3411de2d2a3b10eeb785ca9da4b39f2a87
parentf1153cd864805ad2ed1197a9667e333dc38b8873 (diff)
downloadarmnn-55b1cda7d242ceb22963fd40370c2e6dbbb074ba.tar.gz
IVGCVSW-1951 Remove type templating from ClConstantWorkload
Change-Id: Ib2c9fe56c59aedabeff899a81a0afe260bd57c9f
-rw-r--r--src/backends/cl/ClWorkloadFactory.cpp2
-rw-r--r--src/backends/cl/backend.mk4
-rw-r--r--src/backends/cl/workloads/CMakeLists.txt8
-rw-r--r--src/backends/cl/workloads/ClBaseConstantWorkload.hpp30
-rw-r--r--src/backends/cl/workloads/ClConstantFloatWorkload.cpp18
-rw-r--r--src/backends/cl/workloads/ClConstantFloatWorkload.hpp20
-rw-r--r--src/backends/cl/workloads/ClConstantUint8Workload.cpp18
-rw-r--r--src/backends/cl/workloads/ClConstantUint8Workload.hpp20
-rw-r--r--src/backends/cl/workloads/ClConstantWorkload.cpp (renamed from src/backends/cl/workloads/ClBaseConstantWorkload.cpp)15
-rw-r--r--src/backends/cl/workloads/ClConstantWorkload.hpp25
-rw-r--r--src/backends/cl/workloads/ClWorkloads.hpp4
11 files changed, 39 insertions, 125 deletions
diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp
index 6315b5ab49..afb3720cdc 100644
--- a/src/backends/cl/ClWorkloadFactory.cpp
+++ b/src/backends/cl/ClWorkloadFactory.cpp
@@ -223,7 +223,7 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateL2Normalization(const L2Norm
std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConstant(const ConstantQueueDescriptor& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkload<ClConstantFloatWorkload, ClConstantUint8Workload>(descriptor, info);
+ return std::make_unique<ClConstantWorkload>(descriptor, info);
}
std::unique_ptr<IWorkload> ClWorkloadFactory::CreateReshape(const ReshapeQueueDescriptor& descriptor,
diff --git a/src/backends/cl/backend.mk b/src/backends/cl/backend.mk
index 04b8b9e69c..e233bfbb7b 100644
--- a/src/backends/cl/backend.mk
+++ b/src/backends/cl/backend.mk
@@ -15,10 +15,8 @@ BACKEND_SOURCES := \
workloads/ClActivationFloatWorkload.cpp \
workloads/ClActivationUint8Workload.cpp \
workloads/ClAdditionWorkload.cpp \
- workloads/ClBaseConstantWorkload.cpp \
workloads/ClBatchNormalizationFloatWorkload.cpp \
- workloads/ClConstantFloatWorkload.cpp \
- workloads/ClConstantUint8Workload.cpp \
+ workloads/ClConstantWorkload.cpp \
workloads/ClConvertFp16ToFp32Workload.cpp \
workloads/ClConvertFp32ToFp16Workload.cpp \
workloads/ClConvolution2dWorkload.cpp \
diff --git a/src/backends/cl/workloads/CMakeLists.txt b/src/backends/cl/workloads/CMakeLists.txt
index 4d1c1bf5c3..1e19bf5bf9 100644
--- a/src/backends/cl/workloads/CMakeLists.txt
+++ b/src/backends/cl/workloads/CMakeLists.txt
@@ -10,15 +10,11 @@ list(APPEND armnnClBackendWorkloads_sources
ClActivationUint8Workload.hpp
ClAdditionWorkload.cpp
ClAdditionWorkload.hpp
- ClBaseConstantWorkload.cpp
- ClBaseConstantWorkload.hpp
ClBaseMergerWorkload.hpp
ClBatchNormalizationFloatWorkload.cpp
ClBatchNormalizationFloatWorkload.hpp
- ClConstantFloatWorkload.cpp
- ClConstantFloatWorkload.hpp
- ClConstantUint8Workload.cpp
- ClConstantUint8Workload.hpp
+ ClConstantWorkload.cpp
+ ClConstantWorkload.hpp
ClConvertFp16ToFp32Workload.cpp
ClConvertFp16ToFp32Workload.hpp
ClConvertFp32ToFp16Workload.cpp
diff --git a/src/backends/cl/workloads/ClBaseConstantWorkload.hpp b/src/backends/cl/workloads/ClBaseConstantWorkload.hpp
deleted file mode 100644
index f7a23a9162..0000000000
--- a/src/backends/cl/workloads/ClBaseConstantWorkload.hpp
+++ /dev/null
@@ -1,30 +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
-{
-template <armnn::DataType... DataTypes>
-class ClBaseConstantWorkload : public TypedWorkload<ConstantQueueDescriptor, DataTypes...>
-{
-public:
- ClBaseConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
- : TypedWorkload<ConstantQueueDescriptor, DataTypes...>(descriptor, info)
- , m_RanOnce(false)
- {
- }
-
- void Execute() const override;
-
-private:
- mutable bool m_RanOnce;
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantFloatWorkload.cpp b/src/backends/cl/workloads/ClConstantFloatWorkload.cpp
deleted file mode 100644
index 1565047c22..0000000000
--- a/src/backends/cl/workloads/ClConstantFloatWorkload.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClConstantFloatWorkload.hpp"
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClConstantFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantFloatWorkload_Execute");
- ClBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantFloatWorkload.hpp b/src/backends/cl/workloads/ClConstantFloatWorkload.hpp
deleted file mode 100644
index 0cbeaad9ea..0000000000
--- a/src/backends/cl/workloads/ClConstantFloatWorkload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-class ClConstantFloatWorkload : public ClBaseConstantWorkload<DataType::Float16, DataType::Float32>
-{
-public:
- using ClBaseConstantWorkload<DataType::Float16, DataType::Float32>::ClBaseConstantWorkload;
- void Execute() const override;
-};
-
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantUint8Workload.cpp b/src/backends/cl/workloads/ClConstantUint8Workload.cpp
deleted file mode 100644
index a5ef0321cd..0000000000
--- a/src/backends/cl/workloads/ClConstantUint8Workload.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "ClConstantUint8Workload.hpp"
-#include "ClWorkloadUtils.hpp"
-
-namespace armnn
-{
-
-void ClConstantUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantUint8Workload_Execute");
- ClBaseConstantWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantUint8Workload.hpp b/src/backends/cl/workloads/ClConstantUint8Workload.hpp
deleted file mode 100644
index 30556dc0d6..0000000000
--- a/src/backends/cl/workloads/ClConstantUint8Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ClBaseConstantWorkload.hpp"
-
-namespace armnn
-{
-
-class ClConstantUint8Workload : public ClBaseConstantWorkload<DataType::QuantisedAsymm8>
-{
-public:
- using ClBaseConstantWorkload<DataType::QuantisedAsymm8>::ClBaseConstantWorkload;
- void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp b/src/backends/cl/workloads/ClConstantWorkload.cpp
index 848ab5ade6..eee6dbdd55 100644
--- a/src/backends/cl/workloads/ClBaseConstantWorkload.cpp
+++ b/src/backends/cl/workloads/ClConstantWorkload.cpp
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: MIT
//
-#include "ClBaseConstantWorkload.hpp"
+#include "ClConstantWorkload.hpp"
#include <armnnUtils/Half.hpp>
#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
@@ -15,12 +15,16 @@
namespace armnn
{
-template class ClBaseConstantWorkload<DataType::Float16, DataType::Float32>;
-template class ClBaseConstantWorkload<DataType::QuantisedAsymm8>;
+ClConstantWorkload::ClConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info)
+ : BaseWorkload<ConstantQueueDescriptor>(descriptor, info)
+ , m_RanOnce(false)
+{
+}
-template<armnn::DataType... dataTypes>
-void ClBaseConstantWorkload<dataTypes...>::Execute() const
+void ClConstantWorkload::Execute() const
{
+ ARMNN_SCOPED_PROFILING_EVENT_CL("ClConstantWorkload_Execute");
+
// The intermediate tensor held by the corresponding layer output handler can be initialised with the given data
// on the first inference, then reused for subsequent inferences.
// The initialisation cannot happen at workload construction time since the ACL kernel for the next layer may not
@@ -61,5 +65,4 @@ void ClBaseConstantWorkload<dataTypes...>::Execute() const
}
}
-
} //namespace armnn
diff --git a/src/backends/cl/workloads/ClConstantWorkload.hpp b/src/backends/cl/workloads/ClConstantWorkload.hpp
new file mode 100644
index 0000000000..ccdbf069fd
--- /dev/null
+++ b/src/backends/cl/workloads/ClConstantWorkload.hpp
@@ -0,0 +1,25 @@
+//
+// 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
+{
+class ClConstantWorkload : public BaseWorkload<ConstantQueueDescriptor>
+{
+public:
+ ClConstantWorkload(const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info);
+
+ void Execute() const override;
+
+private:
+ mutable bool m_RanOnce;
+};
+
+} //namespace armnn
diff --git a/src/backends/cl/workloads/ClWorkloads.hpp b/src/backends/cl/workloads/ClWorkloads.hpp
index 6574d43659..e03f6a5955 100644
--- a/src/backends/cl/workloads/ClWorkloads.hpp
+++ b/src/backends/cl/workloads/ClWorkloads.hpp
@@ -7,11 +7,9 @@
#include "ClActivationFloatWorkload.hpp"
#include "ClActivationUint8Workload.hpp"
#include "ClAdditionWorkload.hpp"
-#include "ClBaseConstantWorkload.hpp"
+#include "ClConstantWorkload.hpp"
#include "ClBaseMergerWorkload.hpp"
#include "ClBatchNormalizationFloatWorkload.hpp"
-#include "ClConstantFloatWorkload.hpp"
-#include "ClConstantUint8Workload.hpp"
#include "ClConvolution2dWorkload.hpp"
#include "ClDepthwiseConvolutionWorkload.hpp"
#include "ClDivisionFloatWorkload.hpp"