从源代码编译LAPACK相对于从Ubuntu安装预构建软件包有什么好处?


13

我知道ATLAS能够针对要编译的机器进行自我优化,因此从源代码进行编译可以最大程度地受益。从源代码编译LAPACK有什么好处?仅安装预构建的软件包会容易得多。


可能值得尝试使用这种技术来了解为什么要花费时间。我发现,如果我处理的不是很大的矩阵,则库例程会花费超过一半的时间来对其输入字符标记和其他输入分类进行分类,因此通过扩充库可能会大大提高速度以及一些精选的手工编码例程。
Mike Dunlavey 2013年

Answers:


9

OpenBlas相当快,因此您可以将其链接到LAPACK。您是否尝试过CPU供应商提供的LAPACK / BLAS的预编译版本?例如AMD ACML(免费)或Intel MKL(在Linux上免费用于非商业和非学术用途)?您只需要解压缩并运行安装文件即可。

在我看来,使用ATLAS的唯一优势是可以使用一些异常的CPU。否则,请使用CPU供应商的产品。此外,还有真正可用的nVIDIA CUDA和AMD OpenCL版本。

编辑:请记住,您始终可以从源代码构建Ubuntu DEB软件包,通常比从源代码编译软件要容易得多。


我想我会根据您的建议安装MKL。另外,感谢您提供有关构建DEB包的技巧,但我不知道这是可能的。
OSE 2013年

2
请记住,您需要配置ld(动态库链接器才能找到这些库)。该libmkl_rt.so文件中的英特尔BKL和LAPACK 通常使用以下方式链接:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
痛苦

2
应该指出的是,英特尔的非商业许可在每个版本中都受到越来越严格的限制,以至于他们现在非常明确地表示,一旦您获得任何研究经费,学术用途就不会被它所涵盖。
Christian Clason 2013年

是的,值得一提。但是,您可以免费测试它:]并且,如果证明有用,那么它并不是世界上最昂贵的东西。
2012年

7

由于编译方式的原因,该存储库软件包不能安全地与线程一起使用。我在Lapack论坛上报告了该错误,但是要变通解决方案或解决方案将花费很长时间才能进入存储库。如果您自己编译,请确保在gfortran中添加“ -frecursive”。


6

以我的经验,在最新版本的ubuntu上使用blas / lapack的最佳方法是使用打包的openblas。

对于它的价值,我主要通过python numpy / scipy使用blas / lapack,并且使用openblas可以将一些线性代数的速度提高200倍,而默认速度则更高。我曾经尝试过使用自定义ATLAS,但这是一个巨大的痛苦,与Openblas相比,它没有任何提速,但是我可能做错了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.