diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2020-04-30 11:39:37 +0100 |
---|---|---|
committer | Kevin May <kevin.may@arm.com> | 2020-04-30 10:46:12 +0000 |
commit | be88a57579a9a848efe13e6c524b5b104b871733 (patch) | |
tree | d5dc03627048f8ecd2d728b154434244f05475ea /src/backends/neon/test | |
parent | 9937f9359ac4eeefc3535b66eddddd1b4f067c54 (diff) | |
download | armnn-be88a57579a9a848efe13e6c524b5b104b871733.tar.gz |
IVGCVSW-4753 Fix CpuAcc Hal 1.3 Softmax Failures
* Refactor Neon Softmax workload to accept supported data types
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I54aa72d5cbb862cafcc1eabe48f6a00d61050cd7
Diffstat (limited to 'src/backends/neon/test')
-rw-r--r-- | src/backends/neon/test/NeonCreateWorkloadTests.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp index a89602db7f..0af9bf3e0d 100644 --- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp +++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp @@ -582,20 +582,41 @@ static void NeonCreateSoftmaxWorkloadTest() SoftmaxQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast<IAclTensorHandle*>(queueDescriptor.m_Outputs[0]); - BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, TensorInfo({4, 1}, DataType))); - BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo({4, 1}, DataType))); + armnn::TensorInfo tensorInfo({4, 1}, DataType); + if (DataType == armnn::DataType::QAsymmU8) + { + tensorInfo.SetQuantizationOffset(0); + tensorInfo.SetQuantizationScale(1.f / 256); + } + else if (DataType == armnn::DataType::QAsymmS8) + { + tensorInfo.SetQuantizationOffset(-128); + tensorInfo.SetQuantizationScale(1.f / 256); + } + BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, tensorInfo)); + BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, tensorInfo)); } #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC BOOST_AUTO_TEST_CASE(CreateSoftmaxFloat16Workload) { - NeonCreateSoftmaxWorkloadTest<NeonSoftmaxFloatWorkload, DataType::Float16>(); + NeonCreateSoftmaxWorkloadTest<NeonSoftmaxWorkload, DataType::Float16>(); } #endif BOOST_AUTO_TEST_CASE(CreateSoftmaxFloatWorkload) { - NeonCreateSoftmaxWorkloadTest<NeonSoftmaxFloatWorkload, DataType::Float32>(); + NeonCreateSoftmaxWorkloadTest<NeonSoftmaxWorkload, DataType::Float32>(); +} + +BOOST_AUTO_TEST_CASE(CreateSoftmaxQAsymmU8Workload) +{ + NeonCreateSoftmaxWorkloadTest<NeonSoftmaxWorkload, DataType::QAsymmU8>(); +} + +BOOST_AUTO_TEST_CASE(CreateSoftmaxQAsymmS8Workload) +{ + NeonCreateSoftmaxWorkloadTest<NeonSoftmaxWorkload, DataType::QAsymmS8>(); } template <typename SpaceToDepthWorkloadType, typename armnn::DataType DataType> |