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/CreateWorkloadCl.cpp | 43 ++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 13 deletions(-) (limited to 'src/backends/test/CreateWorkloadCl.cpp') diff --git a/src/backends/test/CreateWorkloadCl.cpp b/src/backends/test/CreateWorkloadCl.cpp index 0314f6d92a..411f72baee 100644 --- a/src/backends/test/CreateWorkloadCl.cpp +++ b/src/backends/test/CreateWorkloadCl.cpp @@ -199,32 +199,49 @@ BOOST_AUTO_TEST_CASE(CreateConvertFp32ToFp16Workload) BOOST_TEST((outputHandle->GetTensor().info()->data_type() == arm_compute::DataType::F16)); } -template -static void ClConvolution2dWorkloadTest() +template +static void ClConvolution2dWorkloadTest(DataLayout dataLayout) { Graph graph; ClWorkloadFactory factory; - auto workload = CreateConvolution2dWorkloadTest(factory, graph); + auto workload = CreateConvolution2dWorkloadTest(factory, + graph, + dataLayout); + + std::initializer_list inputShape = (dataLayout == DataLayout::NCHW) ? + std::initializer_list({2, 3, 8, 16}) : std::initializer_list({2, 8, 16, 3}); + std::initializer_list outputShape = (dataLayout == DataLayout::NCHW) ? + std::initializer_list({2, 2, 2, 10}) : std::initializer_list({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(CompareIClTensorHandleShape(inputHandle, {2, 3, 8, 16})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {2, 2, 2, 10})); + BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); + BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); } -BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatWorkload) +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload) { - ClConvolution2dWorkloadTest(); + ClConvolution2dWorkloadTest(DataLayout::NCHW); } -BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16Workload) +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNhwcWorkload) { - ClConvolution2dWorkloadTest(); + ClConvolution2dWorkloadTest(DataLayout::NHWC); } -template +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16NchwWorkload) +{ + ClConvolution2dWorkloadTest(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16NhwcWorkload) +{ + ClConvolution2dWorkloadTest(DataLayout::NHWC); +} + +template static void ClDirectConvolution2dWorkloadTest() { Graph graph; @@ -241,17 +258,17 @@ static void ClDirectConvolution2dWorkloadTest() BOOST_AUTO_TEST_CASE(CreateDirectConvolution2dFloatWorkload) { - ClDirectConvolution2dWorkloadTest(); + ClDirectConvolution2dWorkloadTest(); } BOOST_AUTO_TEST_CASE(CreateDirectConvolution2dFloat16Workload) { - ClDirectConvolution2dWorkloadTest(); + ClDirectConvolution2dWorkloadTest(); } BOOST_AUTO_TEST_CASE(CreateDirectConvolution2dUint8Workload) { - ClDirectConvolution2dWorkloadTest(); + ClDirectConvolution2dWorkloadTest(); } template -- cgit v1.2.1