aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon
diff options
context:
space:
mode:
authorMatthew Sloyan <matthew.sloyan@arm.com>2022-11-14 10:18:01 +0000
committerMatthew Sloyan <matthew.sloyan@arm.com>2022-11-14 17:59:27 +0000
commit2523b79fd01dfba6c12fa903c80b7a66b853f861 (patch)
treec1ffbec232c4e249ea3f32b77dd2405726b46993 /src/backends/backendsCommon
parentf53b28f27bfe9cb0c92aa3103622f0fbd3d279c5 (diff)
downloadarmnn-2523b79fd01dfba6c12fa903c80b7a66b853f861.tar.gz
Add additional data type support to TOSA Reference Backend
* Added all data types to TosaRefPreCompiledWorkload::Execute(). * Generalised IsTosaLayerSupported and fixed Addition support. * Added Fp16 and Int32 Addition End to End tests. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I1f89c310ede33615427343e89bcec7e7bb643fa1
Diffstat (limited to 'src/backends/backendsCommon')
-rw-r--r--src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
index f1a93c7548..a1a8bac0e7 100644
--- a/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/AdditionEndToEndTestImpl.hpp
@@ -4,12 +4,12 @@
//
#pragma once
-#include <ResolveType.hpp>
-
#include <armnn/INetwork.hpp>
-#include <doctest/doctest.h>
#include <CommonTestUtils.hpp>
+#include <ResolveType.hpp>
+
+#include <doctest/doctest.h>
namespace
{
@@ -78,4 +78,31 @@ void AdditionEndToEnd(const std::vector<armnn::BackendId>& backends)
EndToEndLayerTestImpl<ArmnnType, ArmnnType>(std::move(network), inputTensorData, expectedOutputData, backends);
}
+template<armnn::DataType ArmnnType>
+void AdditionEndToEndFloat16(const std::vector<armnn::BackendId>& backends)
+{
+ using namespace armnn;
+ using namespace half_float::literal;
+ using Half = half_float::half;
+
+ const TensorShape& inputXShape = { 2, 2 };
+ const TensorShape& inputYShape = { 2, 2 };
+ const TensorShape& outputShape = { 2, 2 };
+
+ INetworkPtr network = CreateAdditionNetwork<ArmnnType>(inputXShape, inputYShape, outputShape);
+ CHECK(network);
+
+ std::vector<Half> inputXData{ 1._h, 2._h,
+ 3._h, 4._h };
+ std::vector<Half> inputYData{ 5._h, 7._h,
+ 6._h, 8._h };
+ std::vector<Half> expectedOutput{ 6._h, 9._h,
+ 9._h, 12._h };
+
+ std::map<int, std::vector<Half>> inputTensorData = {{ 0, inputXData }, { 1, inputYData }};
+ std::map<int, std::vector<Half>> expectedOutputData = { { 0, expectedOutput } };
+
+ EndToEndLayerTestImpl<ArmnnType, ArmnnType>(std::move(network), inputTensorData, expectedOutputData, backends);
+}
+
} // anonymous namespaceS \ No newline at end of file