TL;DR: 如何将ATLAS/MKL链接到现有的Numpy而无需重新构建。
我使用Numpy进行大矩阵计算时发现速度非常慢,因为Numpy只使用1个核心进行计算。经过许多搜索后,我发现我的Numpy没有链接到一些优化库,例如ATLAS/MKL。这是我的Numpy配置:
>>>import numpy as np
>>>np.__config__.show()
blas_info:
libraries = ['blas']
library_dirs = ['/usr/lib']
language = f77
lapack_info:
libraries = ['lapack']
library_dirs = ['/usr/lib']
language = f77
atlas_threads_info:
NOT AVAILABLE
blas_opt_info:
libraries = ['blas']
library_dirs = ['/usr/lib']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_blas_threads_info:
NOT AVAILABLE
openblas_info:
NOT AVAILABLE
lapack_opt_info:
libraries = ['lapack', 'blas']
library_dirs = ['/usr/lib']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_info:
NOT AVAILABLE
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
atlas_blas_info:
NOT AVAILABLE
mkl_info:
NOT AVAILABLE
因此,我想将ATLAS/MKL链接到Numpy。但是,我的Numpy是从PIP安装的,所以我不想手动安装,因为我想使用最新版本。我搜索过一些内容,但它们只适用于从头构建。因此,我的问题是:
- 是否有任何方法可以在不重新构建的情况下将ATLAS/MKL链接到Numpy?
- 我发现配置信息保存在已安装的Numpy文件夹中的_config_.py中。那么修改它能解决我的问题吗?如果可以,请告诉我如何操作。
pip
的人,这里是他们的解决方案。@ali_m:您能否编辑您的帖子并将此链接放入您的答案中。谢谢。 - tndoanmultiprocessing
的代码中使用它们,没有出现任何问题。不幸的是,numpy文档的这部分内容已经很长时间没有更新了。 - ali_mapt-get
安装要好,但在我的经验中,ATLAS更难编译,速度比OpenBLAS慢得多。 - ali_m