[Bug 406520] [NEW] libatlas3gf-sse2 zgemv function gives wrong result

FP Fabrice.Pardo at lpn.cnrs.fr
Wed Jul 29 17:57:05 UTC 2009


Public bug reported:

Binary package hint: libatlas3gf-sse2

The blas matrix-vector complex product is completely broken if using
sse2 even for very small matrix.

The consequences for lapack, python numpy.linalg functions, etc. are
catastrophic.

Here a very simple t.f FORTRAN program showing the bug

      program sse2_bug
      complex*16 cmone
      complex*16 a(2,2)
      complex*16 x(2)
      complex*16 y(2)
      cmone  = (1.,0.)
      a(1,1) = (1.,0.)
      a(2,1) = (0.,0.)
      a(1,2) = (0.,0.)
      a(2,2) = (1.,0.)
      x(1)   = (0.,3.)
      x(2)   = (1.,0.)
      y(1)   = (0.,0.)
      y(2)   = (1.,0.)
      call zgemv('n',2,1,cmone,a,2,x,1,cmone,y,1)
      write(*,*) y(1)," == 3j"
      end

Compilation :

  gfortran -o t t.f -lblas

Buggy lib:

  ldd ./t | grep libblas.so
	libblas.so.3gf => /usr/lib/sse2/atlas/libblas.so.3gf (0xb7a8a000)
  ./t
   (  0.0000000000000000     ,-1.25759005142687227E-038)  == 3j

Non-sse2 libs give correct result:

  (export LD_LIBRARY_PATH=/usr/lib/sse/atlas ; ./t)
   (  0.0000000000000000     ,  3.0000000000000000     )  == 3j
  (export LD_LIBRARY_PATH=/usr/lib/atlas ; ./t)
   (  0.0000000000000000     ,  3.0000000000000000     )  == 3j

Description:	Ubuntu 9.04
Release:	9.04

libatlas3gf-sse2:
  Installed: 3.6.0-22ubuntu2
  Candidate: 3.6.0-22ubuntu2
  Version table:
 *** 3.6.0-22ubuntu2 0
        500 http://ftp.free.org jaunty/universe Packages
        100 /var/lib/dpkg/status

** Affects: atlas (Ubuntu)
     Importance: Undecided
         Status: New

-- 
libatlas3gf-sse2 zgemv function gives wrong result
https://bugs.launchpad.net/bugs/406520
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs at lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs




More information about the universe-bugs mailing list