From a42e006dbaface834dae7a5f182d67789fb4daf5 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Tue, 23 Apr 2024 13:03:40 +0100 Subject: IVGCVSW-8205 For leakyRelu, add TosaRefEndToEndTests and Fp16 in mappings Signed-off-by: Teresa Charlin Signed-off-by: Cathal Corbett Change-Id: I70f81d17b696c30bf7a06491281184c4ddb8afc1 --- .../operatorMappings/ActivationOperator.cpp | 3 ++- .../tosaCommon/test/OneToManyMappingTests.cpp | 12 ++---------- .../tosaReference/test/TosaRefEndToEndTests.cpp | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/backends/tosaCommon/operatorMappings/ActivationOperator.cpp b/src/backends/tosaCommon/operatorMappings/ActivationOperator.cpp index c3e424ea83..c17c4c70fe 100644 --- a/src/backends/tosaCommon/operatorMappings/ActivationOperator.cpp +++ b/src/backends/tosaCommon/operatorMappings/ActivationOperator.cpp @@ -68,7 +68,8 @@ TosaSerializationBasicBlock* ConvertActivationToTosaOperator(const Layer* layer, #if TOSA_COMPAT_VERSION(0, 60, 0) std::string outputNameMAXMIN= std::string("intermediate3_") + GetUniqueTosaMappingID(); - if (inputDType0 == DType::DType_FP32) + if (inputDType0 == DType::DType_FP32 || + inputDType0 == DType::DType_FP16) { // const_alpha TosaSerializationOperator* alphaOp = nullptr; diff --git a/src/backends/tosaCommon/test/OneToManyMappingTests.cpp b/src/backends/tosaCommon/test/OneToManyMappingTests.cpp index cc129f3e14..5a34ac2db4 100644 --- a/src/backends/tosaCommon/test/OneToManyMappingTests.cpp +++ b/src/backends/tosaCommon/test/OneToManyMappingTests.cpp @@ -200,17 +200,9 @@ TEST_CASE("GetTosaMapping_ActivationFloat32") ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f); } -TEST_CASE("UNSUPPORTED_GetTosaMapping_ActivationFloat16") +TEST_CASE("GetTosaMapping_ActivationFloat16") { - try - { - ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f); - FAIL("An exception should have been thrown"); - } - catch (armnn::Exception& e) - { - CHECK_EQ(std::string(e.what()), "Failed to assign a backend to each layer"); - } + ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f); } TEST_CASE("GetTosaMapping_ActivationInt32") diff --git a/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp b/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp index f5edfb0e0b..a5f7ad88a8 100644 --- a/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp +++ b/src/backends/tosaReference/test/TosaRefEndToEndTests.cpp @@ -5,6 +5,7 @@ #include "backendsCommon/test/EndToEndTestImpl.hpp" +#include "backendsCommon/test/ActivationEndToEndTestImpl.hpp" #include "backendsCommon/test/AdditionEndToEndTestImpl.hpp" #include "backendsCommon/test/Convolution2dEndToEndTestImpl.hpp" #include "backendsCommon/test/ConcatEndToEndTestImpl.hpp" @@ -27,6 +28,25 @@ TEST_SUITE("TosaRefEndToEnd") { static std::vector tosaDefaultBackends = { "TosaRef" }; +// Activation +//LeakyRelu +TEST_CASE("TosaRefLeakyReluActivationFloat32") +{ + ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f); +} +TEST_CASE("TosaRefLeakyReluActivationFloat16") +{ + ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.3f, 5, 0.01f); +} +TEST_CASE("TosaRefLeakyReluActivationInt8") +{ + ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.6f, 7, 0.01f); +} +TEST_CASE("TosaRefLeakyReluActivationInt16") +{ + ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.15f, 0, 0.01f); +} + // Addition TEST_CASE("TosaRefAdditionEndtoEndTestFloat32") { -- cgit v1.2.1