Bug#655586: libatlas3gf-base and "Illegal instruction"

Stefano Lattarini stefano.lattarini at gmail.com
Fri Jan 13 09:37:45 UTC 2012


On 01/12/2012 04:17 PM, Sylvestre Ledru wrote:
>
> [SNIP]
>
> Your CPU is too old.

> Le jeudi 12 janvier 2012 à 16:14 +0100, Stefano Lattarini a écrit :
>> On 01/12/2012 04:07 PM, Sylvestre Ledru wrote:
>>>
>>> Did you try with an optimized version of atlas?
>>>
>> No.  Should I?
> if you want your atlas to work, yes ;)
>
I followed the advice in the README.Debian.gz file and tried to build the
package from source, but that failed as well (see details below in case you
are interested).

But then I managed to fix the problem by using the other advice (still given
in README.Debian.gz) of using update-alternatives:

  $ update-alternatives --config libblas.so.3gf
  There are 2 choices for the alternative libblas.so.3gf (providing /usr/lib/libblas.so.3gf).

    Selection    Path                                       Priority  Status
  ------------------------------------------------------------------------------
  * 0            /usr/lib/atlas-base/atlas/libblas.so.3gf   35        auto mode
    1            /usr/lib/atlas-base/atlas/libblas.so.3gf   35        manual mode
    2            /usr/lib/libblas/libblas.so.3gf            10        manual mode

  Press enter to keep the current choice[*], or type selection number: 2
  update-alternatives: using /usr/lib/libblas/libblas.so.3gf to provide
  /usr/lib/libblas.so.3gf (libblas.so.3gf) in manual mode.

(and similarly for liblapack.so.3gf, libblas.so and liblapack.so).

Now the testsuite of numpy passes, both for the numpy installed by aptitude and for
the one I rebuilt by hand.  Unfortunately, the numpy rebuilt by hand does not seem
to build  the `_dotblas.so' file -- but at least its testsuite now passes and I've
no more seen any "Illegal instruction" error.

Thanks for the help,
  Stefano

-*-*-

[Details about the build failure, in case anyone is interested]
...
/tmp/x/atlas-3.8.4/build/atlas-base/bin/ATLrun.sh /tmp/x/atlas-3.8.4/build/atlas-base/tune/blas/gemm xdfc
dNB=30, ld=30,30,30, mu=6, nu=1, ku=30, lat=5, pf=512: time=0.992, mflop=1105.39
/tmp/x/atlas-3.8.4/build/atlas-base/bin/ATLrun.sh: line 4:   567 Segmentation fault      $atldir/$*
make[7]: *** [dmmcase0] Error 139
make[7]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base/tune/blas/gemm'
make[6]: *** [mmcase] Error 2
make[6]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base/tune/blas/gemm'
Error in command:  make mmcase pre=d loopO=JIK ta=T tb=N M=30 N=30 K=30 mb=30 nb=30 kb=30 lda=0 ldb=0 ldc=0 lda2=0 ldb2=0 ldc2=0 mu=6 nu=1 ku=30 alpha=1 beta=1 muladd=0 lat=5 cleanup=1 ff=1 if=5 nf=2 pfA=512
, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=1, muladd=0, lat=1 ====> mflop=715.427686

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=4, muladd=0, lat=1 ====> mflop=815.961871

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=8, muladd=0, lat=1 ====> mflop=927.442235

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=12, muladd=0, lat=1 ====> mflop=1042.600628

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=1 ====> mflop=1037.489290

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=12, muladd=0, lat=2 ====> mflop=916.525826

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=12, muladd=0, lat=3 ====> mflop=906.929796

   pre=d, loopO=JIK, ta=N tb=T, mb=0, nb=0, kb=0, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=12, muladd=0, lat=6 ====> mflop=899.345574
BEST for NT_0x0x0: mflop=1042.60
pre=d ta=N tb=T nb=0 mu=6 nu=1 ku=12 muladd=0 lat=1

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=1 ====> mflop=1292.299428

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=1, muladd=0, lat=1 ====> mflop=700.591988

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=4, muladd=0, lat=1 ====> mflop=1060.392448

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=1 ====> mflop=1292.299428

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=2 ====> mflop=1279.298841

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=3 ====> mflop=1290.067063

   pre=d, loopO=JIK, ta=T tb=N, mb=30, nb=30, kb=30, lda=0, ldb=0, ldc=0
   mu=6, nu=1, ku=30, muladd=0, lat=4 ====> mflop=1278.639802
make[5]: *** [res/dMMRES] Error 255
make[5]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base/tune/blas/gemm'
make[4]: *** [/tmp/x/atlas-3.8.4/build/atlas-base/tune/blas/gemm/res/dMMRES] Error 2
make[4]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base/bin'
xatlas_build: /tmp/x/atlas-3.8.4/build/atlas-base/../..//bin/atlas_install.c:376: GetMMRES: Assertion `fp' failed.
/bin/sh: line 1: 19954 Aborted                 ./xatlas_build -1 0 -a 1
make[3]: *** [build] Error 134
make[3]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/tmp/x/atlas-3.8.4/build/atlas-base'
make[1]: *** [build-arch-stamp] Error 2
make[1]: Leaving directory `/tmp/x/atlas-3.8.4'
make: *** [custom-stamp] Error 2






More information about the debian-science-maintainers mailing list