OpenBLAS: amax:samax utest failure

System configuration:

  • Compile host is ODROID-C2, but I’m running the compile inside of a docker image that was created from a NI RoboRIO disk image (ARMv7, Cortex A9). I’m also using setarch linux32.
  • Compilers are gcc 6.3.0, gfortran 6.3.0
  • OpenBLAS 0.3.4 (but the error occurs on 0.2.20 also)

Compile was via:

make TARGET=CORTEXA9 PREFIX=/usr/local

Here’s the output:

./openblas_utest 
TEST 1/23 amax:samax [FAIL]
  ERR: test_amax.c:44  expected 3.300e+00, got 4.204e-45 (diff 3.300e+00, tol 1.000e-04)
...
RESULTS: 23 tests (22 ok, 1 failed, 0 skipped) ran in 1860 ms

What steps should I take next to diagnose this issue? Thanks!

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 68 (21 by maintainers)

Commits related to this issue

Most upvoted comments

I’ve gotten it to compile this year (with gcc 7.3.0 and OpenBLAS 0.3.7). Thanks!

Few things to note.

Regarding amax.

  • Using iamax_vfp.S for amax kernel is wrong. iamax_vfp.S only has the implementation to find the index of the max value. So KERNEL.ARMV6 needs to be corrected. This looks to be long standing undetected issue in OpenBLAS.
  • For the same reason, #2142 is not correct. Needs to be reverted. This will break isamax .
  • The current implementation in iamax_vfp.S works for hardfp for samax because inadvertently it stores the max value in s0 where it is supposed to end up.

Regarding CHERK

  • Looks to be a compiler/environment issue. Could you try replacing -O2 by -O0 in Makefile.system for FCOMMON_OPT and COMMON_OPT
  • Also try setting “ulimit -s unlimited”

Both the AMAX bug and the missing utest build should be fixed now on the develop branch. Unfortunately I have not yet been able to set up a (cross)compiler environment for softfp that includes gfortran, so I cannot investigate the CHERK error from the original report right now.