diff options
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/neon/NeonLayerSupport.cpp | 2 | ||||
-rw-r--r-- | src/backends/neon/NeonWorkloadFactory.cpp | 2 | ||||
-rw-r--r-- | src/backends/neon/backend.mk | 3 | ||||
-rw-r--r-- | src/backends/neon/test/NeonCreateWorkloadTests.cpp | 21 | ||||
-rw-r--r-- | src/backends/neon/workloads/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonActivationUint8Workload.cpp | 35 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonActivationUint8Workload.hpp | 28 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonActivationWorkload.cpp (renamed from src/backends/neon/workloads/NeonActivationFloatWorkload.cpp) | 16 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonActivationWorkload.hpp (renamed from src/backends/neon/workloads/NeonActivationFloatWorkload.hpp) | 8 | ||||
-rw-r--r-- | src/backends/neon/workloads/NeonWorkloads.hpp | 3 |
10 files changed, 26 insertions, 98 deletions
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp index 8581cfe5d7..68118a2a94 100644 --- a/src/backends/neon/NeonLayerSupport.cpp +++ b/src/backends/neon/NeonLayerSupport.cpp @@ -16,7 +16,7 @@ #ifdef ARMCOMPUTENEON_ENABLED #include "workloads/NeonAdditionFloatWorkload.hpp" -#include "workloads/NeonActivationFloatWorkload.hpp" +#include "workloads/NeonActivationWorkload.hpp" #include "workloads/NeonBatchNormalizationFloatWorkload.hpp" #include "workloads/NeonConvolution2dBaseWorkload.hpp" #include "workloads/NeonDepthwiseConvolutionBaseWorkload.hpp" diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp index dd91b152f2..f17c80edbb 100644 --- a/src/backends/neon/NeonWorkloadFactory.cpp +++ b/src/backends/neon/NeonWorkloadFactory.cpp @@ -91,7 +91,7 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateOutput(const OutputQueueDe std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info) const { - return MakeWorkload<NeonActivationFloatWorkload, NeonActivationUint8Workload>(descriptor, info); + return std::make_unique<NeonActivationWorkload>(descriptor, info); } std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSoftmax(const SoftmaxQueueDescriptor& descriptor, diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk index b041bca6d7..f3c1843a9c 100644 --- a/src/backends/neon/backend.mk +++ b/src/backends/neon/backend.mk @@ -11,8 +11,7 @@ BACKEND_SOURCES := \ NeonBackend.cpp \ NeonLayerSupport.cpp \ NeonWorkloadFactory.cpp \ - workloads/NeonActivationFloatWorkload.cpp \ - workloads/NeonActivationUint8Workload.cpp \ + workloads/NeonActivationWorkload.cpp \ workloads/NeonAdditionFloatWorkload.cpp \ workloads/NeonBatchNormalizationFloatWorkload.cpp \ workloads/NeonConstantFloatWorkload.cpp \ diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp index 05281cded2..8a85e7dd94 100644 --- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp +++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp @@ -51,13 +51,12 @@ bool TestNeonTensorHandleInfo(armnn::INeonTensorHandle* handle, const armnn::Ten } // namespace -template <typename ActivationWorkloadType, typename armnn::DataType DataType> +template <typename armnn::DataType DataType> static void NeonCreateActivationWorkloadTest() { Graph graph; NeonWorkloadFactory factory; - auto workload = CreateActivationWorkloadTest<ActivationWorkloadType, DataType> - (factory, graph); + auto workload = CreateActivationWorkloadTest<NeonActivationWorkload, DataType>(factory, graph); // Checks that inputs/outputs are as we expect them (see definition of CreateActivationWorkloadTest). ActivationQueueDescriptor queueDescriptor = workload->GetData(); @@ -70,13 +69,13 @@ static void NeonCreateActivationWorkloadTest() #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC BOOST_AUTO_TEST_CASE(CreateActivationFloat16Workload) { - NeonCreateActivationWorkloadTest<NeonActivationFloatWorkload, DataType::Float16>(); + NeonCreateActivationWorkloadTest<DataType::Float16>(); } #endif BOOST_AUTO_TEST_CASE(CreateActivationFloatWorkload) { - NeonCreateActivationWorkloadTest<NeonActivationFloatWorkload, DataType::Float32>(); + NeonCreateActivationWorkloadTest<DataType::Float32>(); } template <typename WorkloadType, @@ -454,14 +453,14 @@ BOOST_AUTO_TEST_CASE(CreateSingleOutputMultipleInputs) Graph graph; NeonWorkloadFactory factory; std::unique_ptr<NeonSplitterFloatWorkload> wlSplitter; - std::unique_ptr<NeonActivationFloatWorkload> wlActiv0_0; - std::unique_ptr<NeonActivationFloatWorkload> wlActiv0_1; - std::unique_ptr<NeonActivationFloatWorkload> wlActiv1_0; - std::unique_ptr<NeonActivationFloatWorkload> wlActiv1_1; + std::unique_ptr<NeonActivationWorkload> wlActiv0_0; + std::unique_ptr<NeonActivationWorkload> wlActiv0_1; + std::unique_ptr<NeonActivationWorkload> wlActiv1_0; + std::unique_ptr<NeonActivationWorkload> wlActiv1_1; CreateSplitterMultipleInputsOneOutputWorkloadTest<NeonSplitterFloatWorkload, - NeonActivationFloatWorkload, DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1, - wlActiv1_0, wlActiv1_1); + NeonActivationWorkload, DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1, + wlActiv1_0, wlActiv1_1); armnn::INeonTensorHandle* sOut0 = dynamic_cast<armnn::INeonTensorHandle*>(wlSplitter->GetData().m_Outputs[0]); armnn::INeonTensorHandle* sOut1 = dynamic_cast<armnn::INeonTensorHandle*>(wlSplitter->GetData().m_Outputs[1]); diff --git a/src/backends/neon/workloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt index 850c65cb4e..460b870273 100644 --- a/src/backends/neon/workloads/CMakeLists.txt +++ b/src/backends/neon/workloads/CMakeLists.txt @@ -4,10 +4,8 @@ # list(APPEND armnnNeonBackendWorkloads_sources - NeonActivationFloatWorkload.cpp - NeonActivationFloatWorkload.hpp - NeonActivationUint8Workload.cpp - NeonActivationUint8Workload.hpp + NeonActivationWorkload.cpp + NeonActivationWorkload.hpp NeonAdditionFloatWorkload.cpp NeonAdditionFloatWorkload.hpp NeonBaseConstantWorkload.hpp diff --git a/src/backends/neon/workloads/NeonActivationUint8Workload.cpp b/src/backends/neon/workloads/NeonActivationUint8Workload.cpp deleted file mode 100644 index 4aed6b510f..0000000000 --- a/src/backends/neon/workloads/NeonActivationUint8Workload.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "NeonActivationUint8Workload.hpp" -#include <backends/aclCommon/ArmComputeUtils.hpp> -#include <backends/neon/NeonLayerSupport.hpp> - -namespace armnn -{ -NeonActivationUint8Workload::NeonActivationUint8Workload(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("NeonActivationUint8Workload", 1, 1); - - arm_compute::ITensor& input = static_cast<NeonTensorHandle*>(m_Data.m_Inputs[0])->GetTensor(); - arm_compute::ITensor& output = static_cast<NeonTensorHandle*>(m_Data.m_Outputs[0])->GetTensor(); - - m_ActivationLayer.configure(&input, &output, layerInfo); -} - -void NeonActivationUint8Workload::Execute() const -{ - ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonActivationUint8Workload_Execute"); - - m_ActivationLayer.run(); -} -} //namespace armnn diff --git a/src/backends/neon/workloads/NeonActivationUint8Workload.hpp b/src/backends/neon/workloads/NeonActivationUint8Workload.hpp deleted file mode 100644 index 56e3544379..0000000000 --- a/src/backends/neon/workloads/NeonActivationUint8Workload.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include <backends/neon/workloads/NeonWorkloadUtils.hpp> - -namespace armnn -{ - -class NeonActivationUint8Workload : public Uint8Workload<ActivationQueueDescriptor> -{ -public: - NeonActivationUint8Workload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info); - virtual void Execute() const override; - -private: - mutable arm_compute::NEActivationLayer m_ActivationLayer; -}; - -} //namespace armnn - - - - - diff --git a/src/backends/neon/workloads/NeonActivationFloatWorkload.cpp b/src/backends/neon/workloads/NeonActivationWorkload.cpp index 1d6bf70431..c1c240f65f 100644 --- a/src/backends/neon/workloads/NeonActivationFloatWorkload.cpp +++ b/src/backends/neon/workloads/NeonActivationWorkload.cpp @@ -3,10 +3,9 @@ // SPDX-License-Identifier: MIT // -#include "NeonActivationFloatWorkload.hpp" +#include "NeonActivationWorkload.hpp" #include <backends/aclCommon/ArmComputeUtils.hpp> - namespace armnn { @@ -32,11 +31,11 @@ arm_compute::Status NeonActivationWorkloadValidate(const TensorInfo& input, activationLayerInfo); } -NeonActivationFloatWorkload::NeonActivationFloatWorkload(const ActivationQueueDescriptor& descriptor, - const WorkloadInfo& info) - : FloatWorkload<ActivationQueueDescriptor>(descriptor, info) +NeonActivationWorkload::NeonActivationWorkload(const ActivationQueueDescriptor& descriptor, + const WorkloadInfo& info) + : BaseWorkload<ActivationQueueDescriptor>(descriptor, info) { - m_Data.ValidateInputsOutputs("NeonActivationFloatWorkload", 1, 1); + m_Data.ValidateInputsOutputs("NeonActivationWorkload", 1, 1); const arm_compute::ActivationLayerInfo activationLayerInfo = ConvertActivationDescriptorToAclActivationLayerInfo(m_Data.m_Parameters); @@ -47,11 +46,10 @@ NeonActivationFloatWorkload::NeonActivationFloatWorkload(const ActivationQueueDe m_ActivationLayer.configure(&input, &output, activationLayerInfo); } -void NeonActivationFloatWorkload::Execute() const +void NeonActivationWorkload::Execute() const { - ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonActivationFloatWorkload_Execute"); + ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonActivationWorkload_Execute"); m_ActivationLayer.run(); } } //namespace armnn - diff --git a/src/backends/neon/workloads/NeonActivationFloatWorkload.hpp b/src/backends/neon/workloads/NeonActivationWorkload.hpp index 4d2f51fb4f..b120f94bdc 100644 --- a/src/backends/neon/workloads/NeonActivationFloatWorkload.hpp +++ b/src/backends/neon/workloads/NeonActivationWorkload.hpp @@ -14,16 +14,14 @@ arm_compute::Status NeonActivationWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const ActivationDescriptor& descriptor); -class NeonActivationFloatWorkload : public FloatWorkload<ActivationQueueDescriptor> +class NeonActivationWorkload : public BaseWorkload<ActivationQueueDescriptor> { public: - NeonActivationFloatWorkload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info); + NeonActivationWorkload(const ActivationQueueDescriptor& descriptor, const WorkloadInfo& info); void Execute() const override; private: mutable arm_compute::NEActivationLayer m_ActivationLayer; }; -} //namespace armnn - - +} //namespace armnn diff --git a/src/backends/neon/workloads/NeonWorkloads.hpp b/src/backends/neon/workloads/NeonWorkloads.hpp index a4ab6b2cac..db2df18371 100644 --- a/src/backends/neon/workloads/NeonWorkloads.hpp +++ b/src/backends/neon/workloads/NeonWorkloads.hpp @@ -4,8 +4,7 @@ // #pragma once -#include "NeonActivationFloatWorkload.hpp" -#include "NeonActivationUint8Workload.hpp" +#include "NeonActivationWorkload.hpp" #include "NeonAdditionFloatWorkload.hpp" #include "NeonBaseConstantWorkload.hpp" #include "NeonBaseMergerWorkload.hpp" |