Make check issues and no f77blas.a
Brought to you by:
rwhaley,
tonyc040457
This seems to be a hybrid of two support tickets, but ATLAS builds and there is no libf77blas.a. Despite being configured with --shared the shared libraries are not built either. This is a different (older) machine than the one I usually use.
Attached is the error report.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Hi,
You can see the problem in your error report at bin/INSTALL_LOG/LIBBUILD.LOG:
In file included from /home/melvin/ATLAS/build/..//src/blas/level3/kernel/ATL_trsmKL_rk4.c:489:0:
/usr/lib/gcc/i686-redhat-linux/4.6.3/include/xmmintrin.h:32:3: error: #error "SSE instruction set not enabled"
I'm guessing you changed the default compiler flags from using SSE to using the x87 unit, which will drastically hurt your performance. Why did you do this?
If you use the standard compiler flags, things should build without error. If you want to build an all-x87 build (and run horribly slowly), you will also need to add -V 1 to your configure flag to tell ATLAS not to attempt to use SSE.
Let me know,
Clint
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
I just just used ./configure --shared --with-netlib-lapack-tarfile=../lapack-3.3.1.tgz. Do you think that this would have turned off the SSE instruction set?
It was painfully slow. How can I check to see if it picked up the x87 stuff?
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
I am rebuilding, but am not optimistic with references to 387 like this:
BEST OF USER CASES AND EXTERNAL SEARCHES:
ID=219 ROUT='CASES/ATL_smm6x1x120_sse.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=120 \
NU=1 MU=6 MB=120 NB=120 KB=120 L14NB=0 PFBCOLS=0 PFABLK=0 PFACOLS=0 \
STFLOAT=0 LDFLOAT=0 AOUTER=0 LDAB=1 BETAN1=0 LDISKB=1 KUISKB=0 KRUNTIME=0 \
NRUNTIME=1 MRUNTIME=0 LDCTOP=0 X87=0 \
MFLOP=7.904640e+03,8.313566e+03 CFLAGS='-x assembler-with-cpp' \
COMP='/usr/lib/ccache/i686-redhat-linux-gcc -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -m32 -fPIC -m32 -fPIC'
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Also got some entries like this:
OP DIST MU NU MFLOP
== ==== ==== ==== ============
Y DEF 12 1 932411300000000000.00
Y 64 12 1 932411300000000000.00
Y 256 12 1 932411300000000000.00
Y 192 12 1 932411300000000000.00
Y 0 12 1 932411300000000000.00
DEFAULT imf=3 YDISTANCE IS BEST (932411300000000000.00)
That's too many MFLOPS.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
There appear to be some syntax errors from the file that you mentioned in the comment:
/home/melvin/ATLAS/build/..//src/blas/level3/kernel/ATL_trsmKL_rk4.c:776:21: error: expected ‘;’ before ‘_mm_shuffle_epi32’
This was with 3.9.70. I will now try with the new 3.9.71.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Started with 3.9.71, but stopped when I saw signs of 387.
Here are a few lines from configure:
Clock rate configured as 2400Mhz
Maximum number of threads configured as 2
Parallel make command configured as '$(MAKE) -j 2'
Cannot detect CPU throttling.
gcc -I/home/melvin/ATLAS/build/..//CONFIG/include -g -w -DATL_DYLIBS -o xisgcc /home/melvin/ATLAS/build/..//CONFIG/src/IsGcc.c atlconf_misc.o
gcc -I/home/melvin/ATLAS/build/..//CONFIG/include -g -w -DATL_DYLIBS -c /home/melvin/ATLAS/build/..//CONFIG/src/probe_comp.c
gcc -I/home/melvin/ATLAS/build/..//CONFIG/include -g -w -DATL_DYLIBS -o xprobe_comp probe_comp.o atlconf_misc.o
rm -f config1.out
make atlas_run atldir=/home/melvin/ATLAS/build exe=xprobe_comp args="-v 0 -o atlconf.txt -O 1 -A 28 -Si nof77 0 -b 64" \
redir=config1.out
In particular it seems that it cannot find an fortran compiler. The machine has gfortran on it. I added -b 64 to the parameters.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
My bad. This meant that there is a f77 compiler.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Just finished this on 3.9.71 and still no luck. Here are the libraries produced:
[melvin@dhcp-0-b-db-7a-91-f1 build]$ ls lib
libatlas.a liblapack.a libptf77blas.a libtstatlas.a Make.inc
libcblas.a libptcblas.a libptlapack.a Makefile
[melvin@dhcp-0-b-db-7a-91-f1 build]$
Make check fails with the following excerpt:
/home/melvin/ATLAS/build/..//src/blas/level3/kernel/ATL_trsmKR_rk4.c:837:21: error: expected ‘;’ before ‘_mm_shuffle_epi32’
/home/melvin/ATLAS/build/..//src/blas/level3/kernel/ATL_trsmKR_rk4.c:840:21: error: expected ‘;’ before ‘_mm_shuffle_epi32’
make[6]: *** [ATL_strsmKR_rk4.o] Error 1
make[6]: Leaving directory `/home/melvin/ATLAS/build/src/blas/level3/kernel'
make[5]: *** [slib] Error 2
make[5]: Leaving directory `/home/melvin/ATLAS/build/src/blas/level3/kernel'
make[4]: *** [skern] Error 2
make[4]: Leaving directory `/home/melvin/ATLAS/build/src/blas/level3'
make[3]: *** [sl3lib] Error 2
make[3]: Leaving directory `/home/melvin/ATLAS/build/bin'
make[2]: *** [sanity_test] Error 2
make[2]: Leaving directory `/home/melvin/ATLAS/build/bin'
make[1]: *** [sanity_test] Error 2
make[1]: Leaving directory `/home/melvin/ATLAS/build'
make: *** [test] Error 2
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
I am using gcc 4.6.3
OK, this is indeed a bug in the flags provided for this architecture. I have access to a machine, and am scoping a permanent fix.
In the meantime, try adding -F al -msse3 to your configure, and see if things will work with that.
Thanks,
Clint
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
I gave it a shot with the new flags, it configured but didn't get very far into the build process. I got the following output:
ERROR 621 DURING CACHESIZE SEARCH!!. CHECK INSTALL_LOG/Stage1.log FOR DETAILS.
make[2]: Entering directory `/home/melvin/ATLAS/build/bin'
cd /home/melvin/ATLAS/build ; make error_report
make[3]: Entering directory `/home/melvin/ATLAS/build'
make -f Make.top error_report
make[4]: Entering directory `/home/melvin/ATLAS/build'
uname -a 2>&1 >> bin/INSTALL_LOG/ERROR.LOG
/usr/lib/ccache/i686-redhat-linux-gcc -v 2>&1 >> bin/INSTALL_LOG/ERROR.LOG
Using built-in specs.
COLLECT_GCC=/usr/bin/i686-redhat-linux-gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-redhat-linux/4.6.3/lto-wrapper
Target: i686-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
Thread model: posix
gcc version 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC)
/usr/lib/ccache/i686-redhat-linux-gcc -V 2>&1 >> bin/INSTALL_LOG/ERROR.LOG
i686-redhat-linux-gcc: error: unrecognized option ‘-V’
i686-redhat-linux-gcc: fatal error: no input files
compilation terminated.
make[4]: [error_report] Error 4 (ignored)
/usr/lib/ccache/i686-redhat-linux-gcc --version 2>&1 >> bin/INSTALL_LOG/ERROR.LOG
tar cf error_P432SSE2.tar Make.inc bin/INSTALL_LOG/*
gzip --best error_P432SSE2.tar
mv error_P432SSE2.tar.gz error_P432SSE2.tgz
make[4]: Leaving directory `/home/melvin/ATLAS/build'
make[3]: Leaving directory `/home/melvin/ATLAS/build'
make[2]: Leaving directory `/home/melvin/ATLAS/build/bin'
Error report error_<ARCH>.tgz has been created in your top-level ATLAS
directory. Be sure to include this file in any help request.
cat: ../../CONFIG/error.txt: No such file or directory
cat: ../../CONFIG/error.txt: No such file or directory
make[1]: *** [build] Error 255
make[1]: Leaving directory `/home/melvin/ATLAS/build'
make: *** [build] Error 2
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
OK, my own install is still running, and has gotten quite a bit further. If it finishes, I'll post a new tarfile with archdefs and have you try that.
Cheers,
Clint
Hi,
I have released 3.9.72. It installs fine on my P4E, and I've supplied architectural defaults for the 64-bit build. I believe this should fix the problem you are having. If so, please close this report as fixed. If the problem still persists, let me know!
Thanks,
Clint
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
OK, so it did build all of the libraries, but did not build the shared ones. Make check still fails with this error message.
/home/melvin/ATLAS/build/lib/libtstatlas.a /home/melvin/ATLAS/build/lib/liblapack.a /home/melvin/ATLAS/build/lib/libcblas.a /home/melvin/ATLAS/build/lib/libf77blas.a \
/home/melvin/ATLAS/build/lib/libatlas.a -lpthread -lm
sqrtst.o: In function `qrtest':
qrtst.c:(.text+0x7a5): undefined reference to `ATL_C2Fsormqr'
sqrtst.o: In function `rqtest':
qrtst.c:(.text+0xe7a): undefined reference to `ATL_C2Fsormrq'
sqrtst.o: In function `lqtest':
qrtst.c:(.text+0x1588): undefined reference to `ATL_C2Fsormlq'
sqrtst.o: In function `qltest':
qrtst.c:(.text+0x1c4c): undefined reference to `ATL_C2Fsormql'
collect2: ld returned 1 exit status
make[3]: *** [xsqrtst] Error 1
make[3]: Leaving directory `/home/melvin/ATLAS/build/bin'
make[2]: *** [sanity_test] Error 2
make[2]: Leaving directory `/home/melvin/ATLAS/build/bin'
make[1]: *** [sanity_test] Error 2
make[1]: Leaving directory `/home/melvin/ATLAS/build'
make: *** [test] Error 2
There are some strange numbers during the build:
OP PREF MU NU MFLOP
== ==== ==== ==== ============
X DEF 8 20 1934781000000000000.00
X nta 8 20 1124488000000000000.00
X t0 8 20 1124488000000000000.00
X t1 8 20 792561000000000000.00
X t2 8 20 792561000000000000.00
OP PREF MU NU MFLOP
== ==== ==== ==== ============
Y DEF 8 20 1124488000000000000.00
Y nta 8 20 792561000000000000.00
Y t0 8 20 1124488000000000000.00
Y t1 8 20 792561000000000000.00
Y t2 8 20 1124488000000000000.00
Also the 387 flags still show up:
BEST MFLOP[4]=1124488000000000000.00 (41.88 percent improvement)
cflags='-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -msse2 -m32 -fPIC -DPFIY=prefetcht0'
Should I upload a fresh error report?
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
The LAPACK library that was built does not contain cheev
OK, this appears to be new problems, so I'm closing this one as fixed. Open up a new support request if my WAG doesn't fix the problem you are now having:
If you want cheev in the library, then you need to build using the --with-netlib-lapack-tarfile= flag, and I recommend lapack 3.3.1, since 3.4 has some bugs.
The flags are *supposed* to still have x87, it's just that we've added the -msse flags to fix the compilation bug you found.
OK, closing this as fixed, open up a new support requests with new problems.
Thanks!
Clint
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Yeah, it built OK, but did not build the shared libraries and strangely did not include the cheev lapack function though I included the configure flag. I'll try to rebuild and open up a new support case.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"