Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6977 Discussions

[icc + MKL 11.1 + NumPy] numpy.test() error: undefined symbol _intel_fast_memset

Francesco_V_
Beginner
359 Views

I am trying to compile NumPy 1.8.1 with icc 14.0.1 20131008 and MKL 11.1. 
T
he compilation succeeds, but when I run numpy.test() the test fails with this error message: 

ImportError: /tmp/tmpPXvMOC/test_array_from_pyobj_ext.so: undefined symbol: _intel_fast_memset

I am following Intel's instructions, I run intel's compilervars.sh to setup the environment and then build numpy with this command:

python setup.py config --compiler=intelem --fcompiler=intelem  build_clib --compiler=intelem --fcompiler=intelem build_ext  --compiler=intelem --fcompiler=intelem install --prefix=$HOME/.local 2>&1 | tee -a BUILD.log

With nm I found out that the _intel_fast_memset symbol is defined in libirc.so. I tried to add irc in site.cfg, but the error persists.
I also tried to compile numpy 1.9.0 and I still get the same error. I also tried to manually specify the libs in site.cfg instead of relying on mkl_rt, but the result is always the same.

The lib directories of the intel compiler are correctly set in the LD_LIBRARY_PATH, and the intel dynamic libraries are linked to _dotblas.so.

ldd build/lib.linux-x86_64-2.7/numpy/core/_dotblas.so
	linux-vdso.so.1 =>  (0x00007fffa1dff000)
	libmkl_def.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/mkl/lib/intel64/libmkl_def.so (0x00007f8e60281000)
	libmkl_intel_lp64.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/mkl/lib/intel64/libmkl_intel_lp64.so (0x00007f8e5fb3d000)
	libmkl_intel_thread.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/mkl/lib/intel64/libmkl_intel_thread.so (0x00007f8e5eb7e000)
	libmkl_core.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/mkl/lib/intel64/libmkl_core.so (0x00007f8e5d4c0000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8e5d28e000)
	libpython2.7.so.1.0 => /cineca/prod/tools/python/2.7.5/gnu--4.6.3/lib/libpython2.7.so.1.0 (0x00007f8e5ceb4000)
	libimf.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/compiler/lib/intel64/libimf.so (0x00007f8e5c9ec000)
	libsvml.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/compiler/lib/intel64/libsvml.so (0x00007f8e5bdf5000)
	libirng.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/compiler/lib/intel64/libirng.so (0x00007f8e5bbed000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f8e5b969000)
	libiomp5.so => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/compiler/lib/intel64/libiomp5.so (0x00007f8e5b64e000)
	libgcc_s.so.1 => /cineca/prod/compilers/gnu/4.6.3/none/lib64/libgcc_s.so.1 (0x00007f8e5b439000)
	libintlc.so.5 => /cineca/prod/compilers/intel/cs-xe-2013/binary/composer_xe_2013_sp1.1.106/compiler/lib/intel64/libintlc.so.5 (0x00007f8e5b1e2000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f8e5ae4e000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f8e5ac4a000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003b0a000000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007f8e5aa46000)

My site.cfg, the numpy.test() log and the build log are attached, please let me know if you need anything else.
Thank you in advance for your help!

 

0 Kudos
0 Replies
Reply