aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiCong Li <sicong.li@arm.com>2023-02-14 11:08:04 +0000
committerSiCong Li <sicong.li@arm.com>2023-02-14 15:13:15 +0000
commitc5fb6b284d06f9d17f43dd93ee9a5ef6dfab925e (patch)
treeccd5eec79556a61e04151fda360937a59554f527
parentc4ed2fdf5fdc11ca54770c8a9a11576053fc2b0b (diff)
downloadComputeLibrary-c5fb6b284d06f9d17f43dd93ee9a5ef6dfab925e.tar.gz
Add absolute tolerance to f16 CLConv3D validation tests
This fixes faulty mismatch issues. In addition, this aligns with the methodology used by f32, as well as that of cpu f16 tests Resolves COMPMID-5897 Change-Id: Id4e2088a9fc5444265c69444cfa90961dd84047e Signed-off-by: SiCong Li <sicong.li@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9146 Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--tests/validation/CL/Convolution3D.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/tests/validation/CL/Convolution3D.cpp b/tests/validation/CL/Convolution3D.cpp
index 9e4ca50547..ae9c47906f 100644
--- a/tests/validation/CL/Convolution3D.cpp
+++ b/tests/validation/CL/Convolution3D.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021 Arm Limited.
+ * Copyright (c) 2021, 2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -38,11 +38,12 @@ namespace validation
{
namespace
{
-RelativeTolerance<half> tolerance_fp16(half(0.2)); /**< Tolerance for floating point tests */
-RelativeTolerance<float> tolerance_fp32(0.05f); /**< Tolerance for floating point tests */
-constexpr AbsoluteTolerance<uint8_t> tolerance_qasymm8(1); /**< Tolerance for quantized tests */
-constexpr float abs_tolerance_f32(0.0001f); /**< Absolute tolerance for FP32 tests*/
-constexpr float tolerance_num = 0.07f; /**< Tolerance number */
+const RelativeTolerance<half> rel_tolerance_fp16(half(0.2)); /**< Relative tolerance for FP16 tests */
+constexpr float abs_tolerance_fp16(0.02f); /**< Absolute tolerance for FP16 tests */
+constexpr RelativeTolerance<float> rel_tolerance_fp32(0.05f); /**< Relative tolerance for FP32 tests */
+constexpr float abs_tolerance_fp32(0.0001f); /**< Absolute tolerance for FP32 tests*/
+constexpr AbsoluteTolerance<uint8_t> abs_tolerance_qasymm8(1); /**< Absolute tolerance for quantized tests */
+constexpr float tolerance_num = 0.07f; /**< Tolerance number */
} // namespace
TEST_SUITE(CL)
@@ -193,7 +194,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLDirectConvolution3DFixture<half>, framework::
framework::dataset::make("DataType", DataType::F16)),
framework::dataset::make("DataLayout", DataLayout::NDHWC)))
{
- validate(CLAccessor(_target), _reference, tolerance_fp16, tolerance_num);
+ validate(CLAccessor(_target), _reference, rel_tolerance_fp16, tolerance_num, abs_tolerance_fp16);
}
TEST_SUITE_END() // FP16
@@ -221,7 +222,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLDirectConvolution3DFixture<float>, framework:
framework::dataset::make("DataType", DataType::F32)),
framework::dataset::make("DataLayout", DataLayout::NDHWC)))
{
- validate(CLAccessor(_target), _reference, tolerance_fp32, 0.0, abs_tolerance_f32);
+ validate(CLAccessor(_target), _reference, rel_tolerance_fp32, 0.0, abs_tolerance_fp32);
}
// clang-format on
@@ -254,7 +255,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLDirectConvolution3DQuantizedFixture<uint8_t>,
framework::dataset::make("WeightsQuantizationInfo", QuantizationInfo(0.3f, 20))),
framework::dataset::make("DstQuantizationInfo", QuantizationInfo(0.2f, 5))))
{
- validate(CLAccessor(_target), _reference, tolerance_qasymm8);
+ validate(CLAccessor(_target), _reference, abs_tolerance_qasymm8);
}
TEST_SUITE_END() // QASYMM8
@@ -285,7 +286,7 @@ FIXTURE_DATA_TEST_CASE(RunSmall, CLDirectConvolution3DQuantizedFixture<int8_t>,
framework::dataset::make("WeightsQuantizationInfo", QuantizationInfo(0.3f, 20))),
framework::dataset::make("DstQuantizationInfo", QuantizationInfo(0.2f, 5))))
{
- validate(CLAccessor(_target), _reference, tolerance_qasymm8);
+ validate(CLAccessor(_target), _reference, abs_tolerance_qasymm8);
}
TEST_SUITE_END() // QASYMM8_SIGNED