I am having a problem with code that worked well on the IA32 platform. Nothing has changed except that I am now on EMT64 (Xeon 5050). I am therefore reluctant to believe it is the code (which is very straightforward).
I am using Intel MKL 8.1 on Linux.
I have some code to do an SVD of a matrix. When this matrix is smallish (e.g. 16x3), the code works fine. When the matrix gets bigger, (e.g. 163x3) the code seg. faults and examining the core gives the following error:
Loaded symbols for /opt/intel/mkl/8.1/lib/em64t/libmkl_p4n.so
#0 0x00002aaaac91bf19 in mkl_blas_dgemm_pst () from /opt/intel/mkl/8.1/lib/em64t/libmkl_p4n.so
The crash actually happens in a call to ZBDSQR and reports a segmentation fault with mkl_blas_dgemm_pst().
I am linking against the version of "libguide.so" that comes with the MKL. The code also uses "libimf.so" which doesn't come with the MKL, I am using the version that comes with the Intel C++ compiler, 9.1.044.
Other people have reported a similar bug when calling ZGESVD which, since it's only a driver routine, may be having the same problem.
64bit problem with mkl_blas_dgemm / zgesvd