如何在Ubuntu中使用OpenBLAS而不是Atlas的numpy?

我已经找了一个简单的方法来安装/编译与OpenBLAS的Numpy,但没有find一个简单的答案。 我所看到的所有文档都需要太多的知识,而这些知识并不适用于像我这样不习惯编译软件的人。 Ubuntu中有两个与OpenBLAS相关的软件包: libopenblas-baselibopenblas-dev 。 一旦安装完成后,我应该怎么做再次安装Numpy呢? 谢谢!

请注意,安装这些OpenBLAS软件包后,Numpy不再工作:无法导入:ImportError:/usr/lib/liblapack.so.3gf:undefined symbol:ATL_chemv。 在安装Theano时,他们的网站上的Ubuntu 说明也会出现问题。

这已经被注意到了。

运行sudo update-alternatives --all并将liblapack.so.3gf设置为/usr/lib/lapack/liblapack.so.3gf

为了增加接受的答案(使用update-alternatives ),原因是因为OpenBlas与Lapack的Atlas版本不兼容。 对于每个Blas和Lapack版本:

  1. 默认Blas +默认Lapack =>确定
  2. OpenBlas + Default Lapack =>确定
  3. Atlas-Blas + Default Lapack =>确定
  4. Atlas-Blas + Atlas-Lapack =>确定
  5. OpenBlas + Atlas-Lapack =>错误! (下面这个例子)

这是从个人的经验(具有完全相同的问题),并意识到为什么这种组合没有在这个比较博客中提到。

顺便说一下,你可以在/etc/alternatives/找到必要的文件,通常是以lib*开头的文件名。 对于每一个做sudo update-alternatives --config <filename> 。 例如,请执行以下操作:

  • sudo update-alternatives --config libblas.so
  • sudo update-alternatives --config libblas.so.3

改变Blas版本。

考虑使用EasyBuild( http://hpcugent.github.io/easybuild/ ),一个用于构建和安装软件的开源框架。

它允许您(非常容易地)使用各种编译器构建和安装(科学)软件,并使用不同的BLAS库(ATLAS,OpenBLAS,ACML,Intel MKL等)。

一旦你安装EasyBuild(专业提示:使用https://github.com/hpcugent/easybuild/wiki/Bootstrapping-EasyBuild中描述的引导程序),它归结为运行一个单一的命令,如&#xFF1A;

eb numpy-1.6.2-goolf-1.4.10-Python-2.7.3.eb -ldr

这将首先建立和安装完整的编译器工具链(goolf:GCC + OpenBLAS + OpenMPI + LAPACK + FFTW),然后用该工具链构建Python和numpy。 所有这一切,当你正在吃午饭。 😉

免责声明:我是EasyBuild开发人员之一。