diff options
Diffstat (limited to 'src/backends/reference/workloads/RefComparisonWorkload.hpp')
-rw-r--r-- | src/backends/reference/workloads/RefComparisonWorkload.hpp | 76 |
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 |