如何将NumPy链接到使用MKL作为后端?

3

我安装了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', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
  NOT AVAILABLE
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

我可以执行pip install mkl,但输出结果与上述相同。如何将numpy链接到使用MKL作为BLAS / LAPACK后端?


2
使用经过优化的Intel版本的Python可能会有所帮助(尤其是经过优化的Intel Anaconda)。请参阅此处。请注意,多个BLAS库之间可能会发生冲突。只安装/使用一个BLAS库通常可以避免一些麻烦。或者,您可以尝试调整LD_LIBRARY_PATHLD_PRELOAD参数。 - Jérôme Richard
1
https://pypi.org/project/intel-numpy/ - user13963867
1个回答

4
你可以尝试使用英特尔Python。创建一个带有英特尔Python和所需包(如英特尔MKL、英特尔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/ 更好的方法是安装Intel基础工具包并获取变量源代码。 该工具包附带Intel mkl和intel python。 您只需要获取环境变量即可。
source <basekit-installation-directory>/setvars.sh

安装指南:https://software.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top.html

您还可以尝试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


非常感谢您的回复,但很遗憾目前还没有适用于Python 3.7.3的Intel-Numpy版本。否则的话,这确实会变得非常简单。 - SkyWalker
1
你可以创建环境 $ conda create -n idp python=3.7.3 -c intel,并安装 Intel NumPy。如果 3.7.9 版本也可以的话,���么安装 intelpython_full 会更好。 - Raeesa - Intel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接