Bug#569436: blas: zgesvd seems to give incorrect results

Denis Barbier bouzim at gmail.com
Sat Feb 27 20:22:53 UTC 2010


On 2010/2/27 Kumar Appaiah wrote:
> (Also CCing #571572)
>
> Dear Denis,
>
> On Sat, Feb 27, 2010 at 05:44:45PM +0100, Denis Barbier wrote:
>> Hi,
>>
>> I played with the example provided by Kumar Appaiah, and narrowed the
>> problem down to zdrot; after copying zdrot.f into the same directory
>> as zgesvd_ex.f:
>>   $ gfortran -O2 -c zgesvd_ex.f
>>   $ gfortran -O2 -c zdrot.f
>>   $ gfortran -o zgesvd_ex zgesvd_ex.o zdrot.o -llapack
>>   $ ./zgesvd_ex
>> gives the expected result (with libblas3gf 1.2-4), but
>>   $ gfortran -O2 -ftree-vectorize -c zdrot.f
>>   $ gfortran -o zgesvd_ex zgesvd_ex.o zdrot.o -llapack
>>   $ ./zgesvd_ex
>> gives the wrong result.
>> This looks like a bug in the gcc vectorizer, and it cannot be
>> reproduced with gcc 4.5 from experimental.
>
> This was fantastic analysis. I actually would like to know how you
> zeroed in onto zdrot to find the problem.

Hi,

I used brute force ;)
libblas3gf 1.2-4 is installed on my system, object files from
libblas3gf 1.2-3 have been unpacked into dir1, half files are moved
into dir2.  then I compiled
  gfortran zgesvd_ex.o dir1/*.o -llapack
and by dichotomy found which object file is causing trouble.

> I shall now try to play around with zdrot to see if I can create a
> test case which reproduces the bug, so that I can file a bug report
> with GCC.

I am afraid that this is not easy, and anyway GCC folks will discard
your bugreport since this bug has been fixed in 4.5.  But I am very
interested to know the exact reason, and if there is a way to prevent
this bug by modifying source files.

Denis





More information about the debian-science-maintainers mailing list