diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tests/gpu/test_cnn_v3_parity.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/tests/gpu/test_cnn_v3_parity.cc b/src/tests/gpu/test_cnn_v3_parity.cc index 608decb..4b41c94 100644 --- a/src/tests/gpu/test_cnn_v3_parity.cc +++ b/src/tests/gpu/test_cnn_v3_parity.cc @@ -301,7 +301,8 @@ static int test_random_weights() { float err = fabsf(enc0_pixels[i] - ref); if (err > enc0_max_err) { enc0_max_err = err; enc0_worst = i; } } - if (enc0_max_err > tol) { + bool enc0_ok = (enc0_max_err <= tol); + if (!enc0_ok) { int px = enc0_worst / 4, ch = enc0_worst % 4; fprintf(stderr, " ✗ enc0 mismatch: max_err=%.5f > %.5f at px=%d ch=%d" " gpu=%.5f ref=%.5f\n", @@ -321,7 +322,8 @@ static int test_random_weights() { float err = fabsf(dec1_pixels[i] - ref); if (err > dec1_max_err) { dec1_max_err = err; dec1_worst = i; } } - if (dec1_max_err > tol) { + bool dec1_ok = (dec1_max_err <= tol); + if (!dec1_ok) { int px = dec1_worst / 4, ch = dec1_worst % 4; fprintf(stderr, " ✗ dec1 mismatch: max_err=%.5f > %.5f at px=%d ch=%d" " gpu=%.5f ref=%.5f\n", @@ -342,17 +344,18 @@ static int test_random_weights() { if (err > max_err) { max_err = err; worst = i; } } - if (max_err > tol) { + bool out_ok = (max_err <= tol); + if (!out_ok) { int px = worst / 4, ch = worst % 4; fprintf(stderr, " ✗ random_weights: max_err=%.5f > %.5f at px=%d ch=%d" " gpu=%.5f ref=%.5f\n", max_err, tol, px, ch, pixels[worst], fp16_bits_to_f32(kCnnV3ExpectedOutputU16[worst])); - return 0; + } else { + fprintf(stdout, " ✓ random_weights: max_err=%.2e OK\n", max_err); } - fprintf(stdout, " ✓ random_weights: max_err=%.2e OK\n", max_err); - return 1; + return (enc0_ok && dec1_ok && out_ok) ? 1 : 0; } // --------------------------------------------------------------------------- |
