如何在Ubuntu中使用OpenBLAS代替Atlas numpy?

时间:2012-09-03 13:44:18

标签: python ubuntu numpy installation blas

我已经找到了一种使用OpenBLAS安装/编译Numpy的简单方法,但没有找到一个简单的答案。我所看到的所有文档都为我这样不习惯编译软件的人带来了太多的知识。 Ubuntu中有两个与OpenBLAS相关的包:libopenblas-baselibopenblas-dev。 一旦安装完毕,我该怎么做才能再次安装Numpy? 谢谢!

请注意,安装这些OpenBLAS软件包时,Numpy不再起作用:无法导入:ImportError:/usr/lib/liblapack.so.3gf:undefined symbol:ATL_chemv。 使用website instructions为Ubuntu安装Theano时会出现问题。

已经注意到here

3 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:10)

要添加到接受的答案(使用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 =>错误! (以下案例在这里。)
  6. 这是来自个人经历(具有完全相同的问题)并且意识到为什么没有提到这样的组合in this comparison blog

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

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

    更改Blas版本。

答案 2 :(得分:1)

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

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

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

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

这将首先构建并安装完整的编译器工具链(goolf:GCC + OpenBLAS + OpenMPI + LAPACK + FFTW),然后使用该工具链构建Python和numpy。而那一切都在你吃午饭的时候。 ; - )

免责声明:我是其中一位EasyBuild开发人员。