From bcafc4d343338a2b88027a02e5abdf9cd8082f46 Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Fri, 17 Aug 2018 11:02:54 +0100 Subject: COMPMID-1486 - CLGEMMDilatedConvolutionLayer FP16 / FP32 failing in nightlies Tolerance issue Change-Id: I50f05f63617bfb364648bb20f6ad41676a79174e Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/144493 Reviewed-by: Georgios Pinitas Tested-by: Jenkins --- tests/validation/CL/DilatedConvolutionLayer.cpp | 26 +++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'tests/validation') diff --git a/tests/validation/CL/DilatedConvolutionLayer.cpp b/tests/validation/CL/DilatedConvolutionLayer.cpp index f748f905d1..d7642eb172 100644 --- a/tests/validation/CL/DilatedConvolutionLayer.cpp +++ b/tests/validation/CL/DilatedConvolutionLayer.cpp @@ -43,10 +43,11 @@ namespace validation { namespace { -RelativeTolerance tolerance_f32(0.05f); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F32 */ -RelativeTolerance tolerance_f16(half_float::half(0.2)); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F16 */ -constexpr AbsoluteTolerance tolerance_qasymm8(0.0); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */ -constexpr float tolerance_num = 0.07f; /**< Tolerance number */ +RelativeTolerance rel_tolerance_f32(0.05f); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F32 */ +RelativeTolerance rel_tolerance_f16(half_float::half(0.2)); /**< Tolerance value for comparing reference's output against implementation's output for DataType::F16 */ +constexpr AbsoluteTolerance abs_tolerance_qasymm8(0.0); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */ +constexpr float abs_tolerance_f32 = 0.001f; /**< Tolerance number */ +constexpr float abs_tolerance_f16 = 0.07f; /**< Tolerance number */ /** CNN data types */ const auto CNNDataTypes = framework::dataset::make("DataType", @@ -106,6 +107,7 @@ DATA_TEST_CASE(ValidateConvolutionMethod, framework::DatasetMode::ALL, zip(zip(z &output_info.clone()->set_is_resizable(true), conv_info, WeightsInfo(), ActivationLayerInfo(), gpu_target, dilation); ARM_COMPUTE_EXPECT(is_valid == expected, framework::LogLevel::ERRORS); } + TEST_SUITE_END() TEST_SUITE(GEMMDilatedConvolutionLayer) @@ -165,8 +167,9 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMDilatedConvolutionLayerFixture, fra framework::dataset::make("ActivationLayerInfo", ActivationLayerInfo()))) { // Validate output - validate(CLAccessor(_target), _reference, tolerance_f16, tolerance_num); + validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.0f, abs_tolerance_f16); } + FIXTURE_DATA_TEST_CASE(RunLarge, CLGEMMDilatedConvolutionLayerFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeDilatedConvolutionLayerDataset(), framework::dataset::make("ReshapeWeights", { true })), framework::dataset::make("DataType", DataType::F16)), @@ -174,8 +177,9 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLGEMMDilatedConvolutionLayerFixture, fra framework::dataset::make("ActivationLayerInfo", ActivationLayerInfo()))) { // Validate output - validate(CLAccessor(_target), _reference, tolerance_f16, tolerance_num); + validate(CLAccessor(_target), _reference, rel_tolerance_f16, 0.0f, abs_tolerance_f16); } + TEST_SUITE_END() TEST_SUITE(FP32) @@ -186,8 +190,9 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMDilatedConvolutionLayerFixture, fr framework::dataset::make("ActivationLayerInfo", ActivationLayerInfo()))) { // Validate output - validate(CLAccessor(_target), _reference, tolerance_f32); + validate(CLAccessor(_target), _reference, rel_tolerance_f32); } + FIXTURE_DATA_TEST_CASE(RunLarge, CLGEMMDilatedConvolutionLayerFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(datasets::LargeDilatedConvolutionLayerDataset(), framework::dataset::make("ReshapeWeights", { true })), framework::dataset::make("DataType", DataType::F32)), @@ -195,7 +200,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLGEMMDilatedConvolutionLayerFixture, fr framework::dataset::make("ActivationLayerInfo", ActivationLayerInfo()))) { // Validate output - validate(CLAccessor(_target), _reference, tolerance_f32, 0.00002); + validate(CLAccessor(_target), _reference, rel_tolerance_f32, 0.f, abs_tolerance_f32); } TEST_SUITE_END() TEST_SUITE_END() @@ -214,8 +219,9 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLGEMMDilatedConvolutionLayerQuantizedFixture, framework::DatasetMode::NIGHTLY, combine(combine(combine(combine(combine(datasets::LargeDilatedConvolutionLayerDataset(), framework::dataset::make("ReshapeWeights", { true })), @@ -225,7 +231,7 @@ FIXTURE_DATA_TEST_CASE(RunLarge, CLGEMMDilatedConvolutionLayerQuantizedFixture