aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2020-03-19 13:53:16 +0000
committerJim Flynn <jim.flynn@arm.com>2020-03-19 21:47:24 +0000
commitb60dd243d3d8131f246f2b122309b998287151d2 (patch)
treeaf5e84f753236078006c32957a7d35f4ac708563 /src/backends/neon
parenta0687eef149fbf57bb6db0621ec65724f550b1ed (diff)
downloadarmnn-b60dd243d3d8131f246f2b122309b998287151d2.tar.gz
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 <sadik.armagan@arm.com> Change-Id: I92772810b744b388831c9dca0119ebf8cb7a447e
Diffstat (limited to 'src/backends/neon')
-rw-r--r--src/backends/neon/NeonWorkloadFactory.cpp3
-rw-r--r--src/backends/neon/workloads/NeonGreaterWorkload.cpp11
-rw-r--r--src/backends/neon/workloads/NeonGreaterWorkload.hpp8
3 files changed, 5 insertions, 17 deletions
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<IWorkload> NeonWorkloadFactory::CreateComparison(const Compariso
GreaterQueueDescriptor greaterQueueDescriptor;
greaterQueueDescriptor.m_Inputs = descriptor.m_Inputs;
greaterQueueDescriptor.m_Outputs = descriptor.m_Outputs;
-
- return MakeWorkloadHelper<NeonGreaterFloat32Workload, NeonGreaterUint8Workload>(greaterQueueDescriptor, info);
+ return std::make_unique<NeonGreaterWorkload>(greaterQueueDescriptor, info);
}
return MakeWorkloadHelper<NullWorkload, NullWorkload>(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 <DataType T>
-NeonGreaterWorkload<T>::NeonGreaterWorkload(const GreaterQueueDescriptor& descriptor, const WorkloadInfo& info)
- : MultiTypedWorkload<GreaterQueueDescriptor, T, DataType::Boolean>(descriptor, info)
+NeonGreaterWorkload::NeonGreaterWorkload(const GreaterQueueDescriptor& descriptor, const WorkloadInfo& info)
+ : BaseWorkload<GreaterQueueDescriptor>(descriptor, info)
{
m_Data.ValidateInputsOutputs("NeonGreaterWorkload", 2, 1);
@@ -36,14 +35,10 @@ NeonGreaterWorkload<T>::NeonGreaterWorkload(const GreaterQueueDescriptor& descri
m_GreaterLayer.configure(&input0, &input1, &output);
}
-template <DataType T>
-void NeonGreaterWorkload<T>::Execute() const
+void NeonGreaterWorkload::Execute() const
{
ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonGreaterWorkload_Execute");
m_GreaterLayer.run();
}
-template class NeonGreaterWorkload<DataType::Float32>;
-template class NeonGreaterWorkload<DataType::QAsymmU8>;
-
} //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 <DataType T>
-class NeonGreaterWorkload : public MultiTypedWorkload<GreaterQueueDescriptor, T, DataType::Boolean>
+class NeonGreaterWorkload : public BaseWorkload<GreaterQueueDescriptor>
{
public:
- using MultiTypedWorkload<GreaterQueueDescriptor, T, DataType::Boolean>::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<DataType::Float32>;
-using NeonGreaterUint8Workload = NeonGreaterWorkload<DataType::QAsymmU8>;
-
} //namespace armnn \ No newline at end of file