From b60dd243d3d8131f246f2b122309b998287151d2 Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Thu, 19 Mar 2020 13:53:16 +0000 Subject: IVGCVSW-4565 TENSOR_BOOL8 data type not supported in AndroidNN Driver * Enabled Boolean and Int32 data types in Reference Comparison inputs * Added decoder for Boolean data type * Refactored ClGreaterWorkload to work with any data type * Refactored NeonGreaterWorkload to work with any data type !android-nn-driver:2902 Signed-off-by: Sadik Armagan Change-Id: I92772810b744b388831c9dca0119ebf8cb7a447e --- src/backends/neon/NeonWorkloadFactory.cpp | 3 +-- src/backends/neon/workloads/NeonGreaterWorkload.cpp | 11 +++-------- src/backends/neon/workloads/NeonGreaterWorkload.hpp | 8 +------- 3 files changed, 5 insertions(+), 17 deletions(-) (limited to 'src/backends/neon') diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp index cf9999f5d2..cc7dca031d 100644 --- a/src/backends/neon/NeonWorkloadFactory.cpp +++ b/src/backends/neon/NeonWorkloadFactory.cpp @@ -144,8 +144,7 @@ std::unique_ptr NeonWorkloadFactory::CreateComparison(const Compariso GreaterQueueDescriptor greaterQueueDescriptor; greaterQueueDescriptor.m_Inputs = descriptor.m_Inputs; greaterQueueDescriptor.m_Outputs = descriptor.m_Outputs; - - return MakeWorkloadHelper(greaterQueueDescriptor, info); + return std::make_unique(greaterQueueDescriptor, info); } return MakeWorkloadHelper(descriptor, info); } diff --git a/src/backends/neon/workloads/NeonGreaterWorkload.cpp b/src/backends/neon/workloads/NeonGreaterWorkload.cpp index 6380dfada5..1ec5ac4be0 100644 --- a/src/backends/neon/workloads/NeonGreaterWorkload.cpp +++ b/src/backends/neon/workloads/NeonGreaterWorkload.cpp @@ -23,9 +23,8 @@ arm_compute::Status NeonGreaterWorkloadValidate(const TensorInfo& input0, &aclOutput); } -template -NeonGreaterWorkload::NeonGreaterWorkload(const GreaterQueueDescriptor& descriptor, const WorkloadInfo& info) - : MultiTypedWorkload(descriptor, info) +NeonGreaterWorkload::NeonGreaterWorkload(const GreaterQueueDescriptor& descriptor, const WorkloadInfo& info) + : BaseWorkload(descriptor, info) { m_Data.ValidateInputsOutputs("NeonGreaterWorkload", 2, 1); @@ -36,14 +35,10 @@ NeonGreaterWorkload::NeonGreaterWorkload(const GreaterQueueDescriptor& descri m_GreaterLayer.configure(&input0, &input1, &output); } -template -void NeonGreaterWorkload::Execute() const +void NeonGreaterWorkload::Execute() const { ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonGreaterWorkload_Execute"); m_GreaterLayer.run(); } -template class NeonGreaterWorkload; -template class NeonGreaterWorkload; - } //namespace armnn \ No newline at end of file diff --git a/src/backends/neon/workloads/NeonGreaterWorkload.hpp b/src/backends/neon/workloads/NeonGreaterWorkload.hpp index bcab27e7a6..503e60e784 100644 --- a/src/backends/neon/workloads/NeonGreaterWorkload.hpp +++ b/src/backends/neon/workloads/NeonGreaterWorkload.hpp @@ -16,12 +16,9 @@ arm_compute::Status NeonGreaterWorkloadValidate(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output); -template -class NeonGreaterWorkload : public MultiTypedWorkload +class NeonGreaterWorkload : public BaseWorkload { public: - using MultiTypedWorkload::m_Data; - NeonGreaterWorkload(const GreaterQueueDescriptor& descriptor, const WorkloadInfo& info); virtual void Execute() const override; @@ -30,7 +27,4 @@ private: mutable arm_compute::NEGreater m_GreaterLayer; }; -using NeonGreaterFloat32Workload = NeonGreaterWorkload; -using NeonGreaterUint8Workload = NeonGreaterWorkload; - } //namespace armnn \ No newline at end of file -- cgit v1.2.1