我已经找了一个简单的方法来安装/编译与OpenBLAS的Numpy,但没有find一个简单的答案。 我所看到的所有文档都需要太多的知识,而这些知识并不适用于像我这样不习惯编译软件的人。 Ubuntu中有两个与OpenBLAS相关的软件包: libopenblas-base
和libopenblas-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版本:
这是从个人的经验(具有完全相同的问题),并意识到为什么这种组合没有在这个比较博客中提到。
顺便说一下,你可以在/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中描述的引导程序),它归结为运行一个单一的命令,如:
eb numpy-1.6.2-goolf-1.4.10-Python-2.7.3.eb -ldr
这将首先建立和安装完整的编译器工具链(goolf:GCC + OpenBLAS + OpenMPI + LAPACK + FFTW),然后用该工具链构建Python和numpy。 所有这一切,当你正在吃午饭。 😉
免责声明:我是EasyBuild开发人员之一。