diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2019-03-25 09:03:35 +0000 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2019-03-25 09:03:35 +0000 |
commit | ef38d5d0f071c53883e2b2f13c85bfb3df34bf88 (patch) | |
tree | d9f828f79e3819041a7834b8d7ca5b56d1fd3611 /src/backends/reference/workloads/RefElementwiseWorkload.hpp | |
parent | 6e9482013f41725ccca0767c0c5db9b29f77d981 (diff) | |
download | armnn-ef38d5d0f071c53883e2b2f13c85bfb3df34bf88.tar.gz |
IVGCVSW-2861 Refactor the Reference Elementwise workloads
* Refactored Elementwise Workload into the single workload.
* Execute() function will react based on the DataType.
Change-Id: I6d4d6a74cec150ed8cb252e70b629ed968e7093d
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Diffstat (limited to 'src/backends/reference/workloads/RefElementwiseWorkload.hpp')
-rw-r--r-- | src/backends/reference/workloads/RefElementwiseWorkload.hpp | 51 |
1 files changed, 4 insertions, 47 deletions
diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.hpp b/src/backends/reference/workloads/RefElementwiseWorkload.hpp index a5ff376673..371904977a 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.hpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.hpp @@ -20,56 +20,14 @@ template <typename Functor, typename ParentDescriptor, typename armnn::StringMapping::Id DebugString> class RefElementwiseWorkload -{ - // Needs specialization. The default is empty on purpose. -}; - -template <typename ParentDescriptor, typename Functor> -class BaseFloat32ElementwiseWorkload : public Float32Workload<ParentDescriptor> -{ -public: - using Float32Workload<ParentDescriptor>::Float32Workload; - void ExecuteImpl(const char * debugString) const; -}; - -template <typename Functor, - typename ParentDescriptor, - typename armnn::StringMapping::Id DebugString> -class RefElementwiseWorkload<Functor, armnn::DataType::Float32, ParentDescriptor, DebugString> - : public BaseFloat32ElementwiseWorkload<ParentDescriptor, Functor> -{ -public: - using BaseFloat32ElementwiseWorkload<ParentDescriptor, Functor>::BaseFloat32ElementwiseWorkload; - - virtual void Execute() const override - { - using Parent = BaseFloat32ElementwiseWorkload<ParentDescriptor, Functor>; - Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString)); - } -}; - -template <typename ParentDescriptor, typename Functor> -class BaseUint8ElementwiseWorkload : public Uint8Workload<ParentDescriptor> + : public TypedWorkload<ParentDescriptor, DataType> { public: - using Uint8Workload<ParentDescriptor>::Uint8Workload; - void ExecuteImpl(const char * debugString) const; -}; -template <typename Functor, - typename ParentDescriptor, - typename armnn::StringMapping::Id DebugString> -class RefElementwiseWorkload<Functor, armnn::DataType::QuantisedAsymm8, ParentDescriptor, DebugString> - : public BaseUint8ElementwiseWorkload<ParentDescriptor, Functor> -{ -public: - using BaseUint8ElementwiseWorkload<ParentDescriptor, Functor>::BaseUint8ElementwiseWorkload; + using TypedWorkload<ParentDescriptor, DataType>::m_Data; + using TypedWorkload<ParentDescriptor, DataType>::TypedWorkload; - virtual void Execute() const override - { - using Parent = BaseUint8ElementwiseWorkload<ParentDescriptor, Functor>; - Parent::ExecuteImpl(StringMapping::Instance().Get(DebugString)); - } + void Execute() const override; }; using RefAdditionFloat32Workload = @@ -120,7 +78,6 @@ using RefDivisionUint8Workload = DivisionQueueDescriptor, StringMapping::RefDivisionWorkload_Execute>; - using RefMaximumFloat32Workload = RefElementwiseWorkload<armnn::maximum<float>, DataType::Float32, |