diff options
author | Francis Murtagh <francis.murtagh@arm.com> | 2018-10-09 16:22:33 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-10 16:16:58 +0100 |
commit | 0d9d4193200e8bfbaf4cb8f32c866d5fe73a3e7e (patch) | |
tree | 2abd3fc91e315a197a98ee4113ac4759f792047f /src/backends/test/CreateWorkloadNeon.cpp | |
parent | b48e68674e600d68ca7059736d930ada6a3b4969 (diff) | |
download | armnn-0d9d4193200e8bfbaf4cb8f32c866d5fe73a3e7e.tar.gz |
IVGCVSW-1974 - Update CreateWorkload test CL and Neon
Change-Id: Ie02ccbd5945cbacd609b3b5d8d746c202c8e9c69
Diffstat (limited to 'src/backends/test/CreateWorkloadNeon.cpp')
-rw-r--r-- | src/backends/test/CreateWorkloadNeon.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
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 <typename Convolution2dWorkloadType, typename armnn::DataType DataType> -static void NeonCreateConvolution2dWorkloadTest() +static void NeonCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayout::NCHW) { Graph graph; NeonWorkloadFactory factory; auto workload = CreateConvolution2dWorkloadTest<Convolution2dWorkloadType, - DataType>(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<INeonTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = boost::polymorphic_downcast<INeonTensorHandle*>(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<NeonConvolution2dFloatWorkload, DataType::Float16>(); } -#endif -BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatWorkload) +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloat16NhwcWorkload) +{ + NeonCreateConvolution2dWorkloadTest<NeonConvolution2dFloatWorkload, DataType::Float16>(DataLayout::NHWC); +} + +#endif +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload) { NeonCreateConvolution2dWorkloadTest<NeonConvolution2dFloatWorkload, DataType::Float32>(); } +BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNhwcWorkload) +{ + NeonCreateConvolution2dWorkloadTest<NeonConvolution2dFloatWorkload, DataType::Float32>(DataLayout::NHWC); +} + template <typename FullyConnectedWorkloadType, typename armnn::DataType DataType> static void NeonCreateFullyConnectedWorkloadTest() { |