From cc34093a57ea486e48f9aa66fc8b98a7bbdefef1 Mon Sep 17 00:00:00 2001 From: James Conroy Date: Tue, 12 May 2020 18:08:52 +0100 Subject: IVGCVSW-4451 Add QLstm NEON workload * Adds QLstm workload. * Adds CreateWorkload and Layer tests. Signed-off-by: James Conroy Change-Id: I585eb2691395ee4ccd45b5a853660f90fc5cc821 --- src/backends/neon/test/NeonCreateWorkloadTests.cpp | 27 ++++++++++++++++++++++ src/backends/neon/test/NeonLayerTests.cpp | 4 ++++ 2 files changed, 31 insertions(+) (limited to 'src/backends/neon/test') diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp index 0af9bf3e0d..73491c7810 100644 --- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp +++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp @@ -967,4 +967,31 @@ BOOST_AUTO_TEST_CASE(CreateQuantizedLstmWorkload) NeonCreateQuantizedLstmWorkloadTest(); } +template +static void NeonCreateQLstmWorkloadTest() +{ + Graph graph; + NeonWorkloadFactory factory = NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager()); + + auto workload = CreateQLstmWorkloadTest(factory, graph); + QLstmQueueDescriptor queueDescriptor = workload->GetData(); + + IAclTensorHandle* inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); + BOOST_TEST((inputHandle->GetShape() == TensorShape({2, 4}))); + BOOST_TEST((inputHandle->GetDataType() == arm_compute::DataType::QASYMM8_SIGNED)); + + IAclTensorHandle* cellStateOutHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[1]); + BOOST_TEST((cellStateOutHandle->GetShape() == TensorShape({2, 4}))); + BOOST_TEST((cellStateOutHandle->GetDataType() == arm_compute::DataType::QSYMM16)); + + IAclTensorHandle* outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[2]); + BOOST_TEST((outputHandle->GetShape() == TensorShape({2, 4}))); + BOOST_TEST((outputHandle->GetDataType() == arm_compute::DataType::QASYMM8_SIGNED)); +} + +BOOST_AUTO_TEST_CASE(CreateQLstmWorkloadTest) +{ + NeonCreateQLstmWorkloadTest(); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/src/backends/neon/test/NeonLayerTests.cpp b/src/backends/neon/test/NeonLayerTests.cpp index f992bd61a1..e8f0f78bab 100644 --- a/src/backends/neon/test/NeonLayerTests.cpp +++ b/src/backends/neon/test/NeonLayerTests.cpp @@ -773,6 +773,10 @@ ARMNN_AUTO_TEST_CASE(LstmLayerFloat32NoCifgWithPeepholeWithProjection, ARMNN_AUTO_TEST_CASE(LstmLayerFloat32NoCifgWithPeepholeWithProjectionWithLayerNorm, LstmLayerFloat32NoCifgWithPeepholeWithProjectionWithLayerNormTest) +// QLstm +ARMNN_AUTO_TEST_CASE(QLstm, QLstmTest) + +// QuantizedLstm ARMNN_AUTO_TEST_CASE(QuantizedLstm, QuantizedLstmTest) // Mean -- cgit v1.2.1