SVD segfaults (BLAS function) on Ubuntu 32 bits when using blitz 0.10 hg
Created by: laurentes
We have noticed that the SVD was crashing on Ubuntu 32 bits, when using the latest release of blitz++ from mercurial. Strangely, this only happens with this particular combination of platform and blitz version, and hence no problem is encountered when using 64 bits versions of Ubuntu or the latest but old 0.9 release of blitz++, even when using valgrind.
The crash is caused by a segmentation fault, and gdb reports the following:
Program received signal SIGSEGV, Segmentation fault. 0xb6e4f19b in ATL_dgemvT_a1_x1_b0_y1 () from /usr/lib/libblas.so.3gf
There are many tickets for other libraries using BLAS which report similar problem with this particular function, but none of them really explain the cause of the problem. This might be related to some data alignment issue. NumPy/SciPy gnome-mousetrap OpenCV1 OpenCV2
The workaround that we have currently chosen is to copy the data of the blitz::Array's to/from C-style arrays, only for the linux 32 bits implementation of the SVD.