aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefComparisonWorkload.cpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2019-04-09 10:25:02 +0100
committerDerek Lamberti <derek.lamberti@arm.com>2019-04-10 15:13:41 +0100
commitf30f7d32b22020f80b21da7b008d8302cee9d395 (patch)
tree2e213da4704c46b40f20629223365d1ddbf8d8cd /src/backends/reference/workloads/RefComparisonWorkload.cpp
parent82fbe7c0b82f7adadd5120ac4b4f779d0da7c0d5 (diff)
downloadarmnn-f30f7d32b22020f80b21da7b008d8302cee9d395.tar.gz
IVGCVSW-2946 RefElementwiseWorkload configures prior to first execute
+ Added PostAllocationConfigure() method to workload interface + Elementwise function now deduces types based on Functor - Replaced RefComparisonWorkload with RefElementwiseWorkload specialization + Fixed up unit tests and minor formatting Change-Id: I33d08797767bba01cf4efb2904920ce0f950a4fe Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'src/backends/reference/workloads/RefComparisonWorkload.cpp')
-rw-r--r--src/backends/reference/workloads/RefComparisonWorkload.cpp76
1 files changed, 0 insertions, 76 deletions
diff --git a/src/backends/reference/workloads/RefComparisonWorkload.cpp b/src/backends/reference/workloads/RefComparisonWorkload.cpp
deleted file mode 100644
index bb8bb04ad3..0000000000
--- a/src/backends/reference/workloads/RefComparisonWorkload.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "RefComparisonWorkload.hpp"
-#include "ElementwiseFunction.hpp"
-#include "RefWorkloadUtils.hpp"
-#include "Profiling.hpp"
-#include <vector>
-
-namespace armnn {
-
-template <typename Functor, typename ParentDescriptor, typename armnn::StringMapping::Id DebugString>
-void RefComparisonWorkload<Functor, ParentDescriptor, DebugString>::Execute() const
-{
- ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, StringMapping::Instance().Get(DebugString));
- const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
- const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
- const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
-
- const TensorShape& inShape0 = inputInfo0.GetShape();
- const TensorShape& inShape1 = inputInfo1.GetShape();
- const TensorShape& outShape = outputInfo.GetShape();
-
- switch(inputInfo0.GetDataType())
- {
- case armnn::DataType::QuantisedAsymm8:
- {
- QASymm8Decoder decodeIterator0(GetInputTensorDataU8(0, m_Data),
- inputInfo0.GetQuantizationScale(),
- inputInfo0.GetQuantizationOffset());
-
- QASymm8Decoder decodeIterator1(GetInputTensorDataU8(1, m_Data),
- inputInfo1.GetQuantizationScale(),
- inputInfo1.GetQuantizationOffset());
-
- BooleanEncoder encodeIterator0(GetOutputTensorDataU8(0, m_Data));
-
- ElementwiseFunction<Functor, Decoder, ComparisonEncoder>(inShape0,
- inShape1,
- outShape,
- decodeIterator0,
- decodeIterator1,
- encodeIterator0);
- break;
- }
- case armnn::DataType::Float32:
- {
- FloatDecoder decodeIterator0(GetInputTensorDataFloat(0, m_Data));
- FloatDecoder decodeIterator1(GetInputTensorDataFloat(1, m_Data));
- BooleanEncoder encodeIterator0(GetOutputTensorDataU8(0, m_Data));
-
- ElementwiseFunction<Functor, Decoder, ComparisonEncoder>(inShape0,
- inShape1,
- outShape,
- decodeIterator0,
- decodeIterator1,
- encodeIterator0);
- break;
- }
- default:
- BOOST_ASSERT_MSG(false, "RefComparisonWorkload: Not supported Data Type!");
- break;
- }
-}
-
-}
-
-template class armnn::RefComparisonWorkload<std::equal_to<float>,
- armnn::EqualQueueDescriptor,
- armnn::StringMapping::RefEqualWorkload_Execute>;
-
-template class armnn::RefComparisonWorkload<std::greater<float>,
- armnn::GreaterQueueDescriptor,
- armnn::StringMapping::RefGreaterWorkload_Execute>;