python的mkl库_[转]Numpy使用MKL库提升计算性能

from:http://unifius.wordpress.com.cn/archives/5

系统:Gentoo Linux (64bit, Kernel 3.7.1)

配置:Intel(R) Core(TM) i7-2670QM

在Gentoo中安装Numpy/Scipy非常简单,直接emerge就可以解决。但是默认链接的blas/lapack库性能非常差,在矩阵计算方面比MATLAB慢了不少。原因在于MATLAB使用的是高度优化的数值计算库Intel math kernel library (MKL)。最新的MKL库在science overlay中有,安装后通过eselect blas/lapack set可以将系统默认链接的库设定为MKL(如mkl64-int64-dynamic-openmp)。设定之后再emerge numpy就可使用链接MKL库的numpy,而且可以发现svd等常用矩阵计算函数的速度大大提升。可问题是scipy无法emerge通过,查看log发现scipy无法检测到-lblas,即它根本没有识别系统默认链接库的设置。science overlay中blas/lapack库及其相关包的安装向来十分纠结,因为这里面似乎还没有完善的链接管理。这些问题持续了至少一年,近来才发现(部分)解决途径。

我们改换策略,手工安装numpy。首先获取最新的numpy包:

git clone git://github.com/numpy/numpy.git numpy

然后进入到根目录。我们需要进行一些配置才能使numpy用上安装好的MKL库。这部分可以参考Intel官网的一个教程:

http://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl

首先在根目录中加入site.cfg文件

你可能感兴趣的:(python的mkl库)