From 1f75232dab1b50162ebc420e6e076edeb8a58341 Mon Sep 17 00:00:00 2001 From: Jeremy Johnson Date: Tue, 23 Jan 2024 15:02:34 +0000 Subject: Fix and improve verify ABS_ERROR reporting Signed-off-by: Jeremy Johnson Change-Id: Id0030fbd1b3b7a526dc17e947a433b4957dbf5e4 --- reference_model/src/verify/verify_abs_error.cc | 2 +- reference_model/src/verify/verify_utils.cc | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/reference_model/src/verify/verify_abs_error.cc b/reference_model/src/verify/verify_abs_error.cc index 25ecae4..5005dcf 100644 --- a/reference_model/src/verify/verify_abs_error.cc +++ b/reference_model/src/verify/verify_abs_error.cc @@ -47,7 +47,7 @@ bool validateData(const double* ref, bool valid = tosaCheckFloatBound(imp[i], ref[i], errBound); if (!valid) { - auto pos = indexToPosition(T, shape); + auto pos = indexToPosition(i, shape); WARNING("[Verifier][AE] Location %s", positionToString(pos).c_str()); return false; } diff --git a/reference_model/src/verify/verify_utils.cc b/reference_model/src/verify/verify_utils.cc index 6f53c63..618724b 100644 --- a/reference_model/src/verify/verify_utils.cc +++ b/reference_model/src/verify/verify_utils.cc @@ -143,6 +143,7 @@ std::vector indexToPosition(int64_t index, const std::vector& pos.insert(pos.begin(), index % *d); index /= *d; } + ASSERT_MSG(index == 0, "index too large for given shape") return pos; } @@ -225,8 +226,7 @@ bool tosaCheckFloatBound(OutType testValue, double referenceValue, double errorB { return true; } - WARNING("[Verifier][Bound] Non-matching NaN values - ref (%10f) versus test (%10f).", referenceValue, - testValue); + WARNING("[Verifier][Bound] Non-matching NaN values - ref (%g) versus test (%g).", referenceValue, testValue); return false; } @@ -294,9 +294,8 @@ bool tosaCheckFloatBound(OutType testValue, double referenceValue, double errorB bool withinBound = testValue64 >= referenceMin && testValue64 <= referenceMax; if (!withinBound) { - WARNING( - "[Verifier][Bound] value (%10.10f) is not in error bound %g range (%10.10f <= ref (%10.10f) <= %10.10f).", - testValue64, errorBound, referenceMin, referenceValue, referenceMax); + WARNING("[Verifier][Bound] value %.20f is not in error bound %g range (%.20f <= ref %.20f <= %.20f).", + testValue64, testValue64, errorBound, referenceMin, referenceValue, referenceValue, referenceMax); } return withinBound; } -- cgit v1.2.1