aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefComparisonWorkload.hpp
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2019-04-03 17:48:18 +0100
committerSadik Armagan <sadik.armagan@arm.com>2019-04-08 15:48:28 +0000
commit2e6dc3a1c5d47825535db7993ba77eb1596ae99b (patch)
tree48e73fa1862d17534804d1699bedb76120e88c9f /src/backends/reference/workloads/RefComparisonWorkload.hpp
parent0324f48e64edb99a5c8d819394545d97e0c2ae97 (diff)
downloadarmnn-2e6dc3a1c5d47825535db7993ba77eb1596ae99b.tar.gz
IVGCVSW-2861 Refactor the Reference Elementwise workload
* Refactor Reference Comparison workload * Removed templating based on the DataType * Implemented BaseIterator to do decode/encode Change-Id: I18f299f47ee23772f90152c1146b42f07465e105 Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Signed-off-by: Kevin May <kevin.may@arm.com>
Diffstat (limited to 'src/backends/reference/workloads/RefComparisonWorkload.hpp')
-rw-r--r--src/backends/reference/workloads/RefComparisonWorkload.hpp76
1 files changed, 10 insertions, 66 deletions
diff --git a/src/backends/reference/workloads/RefComparisonWorkload.hpp b/src/backends/reference/workloads/RefComparisonWorkload.hpp
index 524d20625a..cfc2dcf2aa 100644
--- a/src/backends/reference/workloads/RefComparisonWorkload.hpp
+++ b/src/backends/reference/workloads/RefComparisonWorkload.hpp
@@ -13,80 +13,24 @@
namespace armnn
{
-template <typename Functor,
- typename armnn::DataType DataType,
- typename ParentDescriptor,
- typename armnn::StringMapping::Id DebugString>
-class RefComparisonWorkload
-{
- // Needs specialization. The default is empty on purpose.
-};
-
-template <typename ParentDescriptor, typename Functor>
-class RefFloat32ComparisonWorkload : public BaseFloat32ComparisonWorkload<ParentDescriptor>
-{
-public:
- using BaseFloat32ComparisonWorkload<ParentDescriptor>::BaseFloat32ComparisonWorkload;
- void ExecuteImpl(const char * debugString) const;
-};
-
-template <typename Functor, typename ParentDescriptor, typename armnn::StringMapping::Id DebugString>
-class RefComparisonWorkload<Functor, armnn::DataType::Float32, ParentDescriptor, DebugString>
- : public RefFloat32ComparisonWorkload<ParentDescriptor, Functor>
-{
-public:
- using RefFloat32ComparisonWorkload<ParentDescriptor, Functor>::RefFloat32ComparisonWorkload;
-
- virtual void Execute() const override
- {
- using Parent = RefFloat32ComparisonWorkload<ParentDescriptor, Functor>;
- Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString));
- }
-};
-
-template <typename ParentDescriptor, typename Functor>
-class RefUint8ComparisonWorkload : public BaseUint8ComparisonWorkload<ParentDescriptor>
-{
-public:
- using BaseUint8ComparisonWorkload<ParentDescriptor>::BaseUint8ComparisonWorkload;
- void ExecuteImpl(const char * debugString) const;
-};
-
template <typename Functor, typename ParentDescriptor, typename armnn::StringMapping::Id DebugString>
-class RefComparisonWorkload<Functor, armnn::DataType::QuantisedAsymm8, ParentDescriptor, DebugString>
- : public RefUint8ComparisonWorkload<ParentDescriptor, Functor>
+class RefComparisonWorkload : public BaseWorkload<ParentDescriptor>
{
public:
- using RefUint8ComparisonWorkload<ParentDescriptor, Functor>::RefUint8ComparisonWorkload;
+ using BaseWorkload<ParentDescriptor>::m_Data;
+ using BaseWorkload<ParentDescriptor>::BaseWorkload;
- virtual void Execute() const override
- {
- using Parent = RefUint8ComparisonWorkload<ParentDescriptor, Functor>;
- Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString));
- }
+ void Execute() const override;
};
-using RefEqualFloat32Workload =
+using RefEqualWorkload =
RefComparisonWorkload<std::equal_to<float>,
- DataType::Float32,
- EqualQueueDescriptor,
- StringMapping::RefEqualWorkload_Execute>;
+ EqualQueueDescriptor,
+ StringMapping::RefEqualWorkload_Execute>;
-using RefEqualUint8Workload =
- RefComparisonWorkload<std::equal_to<uint8_t>,
- DataType::QuantisedAsymm8,
- EqualQueueDescriptor,
- StringMapping::RefEqualWorkload_Execute>;
-using RefGreaterFloat32Workload =
+using RefGreaterWorkload =
RefComparisonWorkload<std::greater<float>,
- DataType::Float32,
- GreaterQueueDescriptor,
- StringMapping::RefGreaterWorkload_Execute>;
-
-using RefGreaterUint8Workload =
- RefComparisonWorkload<std::greater<uint8_t>,
- DataType::QuantisedAsymm8,
- GreaterQueueDescriptor,
- StringMapping::RefGreaterWorkload_Execute>;
+ GreaterQueueDescriptor,
+ StringMapping::RefGreaterWorkload_Execute>;
} // armnn