aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/workloads
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2018-10-12 16:03:56 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:53 +0100
commit5d2e700a223dab7432a765c64d0bd483a8acdfae (patch)
tree34527aecf46dd5c35ffe98c2e3fd2fb6387d5105 /src/backends/neon/workloads
parent14766d76d06c43d9e4a16a319b0e720ff4318a64 (diff)
downloadarmnn-5d2e700a223dab7432a765c64d0bd483a8acdfae.tar.gz
IVGCVSW-1951 Remove type templating from NeonPooling2dWorkload
Change-Id: I65129a72d7585776797cfe0947a2a0f1f483b72f
Diffstat (limited to 'src/backends/neon/workloads')
-rw-r--r--src/backends/neon/workloads/CMakeLists.txt8
-rw-r--r--src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp37
-rw-r--r--src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp27
-rw-r--r--src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp25
-rw-r--r--src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp26
-rw-r--r--src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp25
-rw-r--r--src/backends/neon/workloads/NeonPooling2dWorkload.cpp (renamed from src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp)19
-rw-r--r--src/backends/neon/workloads/NeonPooling2dWorkload.hpp30
-rw-r--r--src/backends/neon/workloads/NeonWorkloads.hpp4
9 files changed, 43 insertions, 158 deletions
diff --git a/src/backends/neon/workloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt
index 7f912610ef..a96c27c75a 100644
--- a/src/backends/neon/workloads/CMakeLists.txt
+++ b/src/backends/neon/workloads/CMakeLists.txt
@@ -46,12 +46,8 @@ list(APPEND armnnNeonBackendWorkloads_sources
NeonNormalizationFloatWorkload.hpp
NeonPermuteWorkload.cpp
NeonPermuteWorkload.hpp
- NeonPooling2dBaseWorkload.cpp
- NeonPooling2dBaseWorkload.hpp
- NeonPooling2dFloatWorkload.cpp
- NeonPooling2dFloatWorkload.hpp
- NeonPooling2dUint8Workload.cpp
- NeonPooling2dUint8Workload.hpp
+ NeonPooling2dWorkload.cpp
+ NeonPooling2dWorkload.hpp
NeonReshapeWorkload.cpp
NeonReshapeWorkload.hpp
NeonSoftmaxBaseWorkload.cpp
diff --git a/src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp b/src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp
deleted file mode 100644
index 8ea41fe18a..0000000000
--- a/src/backends/neon/workloads/NeonPooling2dBaseWorkload.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-
-namespace armnn
-{
-
-arm_compute::Status NeonPooling2dWorkloadValidate(const TensorInfo& input,
- const TensorInfo& output,
- const Pooling2dDescriptor& descriptor);
-
-// Base class template providing an implementation of the Pooling2d layer common to all data types.
-template <armnn::DataType... dataTypes>
-class NeonPooling2dBaseWorkload : public TypedWorkload<Pooling2dQueueDescriptor, dataTypes...>
-{
-public:
- using TypedWorkload<Pooling2dQueueDescriptor, dataTypes...>::m_Data;
-
- NeonPooling2dBaseWorkload(const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info,
- const std::string& name);
-
-protected:
- mutable arm_compute::NEPoolingLayer m_PoolingLayer;
-};
-
-
-} //namespace armnn
-
-
-
-
-
diff --git a/src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp
deleted file mode 100644
index 46996b088c..0000000000
--- a/src/backends/neon/workloads/NeonPooling2dFloatWorkload.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonPooling2dFloatWorkload.hpp"
-
-
-
-namespace armnn
-{
-
-NeonPooling2dFloatWorkload::NeonPooling2dFloatWorkload(const Pooling2dQueueDescriptor& descriptor,
- const WorkloadInfo& info)
- : NeonPooling2dBaseWorkload<armnn::DataType::Float16, armnn::DataType::Float32>(descriptor, info,
- "NeonPooling2dFloatWorkload")
-{
-}
-
-void NeonPooling2dFloatWorkload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonPooling2dFloatWorkload_Execute");
- m_PoolingLayer.run();
-}
-
-} //namespace armnn
-
diff --git a/src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp b/src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp
deleted file mode 100644
index 9b0eebdc2b..0000000000
--- a/src/backends/neon/workloads/NeonPooling2dFloatWorkload.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-#include "NeonPooling2dBaseWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonPooling2dFloatWorkload : public NeonPooling2dBaseWorkload<armnn::DataType::Float16,
- armnn::DataType::Float32>
-{
-public:
- NeonPooling2dFloatWorkload(const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info);
- virtual void Execute() const override;
-};
-
-} //namespace armnn
-
-
-
diff --git a/src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp b/src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp
deleted file mode 100644
index 8f99a2be86..0000000000
--- a/src/backends/neon/workloads/NeonPooling2dUint8Workload.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonPooling2dUint8Workload.hpp"
-
-
-
-namespace armnn
-{
-
-NeonPooling2dUint8Workload::NeonPooling2dUint8Workload(const Pooling2dQueueDescriptor& descriptor,
- const WorkloadInfo& info)
- : NeonPooling2dBaseWorkload<armnn::DataType::QuantisedAsymm8>(descriptor, info, "NeonPooling2dUint8Workload")
-{
-}
-
-void NeonPooling2dUint8Workload::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonPooling2dUint8Workload_Execute");
- m_PoolingLayer.run();
-}
-
-} //namespace armnn
-
diff --git a/src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp b/src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp
deleted file mode 100644
index d475c5f721..0000000000
--- a/src/backends/neon/workloads/NeonPooling2dUint8Workload.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <armnn/Types.hpp>
-#include "NeonPooling2dBaseWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonPooling2dUint8Workload : public NeonPooling2dBaseWorkload<armnn::DataType::QuantisedAsymm8>
-{
-public:
- NeonPooling2dUint8Workload(const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info);
- virtual void Execute() const override;
-};
-
-} //namespace armnn
-
-
-
-
diff --git a/src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp b/src/backends/neon/workloads/NeonPooling2dWorkload.cpp
index 054f9c5f75..7892b3a315 100644
--- a/src/backends/neon/workloads/NeonPooling2dBaseWorkload.cpp
+++ b/src/backends/neon/workloads/NeonPooling2dWorkload.cpp
@@ -3,7 +3,7 @@
// SPDX-License-Identifier: MIT
//
-#include "NeonPooling2dBaseWorkload.hpp"
+#include "NeonPooling2dWorkload.hpp"
#include <backends/neon/NeonLayerSupport.hpp>
#include <backends/neon/NeonTensorHandle.hpp>
#include <backends/aclCommon/ArmComputeUtils.hpp>
@@ -25,12 +25,11 @@ arm_compute::Status NeonPooling2dWorkloadValidate(const TensorInfo& input,
return arm_compute::NEPoolingLayer::validate(&aclInputInfo, &aclOutputInfo, layerInfo);
}
-template <armnn::DataType... dataTypes>
-NeonPooling2dBaseWorkload<dataTypes...>::NeonPooling2dBaseWorkload(
- const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info, const std::string& name)
- : TypedWorkload<Pooling2dQueueDescriptor, dataTypes...>(descriptor, info)
+NeonPooling2dWorkload::NeonPooling2dWorkload(
+ const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info)
+ : BaseWorkload<Pooling2dQueueDescriptor>(descriptor, info)
{
- m_Data.ValidateInputsOutputs(name, 1, 1);
+ m_Data.ValidateInputsOutputs("NeonPooling2dWorkload", 1, 1);
arm_compute::ITensor& input = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Inputs[0])->GetTensor();
arm_compute::ITensor& output = boost::polymorphic_downcast<INeonTensorHandle*>(m_Data.m_Outputs[0])->GetTensor();
@@ -44,8 +43,10 @@ NeonPooling2dBaseWorkload<dataTypes...>::NeonPooling2dBaseWorkload(
m_PoolingLayer.configure(&input, &output, layerInfo);
}
-template class NeonPooling2dBaseWorkload<DataType::Float16, DataType::Float32>;
-template class NeonPooling2dBaseWorkload<DataType::QuantisedAsymm8>;
+void NeonPooling2dWorkload::Execute() const
+{
+ ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonPooling2dWorkload_Execute");
+ m_PoolingLayer.run();
+}
} //namespace armnn
-
diff --git a/src/backends/neon/workloads/NeonPooling2dWorkload.hpp b/src/backends/neon/workloads/NeonPooling2dWorkload.hpp
new file mode 100644
index 0000000000..848221cc6e
--- /dev/null
+++ b/src/backends/neon/workloads/NeonPooling2dWorkload.hpp
@@ -0,0 +1,30 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
+
+namespace armnn
+{
+
+arm_compute::Status NeonPooling2dWorkloadValidate(const TensorInfo& input,
+ const TensorInfo& output,
+ const Pooling2dDescriptor& descriptor);
+
+class NeonPooling2dWorkload : public BaseWorkload<Pooling2dQueueDescriptor>
+{
+public:
+ using BaseWorkload<Pooling2dQueueDescriptor>::m_Data;
+
+ NeonPooling2dWorkload(const Pooling2dQueueDescriptor& descriptor, const WorkloadInfo& info);
+
+ void Execute() const override;
+
+private:
+ mutable arm_compute::NEPoolingLayer m_PoolingLayer;
+};
+
+} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonWorkloads.hpp b/src/backends/neon/workloads/NeonWorkloads.hpp
index 917b1feac3..93711b6fc1 100644
--- a/src/backends/neon/workloads/NeonWorkloads.hpp
+++ b/src/backends/neon/workloads/NeonWorkloads.hpp
@@ -25,9 +25,7 @@
#include "NeonMultiplicationFloatWorkload.hpp"
#include "NeonNormalizationFloatWorkload.hpp"
#include "NeonPermuteWorkload.hpp"
-#include "NeonPooling2dBaseWorkload.hpp"
-#include "NeonPooling2dFloatWorkload.hpp"
-#include "NeonPooling2dUint8Workload.hpp"
+#include "NeonPooling2dWorkload.hpp"
#include "NeonReshapeWorkload.hpp"
#include "NeonSoftmaxFloatWorkload.hpp"
#include "NeonSoftmaxUint8Workload.hpp"