diff options
author | Keith Davis <keith.davis@arm.com> | 2020-07-02 11:49:26 +0100 |
---|---|---|
committer | Teresa Charlin <teresa.charlinreyes@arm.com> | 2020-07-24 11:16:06 +0100 |
commit | 69e653f9b2a7c8a2ab0cd3556b246a9df21b81d6 (patch) | |
tree | 1866252e0c459ee9f1564ea1d0feceb7f882ad14 /src/backends/neon/test/NeonCreateWorkloadTests.cpp | |
parent | 686f45c6641e87b6bc50c6274d0430c01a8b2bcf (diff) | |
download | armnn-69e653f9b2a7c8a2ab0cd3556b246a9df21b81d6.tar.gz |
IVGCVSW-3897 Add NEON LOG_SOFTMAX Workload
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I632b5ac7f188853de68e232e81568b3fca238d42
Diffstat (limited to 'src/backends/neon/test/NeonCreateWorkloadTests.cpp')
-rw-r--r-- | src/backends/neon/test/NeonCreateWorkloadTests.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp index 73491c7810..37d026f107 100644 --- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp +++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -813,6 +813,37 @@ BOOST_AUTO_TEST_CASE(CreateL2NormalizationNhwcWorkload) NeonCreateL2NormalizationWorkloadTest<NeonL2NormalizationFloatWorkload, DataType::Float32>(DataLayout::NHWC); } +template <typename LogSoftmaxWorkloadType, typename armnn::DataType DataType> +static void NeonCreateLogSoftmaxWorkloadTest() +{ + Graph graph; + NeonWorkloadFactory factory = + NeonWorkloadFactoryHelper::GetFactory(NeonWorkloadFactoryHelper::GetMemoryManager()); + + auto workload = CreateLogSoftmaxWorkloadTest<LogSoftmaxWorkloadType, DataType>(factory, graph); + + // Checks that outputs and inputs are as we expect them (see definition of CreateLogSoftmaxWorkloadTest). + LogSoftmaxQueueDescriptor queueDescriptor = workload->GetData(); + auto inputHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Inputs[0]); + auto outputHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Outputs[0]); + armnn::TensorInfo tensorInfo({4, 1}, DataType); + + BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, tensorInfo)); + BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, tensorInfo)); +} + +#ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC +BOOST_AUTO_TEST_CASE(CreateLogSoftmaxFloat16Workload) +{ + NeonCreateLogSoftmaxWorkloadTest<NeonLogSoftmaxWorkload, DataType::Float16>(); +} +#endif + +BOOST_AUTO_TEST_CASE(CreateLogSoftmaxFloatWorkload) +{ + NeonCreateLogSoftmaxWorkloadTest<NeonLogSoftmaxWorkload, DataType::Float32>(); +} + template <typename LstmWorkloadType> static void NeonCreateLstmWorkloadTest() { |