aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSadik Armagan <sadik.armagan@arm.com>2021-11-24 15:47:28 +0000
committerSadik Armagan <sadik.armagan@arm.com>2021-12-14 11:02:41 +0000
commita097d2a0ed8e30d5aaf6d29ec18d0c39201b7b67 (patch)
tree947e587bc42d07f52c55b155308b5ea5bd3ebacd /include
parentbc14881a76699dd942e94265116da68a6466455e (diff)
downloadarmnn-a097d2a0ed8e30d5aaf6d29ec18d0c39201b7b67.tar.gz
IVGCVSW-6453 'Move the ArmNN Test Utils code to a physically separate directory'
* Created include/armnnTestUtils directory * Moved Arm NN test utils files into armnnTestUtils directory Signed-off-by: Sadik Armagan <sadik.armagan@arm.com> Change-Id: I03ac54c645c41c52650c4c03b6a58fb1481fef5d
Diffstat (limited to 'include')
-rw-r--r--include/armnnTestUtils/DataLayoutUtils.hpp60
-rw-r--r--include/armnnTestUtils/LayerTestResult.hpp63
-rw-r--r--include/armnnTestUtils/PredicateResult.hpp48
-rw-r--r--include/armnnTestUtils/TensorCopyUtils.hpp15
4 files changed, 186 insertions, 0 deletions
diff --git a/include/armnnTestUtils/DataLayoutUtils.hpp b/include/armnnTestUtils/DataLayoutUtils.hpp
new file mode 100644
index 0000000000..fde6f172cc
--- /dev/null
+++ b/include/armnnTestUtils/DataLayoutUtils.hpp
@@ -0,0 +1,60 @@
+//
+// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+
+#include <armnnUtils/Permute.hpp>
+
+template<typename T>
+void PermuteTensorNchwToNhwc(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData)
+{
+ const armnn::PermutationVector nchwToNhwc = { 0, 3, 1, 2 };
+
+ tensorInfo = armnnUtils::Permuted(tensorInfo, nchwToNhwc);
+
+ std::vector<T> tmp(tensorData.size());
+ armnnUtils::Permute(tensorInfo.GetShape(), nchwToNhwc, tensorData.data(), tmp.data(), sizeof(T));
+ tensorData = tmp;
+}
+
+template<typename T>
+void PermuteTensorNhwcToNchw(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData)
+{
+ const armnn::PermutationVector nhwcToNchw = { 0, 2, 3, 1 };
+
+ tensorInfo = armnnUtils::Permuted(tensorInfo, nhwcToNchw);
+
+ std::vector<T> tmp(tensorData.size());
+ armnnUtils::Permute(tensorInfo.GetShape(), nhwcToNchw, tensorData.data(), tmp.data(), sizeof(T));
+
+ tensorData = tmp;
+}
+
+template<typename T>
+void PermuteTensorNdhwcToNcdhw(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData)
+{
+ const armnn::PermutationVector ndhwcToNcdhw = { 0, 2, 3, 4, 1 };
+
+ tensorInfo = armnnUtils::Permuted(tensorInfo, ndhwcToNcdhw);
+
+ std::vector<T> tmp(tensorData.size());
+ armnnUtils::Permute(tensorInfo.GetShape(), ndhwcToNcdhw, tensorData.data(), tmp.data(), sizeof(T));
+ tensorData = tmp;
+}
+
+template<typename T>
+void PermuteTensorNcdhwToNdhwc(armnn::TensorInfo& tensorInfo, std::vector<T>& tensorData)
+{
+ const armnn::PermutationVector ncdhwToNdhwc = { 0, 4, 1, 2, 3 };
+
+ tensorInfo = armnnUtils::Permuted(tensorInfo, ncdhwToNdhwc);
+
+ std::vector<T> tmp(tensorData.size());
+ armnnUtils::Permute(tensorInfo.GetShape(), ncdhwToNdhwc, tensorData.data(), tmp.data(), sizeof(T));
+ tensorData = tmp;
+}
diff --git a/include/armnnTestUtils/LayerTestResult.hpp b/include/armnnTestUtils/LayerTestResult.hpp
new file mode 100644
index 0000000000..410973e4b1
--- /dev/null
+++ b/include/armnnTestUtils/LayerTestResult.hpp
@@ -0,0 +1,63 @@
+//
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <armnn/Tensor.hpp>
+#include <armnn/utility/Assert.hpp>
+
+#include <cstddef>
+#include <vector>
+
+template <typename T, std::size_t n>
+struct LayerTestResult
+{
+ LayerTestResult(const armnn::TensorInfo& outputInfo)
+ : m_Supported(true)
+ , m_CompareBoolean(false)
+ {
+ m_ActualData.reserve(outputInfo.GetNumElements());
+ m_ExpectedData.reserve(outputInfo.GetNumElements());
+ m_ActualShape = outputInfo.GetShape();
+ m_ExpectedShape = outputInfo.GetShape();
+ }
+
+ LayerTestResult(const std::vector<T>& actualData,
+ const std::vector<T>& expectedData,
+ const armnn::TensorShape& actualShape,
+ const armnn::TensorShape& expectedShape)
+ : m_ActualData(actualData)
+ , m_ExpectedData(expectedData)
+ , m_ActualShape(actualShape)
+ , m_ExpectedShape(expectedShape)
+ , m_Supported(true)
+ , m_CompareBoolean(false)
+ {}
+
+ LayerTestResult(const std::vector<T>& actualData,
+ const std::vector<T>& expectedData,
+ const armnn::TensorShape& actualShape,
+ const armnn::TensorShape& expectedShape,
+ const bool compareBoolean)
+ : m_ActualData(actualData)
+ , m_ExpectedData(expectedData)
+ , m_ActualShape(actualShape)
+ , m_ExpectedShape(expectedShape)
+ , m_Supported(true)
+ , m_CompareBoolean(compareBoolean)
+ {}
+
+ std::vector<T> m_ActualData;
+ std::vector<T> m_ExpectedData;
+ armnn::TensorShape m_ActualShape;
+ armnn::TensorShape m_ExpectedShape;
+
+ bool m_Supported;
+ bool m_CompareBoolean;
+};
+
+
+
+
diff --git a/include/armnnTestUtils/PredicateResult.hpp b/include/armnnTestUtils/PredicateResult.hpp
new file mode 100644
index 0000000000..a344c8e3ad
--- /dev/null
+++ b/include/armnnTestUtils/PredicateResult.hpp
@@ -0,0 +1,48 @@
+//
+// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <sstream>
+
+namespace armnn
+{
+
+class PredicateResult
+{
+public:
+ explicit PredicateResult(bool result)
+ : m_Result(result)
+ {}
+
+ PredicateResult(const PredicateResult& predicateResult)
+ : m_Result(predicateResult.m_Result)
+ , m_Message(predicateResult.m_Message.str())
+ {}
+
+ void SetResult(bool newResult)
+ {
+ m_Result = newResult;
+ }
+
+ std::stringstream& Message()
+ {
+ return m_Message;
+ }
+
+ bool operator!() const
+ {
+ return !m_Result;
+ }
+
+ void operator=(PredicateResult otherPredicateResult)
+ {
+ otherPredicateResult.m_Result = m_Result;
+ }
+
+ bool m_Result;
+ std::stringstream m_Message;
+};
+
+} // namespace armnn \ No newline at end of file
diff --git a/include/armnnTestUtils/TensorCopyUtils.hpp b/include/armnnTestUtils/TensorCopyUtils.hpp
new file mode 100644
index 0000000000..ae6072e46e
--- /dev/null
+++ b/include/armnnTestUtils/TensorCopyUtils.hpp
@@ -0,0 +1,15 @@
+//
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/Tensor.hpp>
+
+#include <armnn/backends/ITensorHandle.hpp>
+
+void CopyDataToITensorHandle(armnn::ITensorHandle* tensorHandle, const void* memory);
+
+void CopyDataFromITensorHandle(void* mem, const armnn::ITensorHandle* tensorHandle);
+
+void AllocateAndCopyDataToITensorHandle(armnn::ITensorHandle* tensorHandle, const void* memory); \ No newline at end of file