aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2022-08-23 16:44:59 -0700
committerXNNPACK Team <xnnpack-github-robot@google.com>2022-08-23 16:45:59 -0700
commit7adc837b2c842b16ff5a57100bb99d147a9718ed (patch)
treed721015642ebaefc45c62cad64101e1c2650ab5f
parentcb9c00c907e4fb374d3dcfa8a4a16a727390cfc3 (diff)
downloadXNNPACK-7adc837b2c842b16ff5a57100bb99d147a9718ed.tar.gz
Allow gemm an minimum error of 1.0e-5f
PiperOrigin-RevId: 469588611
-rw-r--r--test/gemm-microkernel-tester.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/test/gemm-microkernel-tester.cc b/test/gemm-microkernel-tester.cc
index fe6b40ebc..111ba8db3 100644
--- a/test/gemm-microkernel-tester.cc
+++ b/test/gemm-microkernel-tester.cc
@@ -1052,7 +1052,7 @@ void GemmMicrokernelTester::Test(xnn_f32_ppmm_minmax_ukernel_function ppmm_minma
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1112,7 +1112,7 @@ void GemmMicrokernelTester::Test(xnn_f32_gemm_ukernel_function gemm) const {
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1176,7 +1176,7 @@ void GemmMicrokernelTester::Test(xnn_f32_gemm_relu_ukernel_function gemm_relu) c
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1263,7 +1263,7 @@ void GemmMicrokernelTester::Test(xnn_f32_gemm_minmax_ukernel_function gemm_minma
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1348,7 +1348,7 @@ void GemmMicrokernelTester::Test(xnn_f32_gemminc_minmax_ukernel_function gemminc
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1440,7 +1440,7 @@ void GemmMicrokernelTester::Test(xnn_f32_igemm_ukernel_function igemm) const {
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << i << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x KC x KS = " << m() << " x " << n() << " x " << k() << " x " << ks();
@@ -1536,7 +1536,7 @@ void GemmMicrokernelTester::Test(xnn_f32_igemm_relu_ukernel_function igemm_relu)
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << i << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x KC x KS = " << m() << " x " << n() << " x " << k() << " x " << ks();
@@ -1651,7 +1651,7 @@ void GemmMicrokernelTester::Test(xnn_f32_igemm_minmax_ukernel_function igemm_min
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << i << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x KC x KS = " << m() << " x " << n() << " x " << k() << " x " << ks();
@@ -1758,7 +1758,7 @@ void GemmMicrokernelTester::Test(
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << j << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x K = " << m() << " x " << n() << " x " << k();
@@ -1893,7 +1893,7 @@ void GemmMicrokernelTester::Test(
ASSERT_NEAR(
c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()],
c_ref[i * n() + j],
- std::abs(c_ref[i * n() + j]) * 1.0e-6f)
+ std::max(1.0e-5f, std::abs(c_ref[i * n() + j]) * 1.0e-6f))
<< "at " << i << ", " << i << ": reference = " << c_ref[i * n() + j]
<< ", optimized = " << c[i * cm_stride() + (j / nr()) * cn_stride() + j % nr()] << ", Mr x Nr x Kr = " << mr() << " x " << nr()
<< " x " << kr() << ", M x N x KC x KS = " << m() << " x " << n() << " x " << k() << " x " << ks();