From bcd3c85b5a7657b38f503676b88a80ae74165acd Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Fri, 28 Sep 2018 14:14:12 +0100 Subject: IVGCVSW-1863 Support NHWC for L2Normalization * Added L2NormalizationDescriptor struct with m_DataLyaout member * Updated all IsL2NormalizationSupported calls to take a descriptor as an argument * Updated L2NormalizationLayer to take a descriptor as an argument !android-nn-driver:150116 Change-Id: I0459352d19cfd269bc864a70cf73910bf44fdc01 --- src/backends/test/CreateWorkloadNeon.cpp | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src/backends/test/CreateWorkloadNeon.cpp') diff --git a/src/backends/test/CreateWorkloadNeon.cpp b/src/backends/test/CreateWorkloadNeon.cpp index 36ad9a4b77..e9fcb56d17 100644 --- a/src/backends/test/CreateWorkloadNeon.cpp +++ b/src/backends/test/CreateWorkloadNeon.cpp @@ -452,4 +452,42 @@ BOOST_AUTO_TEST_CASE(CreateMemCopyWorkloadsNeon) CreateMemCopyWorkloads(factory); } +template +static void NeonCreateL2NormalizationWorkloadTest(DataLayout dataLayout) +{ + Graph graph; + NeonWorkloadFactory factory; + auto workload = CreateL2NormalizationWorkloadTest(factory, graph, dataLayout); + + // Checks that inputs/outputs are as we expect them (see definition of CreateNormalizationWorkloadTest). + L2NormalizationQueueDescriptor queueDescriptor = workload->GetData(); + auto inputHandle = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); + auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); + BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, TensorInfo({ 5, 20, 50, 67 }, DataType))); + BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo({ 5, 20, 50, 67 }, DataType))); +} + +#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC +BOOST_AUTO_TEST_CASE(CreateL2NormalizationFloat16NchwWorkload) +{ + NeonCreateL2NormalizationWorkloadTest(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateL2NormalizationFloat16NhwcWorkload) +{ + NeonCreateL2NormalizationWorkloadTest(DataLayout::NHWC); +} +#endif + +BOOST_AUTO_TEST_CASE(CreateL2NormalizationNchwWorkload) +{ + NeonCreateL2NormalizationWorkloadTest(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateL2NormalizationNhwcWorkload) +{ + NeonCreateL2NormalizationWorkloadTest(DataLayout::NHWC); +} + BOOST_AUTO_TEST_SUITE_END() -- cgit v1.2.1