问题描述
我安装了 numpy
,但显示没有可用的 BLAS 后端:
(pyrepoux) bash-4.2$ python
Python 3.7.3 | packaged by conda-forge | (default,Dec 6 2019,08:54:18)
[GCC 7.3.0] :: Anaconda,Inc. on linux
Type "help","copyright","credits" or "license" for more information.
>>> import numpy as np
>>> np.show_config()
blas_mkl_info:
NOT AVAILABLE
blis_info:
NOT AVAILABLE
openblas_info:
libraries = ['openblas','openblas']
library_dirs = ['/usr/local/lib']
language = c
define_macros = [('HAVE_CBLAS',None)]
blas_opt_info:
libraries = ['openblas',None)]
lapack_mkl_info:
NOT AVAILABLE
openblas_lapack_info:
libraries = ['openblas',None)]
lapack_opt_info:
libraries = ['openblas',None)]
我可以执行 pip install mkl
但仍然与上面的输出相同。如何链接 numpy
以使用 MKL 作为 BLAS/LAPACK 后端?
解决方法
您可以尝试在 intel python 中使用。使用 intel python 和所需的包(如 intel-mkl、intel-numpy 等)创建环境
conda create -n <env-name> intelpython3_full python=3.7.3
conda activate <env_name>
pip install mkl
pip install intel-numpy
并尝试导入 numpy 并运行 np.show_config()
参考:https://pypi.org/project/mkl/ https://pypi.org/project/intel-numpy/
更好的方法是安装英特尔基础工具包并获取变量。英特尔 mkl 和英特尔 python 可用于该套件。您只需要获取环境变量
source <basekit-installation-directory>/setvars.sh
您也可以尝试 Jerome Richard 提供的建议 - 尝试将 LD_LIBRARY_PATH 和 LD_PRELOAD 路径设置为 mkl 库 .so 文件。 参考:https://software.intel.com/content/www/us/en/develop/articles/optimizing-without-breaking-a-sweat.html