From 0d9d4193200e8bfbaf4cb8f32c866d5fe73a3e7e Mon Sep 17 00:00:00 2001 From: Francis Murtagh Date: Tue, 9 Oct 2018 16:22:33 +0100 Subject: IVGCVSW-1974 - Update CreateWorkload test CL and Neon Change-Id: Ie02ccbd5945cbacd609b3b5d8d746c202c8e9c69 --- src/backends/test/CreateWorkloadNeon.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'src/backends/test/CreateWorkloadNeon.cpp') diff --git a/src/backends/test/CreateWorkloadNeon.cpp b/src/backends/test/CreateWorkloadNeon.cpp index a67e68d8a5..b2ec563a69 100644 --- a/src/backends/test/CreateWorkloadNeon.cpp +++ b/src/backends/test/CreateWorkloadNeon.cpp @@ -179,33 +179,46 @@ BOOST_AUTO_TEST_CASE(CreateBatchNormalizationFloatWorkload) } template -static void NeonCreateConvolution2dWorkloadTest() +static void NeonCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayout::NCHW) { Graph graph; NeonWorkloadFactory factory; auto workload = CreateConvolution2dWorkloadTest(factory, graph); + DataType>(factory, graph, dataLayout); + + TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{2, 3, 8, 16} : TensorShape{2, 8, 16, 3}; + TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? TensorShape{2, 2, 2, 10} : TensorShape{2, 2, 10, 2}; // Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest). Convolution2dQueueDescriptor 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({2, 3, 8, 16}, DataType))); - BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo({2, 2, 2, 10}, DataType))); + BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, TensorInfo(inputShape, DataType))); + BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo(outputShape, DataType))); } #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC -BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16Workload) +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16NchwWorkload) { NeonCreateConvolution2dWorkloadTest(); } -#endif -BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatWorkload) +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16NhwcWorkload) +{ + NeonCreateConvolution2dWorkloadTest(DataLayout::NHWC); +} + +#endif +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload) { NeonCreateConvolution2dWorkloadTest(); } +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNhwcWorkload) +{ + NeonCreateConvolution2dWorkloadTest(DataLayout::NHWC); +} + template static void NeonCreateFullyConnectedWorkloadTest() { -- cgit v1.2.1