diff options
author | saoste01 <saoirse.stewart@arm.com> | 2018-11-28 16:57:20 +0000 |
---|---|---|
committer | Les Bell <les.bell@arm.com> | 2018-11-29 10:28:22 +0000 |
commit | 2df12b3abf2171869582581dd275d556bad87411 (patch) | |
tree | 6c6345b45bd04dd7d4c29d889bf1cfe9428a1c0c /src/backends/reference/workloads | |
parent | 90539697433b507e20cf0d56f6c7f18614e03973 (diff) | |
download | armnn-2df12b3abf2171869582581dd275d556bad87411.tar.gz |
IVGCVSW-2254 Add Reference workload for Maximum
Change-Id: Id7302c6b1df995ebe6eb8eb94bab38bee1b31b0b
Diffstat (limited to 'src/backends/reference/workloads')
5 files changed, 43 insertions, 0 deletions
diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt index 86c5f908b9..b9c150f6d4 100644 --- a/src/backends/reference/workloads/CMakeLists.txt +++ b/src/backends/reference/workloads/CMakeLists.txt @@ -17,6 +17,7 @@ list(APPEND armnnRefBackendWorkloads_sources ElementwiseFunction.hpp FullyConnected.cpp FullyConnected.hpp + Maximum.hpp Merger.hpp Pad.cpp Pad.hpp diff --git a/src/backends/reference/workloads/ElementwiseFunction.cpp b/src/backends/reference/workloads/ElementwiseFunction.cpp index bea3d2fb89..bb15049faa 100644 --- a/src/backends/reference/workloads/ElementwiseFunction.cpp +++ b/src/backends/reference/workloads/ElementwiseFunction.cpp @@ -7,6 +7,8 @@ #include "Broadcast.hpp" #include <functional> +#include "Maximum.hpp" + namespace armnn { @@ -27,3 +29,4 @@ template struct armnn::ElementwiseFunction<std::plus<float>>; template struct armnn::ElementwiseFunction<std::minus<float>>; template struct armnn::ElementwiseFunction<std::multiplies<float>>; template struct armnn::ElementwiseFunction<std::divides<float>>; +template struct armnn::ElementwiseFunction<armnn::maximum<float>>;
\ No newline at end of file diff --git a/src/backends/reference/workloads/Maximum.hpp b/src/backends/reference/workloads/Maximum.hpp new file mode 100644 index 0000000000..524afffc44 --- /dev/null +++ b/src/backends/reference/workloads/Maximum.hpp @@ -0,0 +1,22 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include <iostream> + +namespace armnn +{ + template<typename T> + struct maximum + { + T + operator () (const T& inputData0, const T& inputData1) const + { + return std::max(inputData0, inputData1); + } + }; + +} //namespace armnn diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.cpp b/src/backends/reference/workloads/RefElementwiseWorkload.cpp index 8e312a7dd1..60a1b990f7 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.cpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.cpp @@ -67,3 +67,6 @@ template class armnn::BaseUint8ElementwiseWorkload<armnn::MultiplicationQueueDes template class armnn::BaseFloat32ElementwiseWorkload<armnn::DivisionQueueDescriptor, std::divides<float>>; template class armnn::BaseUint8ElementwiseWorkload<armnn::DivisionQueueDescriptor, std::divides<float>>; + +template class armnn::BaseFloat32ElementwiseWorkload<armnn::MaximumQueueDescriptor, armnn::maximum<float>>; +template class armnn::BaseUint8ElementwiseWorkload<armnn::MaximumQueueDescriptor, armnn::maximum<float>>; diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.hpp b/src/backends/reference/workloads/RefElementwiseWorkload.hpp index 156613a49f..2772b77631 100644 --- a/src/backends/reference/workloads/RefElementwiseWorkload.hpp +++ b/src/backends/reference/workloads/RefElementwiseWorkload.hpp @@ -9,6 +9,7 @@ #include <backendsCommon/StringMapping.hpp> #include <backendsCommon/Workload.hpp> #include <backendsCommon/WorkloadData.hpp> +#include "Maximum.hpp" namespace armnn { @@ -119,4 +120,17 @@ using RefDivisionUint8Workload = DivisionQueueDescriptor, StringMapping::RefDivisionWorkload_Execute>; + +using RefMaximumFloat32Workload = + RefElementwiseWorkload<armnn::maximum<float>, + DataType::Float32, + MaximumQueueDescriptor, + StringMapping::RefMaximumWorkload_Execute>; + +using RefMaximumUint8Workload = + RefElementwiseWorkload<armnn::maximum<float>, + DataType::QuantisedAsymm8, + MaximumQueueDescriptor, + StringMapping::RefMaximumWorkload_Execute>; + } // armnn |