diff options
Diffstat (limited to 'src/backends/cl/test')
-rw-r--r-- | src/backends/cl/test/ClCreateWorkloadTests.cpp | 42 | ||||
-rw-r--r-- | src/backends/cl/test/ClLayerTests.cpp | 4 |
2 files changed, 46 insertions, 0 deletions
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index aa1393f407..9e4f85b46c 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -452,6 +452,48 @@ BOOST_AUTO_TEST_CASE(CreatePooling2dFloat16NhwcWorkload) ClPooling2dWorkloadTest<armnn::DataType::Float16>(DataLayout::NHWC); } +static void ClCreatePreluWorkloadTest(const armnn::TensorShape& inputShape, + const armnn::TensorShape& alphaShape, + const armnn::TensorShape& outputShape, + armnn::DataType dataType) +{ + Graph graph; + ClWorkloadFactory factory = + ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager()); + + auto workload = CreatePreluWorkloadTest<ClPreluWorkload>(factory, + graph, + inputShape, + alphaShape, + outputShape, + dataType); + + // Checks that outputs and inputs are as we expect them (see definition of CreatePreluWorkloadTest). + PreluQueueDescriptor queueDescriptor = workload->GetData(); + auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); + auto alphaHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[1]); + auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]); + + BOOST_TEST((inputHandle->GetShape() == inputShape)); + BOOST_TEST((alphaHandle->GetShape() == alphaShape)); + BOOST_TEST((outputHandle->GetShape() == outputShape)); +} + +BOOST_AUTO_TEST_CASE(CreatePreluFloat16Workload) +{ + ClCreatePreluWorkloadTest({ 1, 4, 1, 2 }, { 5, 4, 3, 1 }, { 5, 4, 3, 2 }, DataType::Float16); +} + +BOOST_AUTO_TEST_CASE(CreatePreluFloatWorkload) +{ + ClCreatePreluWorkloadTest({ 1, 4, 1, 2 }, { 5, 4, 3, 1 }, { 5, 4, 3, 2 }, DataType::Float32); +} + +BOOST_AUTO_TEST_CASE(CreatePreluUint8Workload) +{ + ClCreatePreluWorkloadTest({ 1, 4, 1, 2 }, { 5, 4, 3, 1 }, { 5, 4, 3, 2 }, DataType::QuantisedAsymm8); +} + template <typename armnn::DataType DataType> static void ClCreateReshapeWorkloadTest() { diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp index 3618adc70d..9ac244e505 100644 --- a/src/backends/cl/test/ClLayerTests.cpp +++ b/src/backends/cl/test/ClLayerTests.cpp @@ -331,6 +331,10 @@ ARMNN_AUTO_TEST_CASE(PadFloat322d, PadFloat322dTest) ARMNN_AUTO_TEST_CASE(PadFloat323d, PadFloat323dTest) ARMNN_AUTO_TEST_CASE(PadFloat324d, PadFloat324dTest) +// PReLU +ARMNN_AUTO_TEST_CASE(PreluFloat32, PreluTest<armnn::DataType::Float32>) +ARMNN_AUTO_TEST_CASE(PreluUint8, PreluTest<armnn::DataType::QuantisedAsymm8>) + // Permute ARMNN_AUTO_TEST_CASE(SimplePermuteFloat32, SimplePermuteFloat32Test) ARMNN_AUTO_TEST_CASE(SimplePermuteUint8, SimplePermuteUint8Test) |