[Numpy-discussion] MKL with 64bit crashes

Dag Sverre Seljebotn dagss@student.matnat.uio...
Thu Jan 21 06:01:30 CST 2010


Kashyap Ashwin wrote:
> Matthieu,
> I am not sure what exactly you mean. I did pass in "static" to the
> link-adviser and this is the new setup.cfg
> mkl_libs = mkl_solver_ilp64, mkl_intel_ilp64, mkl_gnu_thread, mkl_core.
>
> On import, Numpy complains as usual about the mkl_def and mkl_mc. If I
> append these libs, then the crashes happen on test() (complains first
> about the DGES* functions).
> Also, I have made sure that g77 is not installed and only gfortran is
> available. 
>
> I also put in the LD_LIBRARY_PATH=/opt/intel/mkl/10.2.2.025/lib/em64t.
>
> Thanks,
> Ashwin
>   

This was an old post, but for Googlability of this thread: I think the 
major problem here is that one uses "ilp64" rather than "lp64". Even on 
a 64-bit system, it is common to assume integers are 32-bit for BLAS, 
and it seems NumPy makes this assumption as well.

Just appending mkl_def or mkl_mc seems dangerous as I have a lurking 
feeling the purpose of those is to load different libraries for 
different CPUs, determined runtime. (This is not validated by anyone, it 
is just a guess).

There's more problems, but I've detailed those in my recent post on 
"Proposed fix for MKL and dynamic loading".

Dag Sverre

