[SciPy-Dev] Many Problems Building w/ MKL 11, ifort, icc; scipy.test() Fails w/ Undefined Symbols
Will Buckner
wbuckner at beatsmusic.com
Wed Aug 14 15:52:33 EDT 2013
I've tried this about 6 different ways now, and all successful builds
result in the same error during scipy.test() (note that NumPy builds fine
with same site.cfg):
======================================================================
ERROR: Failure: ImportError
(/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
undefined symbol: mkl_blas_dgemm_blk_info_bdz)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/nose/loader.py", line 413,
in loadTestsFromName
addr.filename, addr.module)
File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 47,
in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 94,
in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/usr/local/lib/python2.7/dist-packages/scipy/stats/__init__.py",
line 320, in <module>
from .stats import *
File "/usr/local/lib/python2.7/dist-packages/scipy/stats/stats.py", line
242, in <module>
import scipy.linalg as linalg
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.py",
line 147, in <module>
from .misc import *
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/misc.py", line
5, in <module>
from . import blas
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/blas.py", line
113, in <module>
from scipy.linalg import _fblas
ImportError:
/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
undefined symbol: mkl_blas_dgemm_blk_info_bdz
Here's some info on my environment:
Intel Composer XE 2013.5.192, ifort+icc
icc flags: -fPIC -DMKL_ILP64 -m64 -fp-model', 'strict',
'-fomit-frame-pointer', '-openmp', '-xhost', '-parallel'
ifort flags: -fPIC -i8 -xhost -openmp -fp-model strict
OS: Ubuntu 12.04
24 Cores Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
Intel LibMKL 11.0.5
site.cfg:
[mkl]
library_dirs = /opt/intel/mkl/lib/intel64:/opt/intel/lib/intel64
include_dirs = /opt/intel/mkl/include:/opt/intel/include
lapack_libs = mkl_lapack95_lp64
mkl_libs = mkl_def, mkl_intel_lp64, mkl_intel_thread, mkl_core, mkl_mc
[fftw]
library_dirs = /opt/intel/mkl/lib/intel64
include_dirs = /opt/intel/mkl/include
libraries = fftw3
[amd]
amd_libs = amd
library_dirs = /usr/lib
include_dirs = /usr/include/suitesparse/
[umfpack]
umfpack_libs = umfpack
library_dirs = /usr/lib
include_dirs = /usr/include/suitesparse/
Built with:
python setup.py clean
python setup.py -v config --compiler=intelem --fcompiler=intelem
build_clib --compiler=intelem --fcompiler=intelem build_ext
--compiler=intelem --fcompiler=intelem install
FOUND:
libraries = ['mkl_def', 'mkl_intel_lp64', 'mkl_intel_thread',
'mkl_core', 'mkl_mc', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
FOUND:
libraries = ['mkl_def', 'mkl_intel_lp64', 'mkl_intel_thread',
'mkl_core', 'mkl_mc', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
FOUND:
libraries = ['mkl_lapack95_lp64', 'mkl_def', 'mkl_intel_lp64',
'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
( library_dirs = /usr/local/lib:/usr/lib:/usr/lib/x86_64-linux-gnu )
FOUND:
libraries = ['mkl_lapack95_lp64', 'mkl_def', 'mkl_intel_lp64',
'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'pthread']
library_dirs = ['/opt/intel/mkl/lib/intel64']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
**The problem is here:**
======================================================================
ERROR: Failure: ImportError
(/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
undefined symbol: mkl_blas_dgemm_blk_info_bdz)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/nose/loader.py", line 413,
in loadTestsFromName
addr.filename, addr.module)
File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 47,
in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 94,
in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/usr/local/lib/python2.7/dist-packages/scipy/stats/__init__.py",
line 320, in <module>
from .stats import *
File "/usr/local/lib/python2.7/dist-packages/scipy/stats/stats.py", line
242, in <module>
import scipy.linalg as linalg
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.py",
line 147, in <module>
from .misc import *
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/misc.py", line
5, in <module>
from . import blas
File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/blas.py", line
113, in <module>
from scipy.linalg import _fblas
ImportError:
/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
undefined symbol: mkl_blas_dgemm_blk_info_bdz
Now, where is mkl_blas_dgemm_blk_info_bdz defined?
daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$ nm libmkl_core.so |
grep mkl_blas_dgemm_blk_info_bdz
00000000000c59f0 T mkl_blas_dgemm_blk_info_bdz
daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$
Right there ^.
I included mkl_core in site.cfg and it seems to be linking it, so I'm not
sure why this symbol is still undefined. Note that it *is* undefined in
libmkl_intel_thread.so:
daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$ nm
libmkl_intel_thread.so | grep mkl_blas_dgemm_blk_info_bdz
U mkl_blas_dgemm_blk_info_bdz
daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$
I also tried the instructions provided by intel at
http://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl, using
just mkl_rt. This had the same result, and seems incorrect, as it's not
providing any lapack libraries (I'm assuming it would just fall back to "no
lapack" and it seems to). This is highly confusing, as all of the MKL
numpy/scipy instructions seem to be for older MKLs, before mkl_rt.
Could anyone help me debug this? I'm hopelessly frustrated with it at this
point and willing to do whatever to help you guys debug.
Thanks! What additional info is needed?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20130814/47820391/attachment.html>
More information about the SciPy-Dev
mailing list