15

我一直在寻找一种使用 OpenBLAS 安装/编译 Numpy 的简单方法,但没有找到简单的答案。对于像我这样不习惯编译软件的人来说,我所看到的所有文档都需要太多的知识。Ubuntu 中有两个与 OpenBLAS 相关的软件包:libopenblas-baselibopenblas-dev. 安装它们后,我应该怎么做才能再次使用它们安装 Numpy?谢谢!

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

这已经在这里注意到了。

4

3 回答 3

13

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

于 2012-09-03T16:12:00.517 回答
11

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

  1. 默认 Blas + 默认 Lapack => OK
  2. OpenBlas + 默认 Lapack => 好的
  3. Atlas-Blas + 默认 Lapack => OK
  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 版本。

于 2015-09-06T10:22:12.187 回答
1

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

它允许您(非常容易地)使用各种编译器构建和安装(科学)软件,并使用不同的 BLAS 库(ATLAS、OpenBLAS、ACML、Intel 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 开发人员之一。

于 2013-05-20T08:07:39.530 回答