diff options
author | Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> | 2018-10-10 14:51:27 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-22 16:57:53 +0100 |
commit | 55b1cda7d242ceb22963fd40370c2e6dbbb074ba (patch) | |
tree | 5005cb3411de2d2a3b10eeb785ca9da4b39f2a87 /src/backends | |
parent | f1153cd864805ad2ed1197a9667e333dc38b8873 (diff) | |
download | armnn-55b1cda7d242ceb22963fd40370c2e6dbbb074ba.tar.gz |
IVGCVSW-1951 Remove type templating from ClConstantWorkload
Change-Id: Ib2c9fe56c59aedabeff899a81a0afe260bd57c9f
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.cpp | 2 | ||||
-rw-r--r-- | src/backends/cl/backend.mk | 4 | ||||
-rw-r--r-- | src/backends/cl/workloads/CMakeLists.txt | 8 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClBaseConstantWorkload.hpp | 30 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConstantFloatWorkload.cpp | 18 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConstantFloatWorkload.hpp | 20 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConstantUint8Workload.cpp | 18 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClConstantUint8Workload.hpp | 20 | ||||
-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.hpp | 25 | ||||
-rw-r--r-- | src/backends/cl/workloads/ClWorkloads.hpp | 4 |
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" |