diff options
author | Ryan OShea <Ryan.OShea2@arm.com> | 2020-05-13 16:36:19 +0100 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2020-05-20 12:59:34 +0000 |
commit | 2323af4542db474d42e643051e38bbc65f5844e7 (patch) | |
tree | 0c081bc35b11d283d39f5a9e9edaf419e457ff83 /src/backends/cl/test | |
parent | cc34093a57ea486e48f9aa66fc8b98a7bbdefef1 (diff) | |
download | armnn-2323af4542db474d42e643051e38bbc65f5844e7.tar.gz |
IVGCVSW-4450 Add CL Enhanced Quantized LSTM Workload
* Adds QLstm CL workload
* Added Layer and CreateWorkload tests
Signed-off-by: Ryan OShea <Ryan.OShea2@arm.com>
Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: I32335e528467bfd619edb249d2971705ac2a6163
Diffstat (limited to 'src/backends/cl/test')
-rw-r--r-- | src/backends/cl/test/ClCreateWorkloadTests.cpp | 28 | ||||
-rw-r--r-- | src/backends/cl/test/ClLayerTests.cpp | 4 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index b7522547d4..896d486ebf 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -1035,6 +1035,34 @@ BOOST_AUTO_TEST_CASE(CreateStackUint8Workload) ClCreateStackWorkloadTest<armnn::DataType::QAsymmU8>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2); } + +template <typename QLstmWorkloadType> +static void ClCreateQLstmWorkloadTest() +{ + Graph graph; + ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager()); + + auto workload = CreateQLstmWorkloadTest<QLstmWorkloadType>(factory, graph); + QLstmQueueDescriptor queueDescriptor = workload->GetData(); + + IAclTensorHandle* inputHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Inputs[0]); + BOOST_TEST((inputHandle->GetShape() == TensorShape({2, 4}))); + BOOST_TEST((inputHandle->GetDataType() == arm_compute::DataType::QASYMM8_SIGNED)); + + IAclTensorHandle* cellStateOutHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Outputs[1]); + BOOST_TEST((cellStateOutHandle->GetShape() == TensorShape({2, 4}))); + BOOST_TEST((cellStateOutHandle->GetDataType() == arm_compute::DataType::QSYMM16)); + + IAclTensorHandle* outputHandle = PolymorphicDowncast<IAclTensorHandle*>(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) +{ + ClCreateQLstmWorkloadTest<ClQLstmWorkload>(); +} + template <typename QuantizedLstmWorkloadType> static void ClCreateQuantizedLstmWorkloadTest() { diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp index ce4496e71b..1c433a85c5 100644 --- a/src/backends/cl/test/ClLayerTests.cpp +++ b/src/backends/cl/test/ClLayerTests.cpp @@ -516,6 +516,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) // Convert from Float16 to Float32 |