aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl/test
diff options
context:
space:
mode:
authorMatthew Jackson <matthew.jackson@arm.com>2019-07-31 14:06:28 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-08-01 09:42:03 +0000
commitd5166106ebfc11b1db832a708892e12edeaf997e (patch)
tree8f4be789711ed50b0bddf50a813caf4b823a59e9 /src/backends/cl/test
parent2208b604dea6919525a12779df9aa5e49ea6a539 (diff)
downloadarmnn-d5166106ebfc11b1db832a708892e12edeaf997e.tar.gz
IVGCVSW-3539 Add CL support and tests for Stack
* Added CL backend support for Stack * Added unit tests for Stack on the CL backend * Refactored unit tests to support generic data types Signed-off-by: Matthew Jackson <matthew.jackson@arm.com> Change-Id: I38ee3e9d8947ea98a3104c982698001e704d7d89
Diffstat (limited to 'src/backends/cl/test')
-rw-r--r--src/backends/cl/test/ClCreateWorkloadTests.cpp38
-rw-r--r--src/backends/cl/test/ClLayerTests.cpp7
2 files changed, 45 insertions, 0 deletions
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index de13390f87..f453ccc9fd 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -936,4 +936,42 @@ BOOST_AUTO_TEST_CASE(CreateSpaceToDepthQSymm16Workload)
ClSpaceToDepthWorkloadTest<ClSpaceToDepthWorkload, armnn::DataType::QuantisedSymm16>();
}
+template <armnn::DataType DataType>
+static void ClCreateStackWorkloadTest(const std::initializer_list<unsigned int>& inputShape,
+ const std::initializer_list<unsigned int>& outputShape,
+ unsigned int axis,
+ unsigned int numInputs)
+{
+ armnn::Graph graph;
+ ClWorkloadFactory factory =
+ ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager());
+
+ auto workload = CreateStackWorkloadTest<ClStackWorkload, DataType>(factory,
+ graph,
+ TensorShape(inputShape),
+ TensorShape(outputShape),
+ axis,
+ numInputs);
+
+ // Check inputs and output are as expected
+ StackQueueDescriptor queueDescriptor = workload->GetData();
+ for (unsigned int i = 0; i < numInputs; ++i)
+ {
+ auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[i]);
+ BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
+ }
+ auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
+ BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+}
+
+BOOST_AUTO_TEST_CASE(CreateStackFloat32Workload)
+{
+ ClCreateStackWorkloadTest<armnn::DataType::Float32>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2);
+}
+
+BOOST_AUTO_TEST_CASE(CreateStackUint8Workload)
+{
+ ClCreateStackWorkloadTest<armnn::DataType::QuantisedAsymm8>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2);
+}
+
BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp
index 37af471658..dd4c16edf4 100644
--- a/src/backends/cl/test/ClLayerTests.cpp
+++ b/src/backends/cl/test/ClLayerTests.cpp
@@ -496,6 +496,13 @@ ARMNN_AUTO_TEST_CASE(SpaceToDepthNCHW2Float32, SpaceToDepthNCHWFloat32Test2)
ARMNN_AUTO_TEST_CASE(SpaceToDepthNHWCQSymm16, SpaceToDepthNHWCQSymm16Test)
ARMNN_AUTO_TEST_CASE(SpaceToDepthNCHWQSymm16, SpaceToDepthNCHWQSymm16Test)
+// Stack
+ARMNN_AUTO_TEST_CASE(Stack0Axis, Stack0AxisTest<armnn::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(Stack4dOutput1Axis, Stack4dOutput1AxisTest<armnn::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(Stack4dOutput2Axis, Stack4dOutput2AxisTest<armnn::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(Stack4dOutput3Axis, Stack4dOutput3AxisTest<armnn::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(Stack3dOutput1Axis3Input, Stack3dOutput1Axis3InputTest<armnn::DataType::Float32>)
+
// Strided Slice
ARMNN_AUTO_TEST_CASE(StridedSlice4DFloat32, StridedSlice4DFloat32Test)
ARMNN_AUTO_TEST_CASE(StridedSlice4DReverseFloat32, StridedSlice4DReverseFloat32Test)