> Your message:
> Hi,
>
> You need to use the static libraries, are you sure you currently do?
>
> Matthieu
>
> 2009/10/15 Kashyap Ashwin <Ashwin.Kashyap@thomson.net>:
>   
>> I followed the advice given by the Intel MKL link adviser
>>
>>     
> (http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)
>   
>> This is my new site.cfg:
>> mkl_libs = mkl_intel_ilp64, mkl_gnu_thread, mkl_core
>>
>> I also exported CFLAGS="-fopenmp" and built with the
>>     
> --fcompiler=gnu95.
>   
>> Now I get these errors on import:
>> Running unit tests for numpy
>> NumPy version 1.3.0
>> NumPy is installed in
>> /opt/Personalization/lib/python2.5/site-packages/numpy
>> Python version 2.5.2 (r252:60911, Jul 22 2009, 15:33:10) [GCC 4.2.4
>> (Ubuntu 4.2.4-1ubuntu3)]
>> nose version 0.11.0
>>
>> *** libmkl_mc.so *** failed with error : libmkl_mc.so: undefined
>>     
> symbol:
>   
>> mkl_dft_commit_descriptor_s_c2c_md_omp
>> *** libmkl_def.so *** failed with error : libmkl_def.so: undefined
>> symbol: mkl_dft_commit_descriptor_s_c2c_md_omp
>> MKL FATAL ERROR: Cannot load neither libmkl_mc.so nor libmkl_def.so
>>
>>
>> Any hints?
>>     
>
>   
>> Thanks,
>> Ashwin
>>
>>
>>
>> Your message:
>>
>> On Thu, Oct 15, 2009 at 8:04 AM, Kashyap Ashwin
>> <Ashwin.Kashyap@thomson.net> wrote:
>>     
>>> Hello,
>>> I compiled numpy-1.3.0 from sources on Ubuntu-hardy, x86-64 (Intel)
>>>       
>> with
>>     
>>> MKL.
>>> This is my site.cfg:
>>> [mkl]
>>> # library_dirs = /opt/intel/mkl/10.0.1.014/lib/32/
>>> library_dirs = /opt/intel/mkl/10.2.2.025/lib/em64t
>>> include_dirs = /opt/intel/mkl/10.2.2.025/include
>>> lapack_libs = mkl_lapack
>>> #mkl_libs = mkl_core, guide, mkl_gf_ilp64, mkl_def, mkl_gnu_thread,
>>> iomp5, mkl_vml_mc3
>>> mkl_libs = guide, mkl_core, mkl_gnu_thread, iomp5, mkl_gf_ilp64,
>>> mkl_mc3, mkl_def
>>>       
>> The order does not look right - I don't know the exact order (each
>> version of the MKL changes the libraries), but you should respect the
>> order as given in the MKL manual.
>>
>>     
>>> MKL ERROR: Parameter 4 was incorrect on entry to DGESV
>>>       
>> This suggests an error when passing argument to MKL - I believe your
>> version of MKL uses the gfortran ABI by default, and hardy uses g77 as
>> the default fortran compiler. You should either recompile everything
>> with gfortran, or regenerate the MKL interface libraries with g77 (as
>> indicated in the manual).
>>
>> cheers,
>>
>> David
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>     
>
>
>   
>> -----Original Message-----
>> From: Kashyap Ashwin
>> Sent: Thursday, October 15, 2009 11:01 AM
>> To: 'numpy-discussion@scipy.org'
>> Subject: RE: MKL with 64bit crashes
>>
>> I followed the advice given by the Intel MKL link adviser
>>     
> (http://software.intel.com/en-
>   
>> us/articles/intel-mkl-link-line-advisor/)
>>
>> This is my new site.cfg:
>> mkl_libs = mkl_intel_ilp64, mkl_gnu_thread, mkl_core
>>
>> I also exported CFLAGS="-fopenmp" and built with the
>>     
> --fcompiler=gnu95. Now I get these errors on
>   
>> import:
>> Running unit tests for numpy
>> NumPy version 1.3.0
>> NumPy is installed in
>>     
> /opt/Personalization/lib/python2.5/site-packages/numpy
>   
>> Python version 2.5.2 (r252:60911, Jul 22 2009, 15:33:10) [GCC 4.2.4
>>     
> (Ubuntu 4.2.4-1ubuntu3)]
>   
>> nose version 0.11.0
>>
>> *** libmkl_mc.so *** failed with error : libmkl_mc.so: undefined
>>     
> symbol:
>   
>> mkl_dft_commit_descriptor_s_c2c_md_omp
>> *** libmkl_def.so *** failed with error : libmkl_def.so: undefined
>>     
> symbol:
>   
>> mkl_dft_commit_descriptor_s_c2c_md_omp
>> MKL FATAL ERROR: Cannot load neither libmkl_mc.so nor libmkl_def.so
>>
>>
>> Any hints?
>>
>> Thanks,
>> Ashwin
>>
>>
>>
>> Your message:
>>
>> On Thu, Oct 15, 2009 at 8:04 AM, Kashyap Ashwin
>> <Ashwin.Kashyap@thomson.net> wrote:
>>     
>>> Hello,
>>> I compiled numpy-1.3.0 from sources on Ubuntu-hardy, x86-64 (Intel)
>>>       
> with
>   
>>> MKL.
>>> This is my site.cfg:
>>> [mkl]
>>> # library_dirs = /opt/intel/mkl/10.0.1.014/lib/32/
>>> library_dirs = /opt/intel/mkl/10.2.2.025/lib/em64t
>>> include_dirs = /opt/intel/mkl/10.2.2.025/include
>>> lapack_libs = mkl_lapack
>>> #mkl_libs = mkl_core, guide, mkl_gf_ilp64, mkl_def, mkl_gnu_thread,
>>> iomp5, mkl_vml_mc3
>>> mkl_libs = guide, mkl_core, mkl_gnu_thread, iomp5, mkl_gf_ilp64,
>>> mkl_mc3, mkl_def
>>>       
>> The order does not look right - I don't know the exact order (each
>> version of the MKL changes the libraries), but you should respect the
>> order as given in the MKL manual.
>>
>>     
>>> MKL ERROR: Parameter 4 was incorrect on entry to DGESV
>>>       
>> This suggests an error when passing argument to MKL - I believe your
>> version of MKL uses the gfortran ABI by default, and hardy uses g77 as
>> the default fortran compiler. You should either recompile everything
>> with gfortran, or regenerate the MKL interface libraries with g77 (as
>> indicated in the manual).
>>
>> cheers,
>>
>> David
>>     
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>   



More information about the NumPy-Discussion mailing list