atlas - possible FP build issues...

4 views
Skip to first unread message

Gordan Bobic

unread,
Sep 15, 2019, 11:23:18 AM9/15/19
to redsleeve-users
I have to say this part of output from the atlas package build concerns me ever so slightly:

=====
make[5]: Leaving directory `/builddir/build/BUILD/ATLAS/arm_base/tune/blas/gemm'
SUCCESSFUL FINISH FOR ./xummsearch


BEST USER CASE 334, NB=72: 1822.48 MFLOP


BEST OF USER CASES AND EXTERNAL SEARCHES:
ID=334 ROUT='CASES/ATL_smm4x4x2dld_arm.c' AUTH='R. Clint Whaley' TA='T' TB='N' \
   MULADD=1 PREF=0 LAT=1 NFTCH=0 IFTCH=0 FFTCH=0 KBMAX=0 KBMIN=0 KU=2 NU=4  \
   MU=4 MB=72 NB=72 KB=72 L14NB=0 PFBCOLS=0 PFABLK=0 PFACOLS=0 STFLOAT=0  \
   LDFLOAT=0 AOUTER=0 LDAB=1 BETAN1=0 LDISKB=1 KUISKB=0 KRUNTIME=1 NRUNTIME=1  \
   MRUNTIME=1 LDCTOP=0 X87=0  \
   MFLOP=1.870303e+03,-1.508956e+03  CFLAGS='-x assembler-with-cpp -mfpu=vfpv3' \
     COMP='gcc'
=====

...

=====
/usr/bin/gcc -o cblas_sgemm.o -c -DL2SIZE=4194304 -I/builddir/build/BUILD/ATLAS/arm_base/include -I/builddir/build/BUILD/ATLAS/arm_base/..//include -I/builddir/build/BUILD/ATLAS/arm_base/..//include/contrib -DAdd_ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_Linux -DATL_ARCH_ARMv7 -DATL_NEON -DATL_GAS_ARM -DWALL -DATL_FULL_LAPACK -DATL_NCPU=2 -O1 -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=vfpv3 -mfloat-abi=softfp -fno-schedule-insns2  -g -fstack-protector-strong -Wa,--noexecstack -fPIC   /builddir/build/BUILD/ATLAS/arm_base/..//interfaces/blas/C/src//cblas_sgemm.c
=====

Building with -mfpu=vfpv3 -DATL_ARCH_ARMv7 -DATL_NEON is very not cool. when the defined arch is armv5tel.

This could be one of those edge cases where the upstream package developers make assumptions that the build host is the same as the target host which absolutely does not follow. :-(

This is almost certainly not an isolated one-off since a similar issue is the reason why I gave up on using CentOS on Tegra (a shocking number of binaries built with NEON support even though NEON is very optional on ARMv7).

Gordan

Jacco Ligthart

unread,
Sep 15, 2019, 2:45:16 PM9/15/19
to redslee...@googlegroups.com

I have seen the same, but I'm unsure about the real impact:

- I *guess* that nobody really tries to do HPC on armv5

- there are only 4 packages directly dependent on atlas (gsl, numpy, scipy and suitesparse) all other places where it gets installed is because it is an dependency of one of these. I think that something that depends on numpy often will be OK, even if the atlas install is somewhat broken.

- the build also mentions "-mfloat-abi=softfp", which I think is contrary to "NEON" or "vfpv3". unsure which flag "wins".

- I do not grasp how the building of atlas works. I think it tries to build a couple of different versions and then later selects the fastest of the working items.

- IIRC, you need some config files for your CPU to build correctly. There is no such file for armv5 and I do not know how to make one.

For RSEL8 we opted to not use atlas, but use openblas instead. For 7 I think that it works good enough to be used as a dependency for other package building, but indeed if you look closely it probably does not really work on an armv5.

Jacco

--
You received this message because you are subscribed to the Google Groups "redsleeve-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redsleeve-use...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/redsleeve-users/CAMx4oe2e3qYZDWZa7xw0v_XfBhvUXJX-VG5DgXC%2BMOjHhEtSXA%40mail.gmail.com.

Gordan Bobic

unread,
Sep 15, 2019, 2:58:50 PM9/15/19
to redsleeve-users
On Sun, Sep 15, 2019 at 7:45 PM Jacco Ligthart <ja...@redsleeve.org> wrote:

I have seen the same, but I'm unsure about the real impact:

- I *guess* that nobody really tries to do HPC on armv5


True, probably why it got missed.
 

- there are only 4 packages directly dependent on atlas (gsl, numpy, scipy and suitesparse) all other places where it gets installed is because it is an dependency of one of these. I think that something that depends on numpy often will be OK, even if the atlas install is somewhat broken.

- the build also mentions "-mfloat-abi=softfp", which I think is contrary to "NEON" or "vfpv3". unsure which flag "wins".


Not quite true. You have have NEON with soft-float ABI, the ABI refers to how parameters are passed (on the stack vs. in the registers).
 

- I do not grasp how the building of atlas works. I think it tries to build a couple of different versions and then later selects the fastest of the working items.

- IIRC, you need some config files for your CPU to build correctly. There is no such file for armv5 and I do not know how to make one.

Noted, will take a closer look when I get further with the ShortSleeve rebuild.

 
Reply all
Reply to author
Forward
0 new messages