From 4a8692cf18ebd3c4de125274d5c840d7be64e3cd Mon Sep 17 00:00:00 2001 From: David Beck Date: Fri, 7 Sep 2018 16:19:24 +0100 Subject: IVGCVSW-1801 : Cl implementation for SUB Change-Id: Ia2e1dda8653197454a50679d49020397f5327979 --- src/armnn/backends/test/ArmComputeCl.cpp | 19 +++++ src/armnn/backends/test/CreateWorkloadCl.cpp | 101 +++++++++++++++++---------- src/armnn/backends/test/Reference.cpp | 2 +- 3 files changed, 84 insertions(+), 38 deletions(-) (limited to 'src/armnn/backends/test') diff --git a/src/armnn/backends/test/ArmComputeCl.cpp b/src/armnn/backends/test/ArmComputeCl.cpp index 275d570a6c..3303c3fb51 100644 --- a/src/armnn/backends/test/ArmComputeCl.cpp +++ b/src/armnn/backends/test/ArmComputeCl.cpp @@ -139,6 +139,25 @@ ARMNN_AUTO_TEST_CASE(UNSUPPORTED_L2Pooling2dSize9Uint8, L2Pooling2dSize9Uint8Tes // Add ARMNN_AUTO_TEST_CASE(SimpleAdd, AdditionTest) ARMNN_AUTO_TEST_CASE(AddBroadcast1Element, AdditionBroadcast1ElementTest) +ARMNN_AUTO_TEST_CASE(AddBroadcast, AdditionBroadcastTest) + +ARMNN_AUTO_TEST_CASE(AdditionUint8, AdditionUint8Test) +ARMNN_AUTO_TEST_CASE(AddBroadcastUint8, AdditionBroadcastUint8Test) +ARMNN_AUTO_TEST_CASE(AddBroadcast1ElementUint8, AdditionBroadcast1ElementUint8Test) + +// Sub +ARMNN_AUTO_TEST_CASE(SimpleSub, SubtractionTest) + +// TODO : +// 1, enable broadcast tests for SUB when COMPMID-1566 is implemented (IVGCVSW-1837) +// 2, enable quantized tests for SUB when COMPMID-1564 is implemented (IVGCVSW-1836) + +// ARMNN_AUTO_TEST_CASE(SubBroadcast1Element, SubtractionBroadcast1ElementTest) +// ARMNN_AUTO_TEST_CASE(SubBroadcast, SubtractionBroadcastTest) + +// ARMNN_AUTO_TEST_CASE(SubtractionUint8, SubtractionUint8Test) +// ARMNN_AUTO_TEST_CASE(SubBroadcastUint8, SubtractionBroadcastUint8Test) +// ARMNN_AUTO_TEST_CASE(SubBroadcast1ElementUint8, SubtractionBroadcast1ElementUint8Test) // Div ARMNN_AUTO_TEST_CASE(SimpleDivision, DivisionTest) diff --git a/src/armnn/backends/test/CreateWorkloadCl.cpp b/src/armnn/backends/test/CreateWorkloadCl.cpp index 96001a4b78..340279e619 100644 --- a/src/armnn/backends/test/CreateWorkloadCl.cpp +++ b/src/armnn/backends/test/CreateWorkloadCl.cpp @@ -47,15 +47,18 @@ BOOST_AUTO_TEST_CASE(CreateActivationFloat16Workload) ClCreateActivationWorkloadTest(); } -template -static void ClCreateAdditionWorkloadTest() +template +static void ClCreateArithmethicWorkloadTest() { Graph graph; ClWorkloadFactory factory; - auto workload = CreateAdditionWorkloadTest(factory, graph); + auto workload = CreateArithmeticWorkloadTest(factory, graph); - // Checks that inputs/outputs are as we expect them (see definition of CreateAdditionWorkloadTest). - AdditionQueueDescriptor queueDescriptor = workload->GetData(); + // Checks that inputs/outputs are as we expect them (see definition of CreateSubtractionWorkloadTest). + DescriptorType queueDescriptor = workload->GetData(); auto inputHandle1 = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); auto inputHandle2 = boost::polymorphic_downcast(queueDescriptor.m_Inputs[1]); auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); @@ -66,12 +69,66 @@ static void ClCreateAdditionWorkloadTest() BOOST_AUTO_TEST_CASE(CreateAdditionFloatWorkload) { - ClCreateAdditionWorkloadTest(); + ClCreateArithmethicWorkloadTest(); } BOOST_AUTO_TEST_CASE(CreateAdditionFloat16Workload) { - ClCreateAdditionWorkloadTest(); + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateSubtractionFloatWorkload) +{ + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateSubtractionFloat16Workload) +{ + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateMultiplicationFloatWorkloadTest) +{ + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateMultiplicationFloat16WorkloadTest) +{ + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateDivisionFloatWorkloadTest) +{ + ClCreateArithmethicWorkloadTest(); +} + +BOOST_AUTO_TEST_CASE(CreateDivisionFloat16WorkloadTest) +{ + ClCreateArithmethicWorkloadTest(); } template @@ -219,36 +276,6 @@ BOOST_AUTO_TEST_CASE(CreateFullyConnectedFloat16WorkloadTest) ClCreateFullyConnectedWorkloadTest(); } - -template -static void ClCreateMultiplicationWorkloadTest() -{ - Graph graph; - ClWorkloadFactory factory; - - auto workload = - CreateMultiplicationWorkloadTest(factory, graph); - - // Checks that inputs/outputs are as we expect them (see definition of CreateMultiplicationWorkloadTest). - MultiplicationQueueDescriptor queueDescriptor = workload->GetData(); - auto inputHandle1 = boost::polymorphic_downcast(queueDescriptor.m_Inputs[0]); - auto inputHandle2 = boost::polymorphic_downcast(queueDescriptor.m_Inputs[1]); - auto outputHandle = boost::polymorphic_downcast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle1, {2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle2, {2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {2, 3})); -} - -BOOST_AUTO_TEST_CASE(CreateMultiplicationFloatWorkloadTest) -{ - ClCreateMultiplicationWorkloadTest(); -} - -BOOST_AUTO_TEST_CASE(CreateMultiplicationFloat16WorkloadTest) -{ - ClCreateMultiplicationWorkloadTest(); -} - template static void ClNormalizationWorkloadTest() { diff --git a/src/armnn/backends/test/Reference.cpp b/src/armnn/backends/test/Reference.cpp index 5a5f79d965..20e68d0ea1 100644 --- a/src/armnn/backends/test/Reference.cpp +++ b/src/armnn/backends/test/Reference.cpp @@ -151,7 +151,7 @@ ARMNN_AUTO_TEST_CASE(SimpleSub, SubtractionTest) ARMNN_AUTO_TEST_CASE(SubBroadcast1Element, SubtractionBroadcast1ElementTest) ARMNN_AUTO_TEST_CASE(SubBroadcast, SubtractionBroadcastTest) -ARMNN_AUTO_TEST_CASE(SubitionUint8, SubtractionUint8Test) +ARMNN_AUTO_TEST_CASE(SubtractionUint8, SubtractionUint8Test) ARMNN_AUTO_TEST_CASE(SubBroadcastUint8, SubtractionBroadcastUint8Test) ARMNN_AUTO_TEST_CASE(SubBroadcast1ElementUint8, SubtractionBroadcast1ElementUint8Test) -- cgit v1.2.1