aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/test
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2020-07-02 11:49:26 +0100
committerTeresa Charlin <teresa.charlinreyes@arm.com>2020-07-24 11:16:06 +0100
commit69e653f9b2a7c8a2ab0cd3556b246a9df21b81d6 (patch)
tree1866252e0c459ee9f1564ea1d0feceb7f882ad14 /src/backends/neon/test
parent686f45c6641e87b6bc50c6274d0430c01a8b2bcf (diff)
downloadarmnn-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')
-rw-r--r--src/backends/neon/test/NeonCreateWorkloadTests.cpp33
-rw-r--r--src/backends/neon/test/NeonLayerTests.cpp3
2 files changed, 35 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()
{
diff --git a/src/backends/neon/test/NeonLayerTests.cpp b/src/backends/neon/test/NeonLayerTests.cpp
index de4a305b0f..514ca5d371 100644
--- a/src/backends/neon/test/NeonLayerTests.cpp
+++ b/src/backends/neon/test/NeonLayerTests.cpp
@@ -506,6 +506,9 @@ ARMNN_AUTO_TEST_CASE(Simple3dSoftmaxBeta1Uint8, Simple3dSoftmaxUint8Test, 1.0f)
ARMNN_AUTO_TEST_CASE(Simple4dSoftmaxBeta1, Simple4dSoftmaxTest, 1.0f)
ARMNN_AUTO_TEST_CASE(Simple4dSoftmaxBeta1Uint8, Simple4dSoftmaxUint8Test, 1.0f)
+// LogSoftmax
+ARMNN_AUTO_TEST_CASE(LogSoftmaxFloat32_1, LogSoftmaxTest1<DataType::Float32>)
+
// Space To Batch Nd
ARMNN_AUTO_TEST_CASE(SpaceToBatchNdSimpleFloat32, SpaceToBatchNdSimpleFloat32Test)
ARMNN_AUTO_TEST_CASE(SpaceToBatchNdMultiChannelsFloat32, SpaceToBatchNdMultiChannelsFloat32Test)