通过 PIP 使用 MKL 安装 Scipy



我正在使用PIP安装带有MKL的Scipy以加速性能。我的操作系统是 Ubuntu 64 位。使用这个问题的解决方案,我创建了一个文件.numpy-site.cfg

[mkl]
library_dirs=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64/
include_dirs=/opt/intel/mkl/include/
mkl_libs=mkl_intel_lp64,mkl_intel_thread,mkl_core,mkl_rt
lapack_libs=

此文件可帮助我成功安装带有MKL的Numpy。但是,使用上述相同文件,安装 Scipy 会提示错误

ImportError: libmkl_rt.so: cannot open shared object file: No such file or directory

我也使用

export LD_LIBRARY_PATH=/opt/intel/composer_xe_2013_sp1/mkl/lib/intel64

但问题仍然是一样的。

有人知道如何解决这个问题吗?我不想手动安装 Scipy,所以有人给我一些提示来修复它。

英特尔一直在向PyPI发布Numpy,Scipy和Scikit-learn等软件包。这些轮子是在与英特尔 MKL 链接时构建的,并包含各种优化。

如果您希望使用英特尔 MKL 构建 Scipy:

#Remove existing Numpy and/or Scipy:
pip uninstall numpy scipy -y
#Install scipy built with Intel MKL:
pip install intel-scipy

更多信息可在此处获得

这个问题问到现在已经过去了2年。

现在有用于Linux的numpy/scipy轮子,它们使用为avx2编译的openblas,因此您可以在不构建软件包的情况下获得更好的性能。您可能需要升级 pip 才能让它安装轮子:

pip install --upgrade pip
pip install numpy scipy

如果你想要MKL,那么你可以安装Anaconda或Intel Distribution for Python。他们使用 conda 而不是 pip 来管理包,但它们是免费的,并且分发包含所有依赖项(包括 MKL)的包。

我有 Win10 64Bit 和 Python 3.6.2 我已经通过 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 安装了 scipy

我遵循以下步骤:

  • 第 1 步:如果您有任何以前版本的 numpy,请卸载, 点子卸载 numpy
  • 第 2 步:下载 numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whlMKL(数学内核库)从下面的链接, http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
  • 步骤3:将下载的文件复制到另一个位置并启动命令从该位置提示。
  • 第 4 步:运行此命令, pip install -U numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
  • 步骤5:现在从中下载scipy库, http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
  • 第 6 步:将下载的文件复制到 numpy 所在的同一位置复制。
  • 步骤7:在CMD提示符下运行此cmd, pip install scipy-0.19.1-cp36-cp36m-win_amd64.whl

做!

如果您在安装或运行特定版本时遇到问题,请先卸载,然后安装

第 1 步:

pip uninstall -v numpy

第 2 步:下载滚轮文件并安装

pip install -U numpy-1.13.0+mkl-cp36-cp36m-win_amd64.whl

在此示例中,wheel 文件名为"numpy-1.13.0+mkl-cp36-cp36m-win_amd64.whl"

过去几周我一直面临这个问题:视窗 10 64 位蟒蛇 3.5.2

我的解决方法:

第一:pip install wheel

下一篇: 从Gholke的存储库中下载Numpy和ScipyNumpy 和 SciPy

然后:

pip install numpy_package.whl

pip install scipy_package.whl

由于实际问题本身没有回答,让我试一试......

我认为这里的问题基本上是正在使用的 BLAS/LAPACK 库分布在多个位置,而 numpy 不能很好地处理这个问题。

我们已经在 EasyBuild 中修复了这个问题,我们已经在英特尔 MKL 之上构建了一段时间的 numpy/scipy,并发布了以下补丁:https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/n/numpy/numpy-1.8.1-mkl.patch

对我来说

,MKL附带了Scipy库conda install scipy

@rscohn2解决方案给了我使用包的提示。

作为参考,我的环境包括Ubuntu,Anaconda,Python 3.6,Scipy 1.1和MKL 2018.0。

最新更新