diff options
author | FrancisMurtagh <francis.murtagh@arm.com> | 2018-12-19 10:56:15 +0000 |
---|---|---|
committer | FrancisMurtagh <francis.murtagh@arm.com> | 2018-12-19 10:56:15 +0000 |
commit | 878f02313d716e86a95e7f670e9d7b19cdba5e61 (patch) | |
tree | 6c80992ad989aca287bec06d713ceb93f1eaf656 /src/backends/reference/workloads | |
parent | 30cdfcac03fc9f3ab424865b40c0490799e5c8fb (diff) | |
download | armnn-878f02313d716e86a95e7f670e9d7b19cdba5e61.tar.gz |
IVGCVSW-2379 Add Greater Ref workload implementation
* Added the Greater operation as an element-wise workload
* Added the unit tests
Change-Id: Ie00ee30e47a5f5e17a728032eeb11a085d06c8f2
Diffstat (limited to 'src/backends/reference/workloads')
3 files changed, 25 insertions, 12 deletions
diff --git a/src/backends/reference/workloads/ElementwiseFunction.cpp b/src/backends/reference/workloads/ElementwiseFunction.cpp index 18ceade113..cb8aa7089c 100644 --- a/src/backends/reference/workloads/ElementwiseFunction.cpp +++ b/src/backends/reference/workloads/ElementwiseFunction.cpp @@ -32,4 +32,5 @@ template struct armnn::ElementwiseFunction<std::multiplies<float>>; template struct armnn::ElementwiseFunction<std::divides<float>>; template struct armnn::ElementwiseFunction<armnn::maximum<float>>; template struct armnn::ElementwiseFunction<armnn::minimum<float>>; -template struct armnn::ElementwiseFunction<std::equal_to<float>>;
\ No newline at end of file +template struct armnn::ElementwiseFunction<std::equal_to<float>>; +template struct armnn::ElementwiseFunction<std::greater<float>>; diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.cpp b/src/backends/reference/workloads/RefElementwiseWorkload.cpp index d00bfd01b4..13d6e70a96 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.cpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.cpp @@ -45,11 +45,11 @@ void BaseUint8ElementwiseWorkload<ParentDescriptor, Functor>::ExecuteImpl(const std::vector<float> results(outputInfo.GetNumElements()); ElementwiseFunction<Functor>(inputInfo0.GetShape(), - inputInfo1.GetShape(), - outputInfo.GetShape(), - dequant0.data(), - dequant1.data(), - results.data()); + inputInfo1.GetShape(), + outputInfo.GetShape(), + dequant0.data(), + dequant1.data(), + results.data()); Quantize(GetOutputTensorDataU8(0, data), results.data(), outputInfo); } @@ -76,3 +76,6 @@ template class armnn::BaseUint8ElementwiseWorkload<armnn::MinimumQueueDescriptor template class armnn::BaseFloat32ElementwiseWorkload<armnn::EqualQueueDescriptor, std::equal_to<float>>; template class armnn::BaseUint8ElementwiseWorkload<armnn::EqualQueueDescriptor, std::equal_to<float>>; + +template class armnn::BaseFloat32ElementwiseWorkload<armnn::GreaterQueueDescriptor, std::greater<float>>; +template class armnn::BaseUint8ElementwiseWorkload<armnn::GreaterQueueDescriptor, std::greater<float>>; diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.hpp b/src/backends/reference/workloads/RefElementwiseWorkload.hpp index c2855b0550..1b3200f85c 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.hpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.hpp @@ -12,8 +12,6 @@ #include "Maximum.hpp" #include "Minimum.hpp" - - namespace armnn { @@ -86,7 +84,6 @@ using RefAdditionUint8Workload = AdditionQueueDescriptor, StringMapping::RefAdditionWorkload_Execute>; - using RefSubtractionFloat32Workload = RefElementwiseWorkload<std::minus<float>, DataType::Float32, @@ -132,9 +129,9 @@ using RefMaximumFloat32Workload = using RefMaximumUint8Workload = RefElementwiseWorkload<armnn::maximum<float>, - DataType::QuantisedAsymm8, - MaximumQueueDescriptor, - StringMapping::RefMaximumWorkload_Execute>; + DataType::QuantisedAsymm8, + MaximumQueueDescriptor, + StringMapping::RefMaximumWorkload_Execute>; using RefMinimumFloat32Workload = RefElementwiseWorkload<minimum<float>, @@ -159,4 +156,16 @@ using RefEqualUint8Workload = DataType::QuantisedAsymm8, EqualQueueDescriptor, StringMapping::RefEqualWorkload_Execute>; + +using RefGreaterFloat32Workload = + RefElementwiseWorkload<std::greater<float>, + DataType::Float32, + GreaterQueueDescriptor, + StringMapping::RefGreaterWorkload_Execute>; + +using RefGreaterUint8Workload = + RefElementwiseWorkload<std::greater<float>, + DataType::QuantisedAsymm8, + GreaterQueueDescriptor, + StringMapping::RefGreaterWorkload_Execute>; } // armnn |