代码之家  ›  专栏  ›  技术社区  ›  mmarah

无法使用“英特尔MKL”安装Scipy

  •  1
  • mmarah  · 技术社区  · 8 年前

    我用英特尔MKL成功地从源代码安装了Numpy“Numpy-1.12.0.dev0+1380fdd-py2.7-linux-x86_64.egg”(主要遵循 https://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl ). numpy.show_config() 显示以下内容:

    Python 2.7.10 (default, Sep  8 2015, 17:20:17) 
    [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import numpy
    >>> numpy.show_config()
    lapack_opt_info:
        libraries = ['mkl_rt', 'pthread']
        library_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64']
        define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
        include_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include']
    blas_opt_info:
        libraries = ['mkl_rt', 'pthread']
        library_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64']
        define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
        include_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include']
    lapack_mkl_info:
        libraries = ['mkl_rt', 'pthread']
        library_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64']
        define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
        include_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include']
    blas_mkl_info:
        libraries = ['mkl_rt', 'pthread']
        library_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64']
        define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
        include_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include']
    mkl_info:
        libraries = ['mkl_rt', 'pthread']
        library_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64']
        define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
        include_dirs = ['/opt/intel/compilers_and_libraries_2016.1.150/linux/mkl/include']
    

    而且 numpy.test() 工作正常:

    >>> numpy.test()
    Running unit tests for numpy
    NumPy version 1.12.0.dev0+1380fdd
    NumPy relaxed strides checking option: True
    NumPy is installed in /usr/lib64/python2.7/site-packages/numpy-1.12.0.dev0+1380fdd-py2.7-linux-x86_64.egg/numpy
    Python version 2.7.10 (default, Sep  8 2015, 17:20:17) [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)]
    nose version 1.3.7
    [....................SKIP..........................]
    ----------------------------------------------------------------------
    Ran 5855 tests in 51.180s
    
    OK (KNOWNFAIL=6, SKIP=8)
    <nose.result.TextTestResult run=5855 errors=0 failures=0>
    

    但由于某些原因,我甚至无法通过 python setup.py config --compiler=intelem --fcompiler=intelem build_clib --compiler=intelem --fcompiler=intelem build_ext --compiler=intelem --fcompiler=intelem install 也不通过 pip install scipy 。从源收到以下错误:

    RuntimeError: Running cythonize failed!
    

    检查cython:

    cython -V
    Cython version 0.23
    

    通过pip引线将其安装到:

    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ticToS/scipy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-qnZ8HE-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ticToS/scipy/
    

    你知道我做错了什么吗?

    我的操作系统是Thinkpad T450上的Fedora 23。一个附带问题是,我也认识到 numpy.test() 如果不使用“英特尔MKL”,速度会快得多。对此有什么解释吗?

    非常感谢你。

    1 回复  |  直到 8 年前
        1
  •  1
  •   mmarah    8 年前

    正在安装 redhat-rpm-config , 'Development Tools' 通过groupinstall解决了这个问题。

    推荐文章