我正在上ArchLinux
,我的Python版本是2.7.8
两者BLAS
并LAPACK
安装:
% pacman -Qs blas; pacman -Qs lapack
local/blas 3.5.0-1
Basic Linear Algebra Subprograms
local/lapack 3.5.0-1
Linear Algebra PACKage
Numpy已安装完毕,sudo pip2 install numpy
并确认同时看到了BLAS
和LAPACK
:
>>> numpy.show_config()
blas_info:
libraries = ['blas']
library_dirs = ['/usr/lib64']
language = f77
lapack_info:
libraries = ['lapack']
library_dirs = ['/usr/lib64']
language = f77
atlas_threads_info:
NOT AVAILABLE
blas_opt_info:
libraries = ['blas']
library_dirs = ['/usr/lib64']
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/lib64']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
openblas_lapack_info:
NOT AVAILABLE
atlas_info:
NOT AVAILABLE
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
atlas_blas_info:
NOT AVAILABLE
mkl_info:
NOT AVAILABLE
然而,np.dot
当我知道在一台类似的机器上,它的运行速度不到10秒时,我的运行速度测试已经超过了30秒。如何解决速度问题?在安装numpy和BLAS
and LAPACK
support时我错过了什么吗?
好了,这是整个故事。首先,初始设置很慢,因为它不是BLAS
一个快速实现的参考实现。从今天开始,我重复一遍,blas
ArchLinux Extra存储库中的软件包是参考实现。有关详细信息,请参见此处的Presentation
部分。
其次,有的优化版本BLAS
(实际上有很多:ATLAS,OpenBlas,Goto BLAS,MKL等)。它们安装起来非常棘手。我最终安装了OpenBlas,这是在ArchLinux上进行此操作的逐步概述:
openblas-lapack
软件包python2-numpy-openblas
从AUR安装软件包据我了解,它与普通python2-numpy
软件包的区别在于site.cfg
配置文件,该配置文件指示numpy
要搜索openblas
在步骤1中安装的库。这些动作为我解决了问题,现在速度要好得多-我在问题中提到的测试不到1秒。另外numpy显示它已经用openblas编译:
>>> np.show_config()
lapack_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/lib']
language = f77
blas_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/lib']
language = f77
openblas_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/lib']
language = f77
openblas_lapack_info:
libraries = ['openblas', 'openblas']
library_dirs = ['/usr/lib']
language = f77
blas_mkl_info:
NOT AVAILABLE
我认为,建立的过程openblas
为导向numpy
的python3
长相非常相似。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句