什么是犰狳+阿特拉斯,犰狳+ OpenBLAS,犰狳+ uBLAS,犰狳+ MKL?

时间:2015-04-07 00:57:26

标签: c++ armadillo intel-mkl ublas openblas

在许多网站上,他们谈论犰狳+别的东西。他们是什么意思?

我以

的形式使用Armadillo库
#include <armadillo>

在Linux环境中。

在本网站

http://nghiaho.com/?p=1726

提到了{p> Armadillo+OpenBLAS。他们的意思是什么?如何使用Armadillo+OpenBLAS


更新

现在已经一年多了。我只是添加了这一点,ArmadilloBLASOpenBLAS等实现的包装器。它不是矩阵运算实现。

4 个答案:

答案 0 :(得分:3)

不是将基于Armadillo的代码与BLAS链接,而是与OpenBLAS链接。这可以手动完成,或者Arm​​adillo安装程序可以确定OpenBLAS存在。有关详细信息,请参阅FAQ

基本上你需要首先安装OpenBLAS,然后安装Armadillo(不是从Linux存储库,而是downloaded版本)。

答案 1 :(得分:2)

犰狳可以做自己的数学计算,也可以打电话给第三方图书馆进行数学计算。 Atlas,BLAS,OpenBLAS,uBLAS,lapack,MKL就是这种第三方库的例子。如果犰狳做自己的数学运算,它将是单线程。这些第三方库中的一些可以执行多线程,例如OpenBLAS。一些库可以使用GPU,例如来自Nvidia的nvBLAS。请注意,nvBLAS只执行部分blas实现,你还需要另一个blas库来解决nvBLAS不能做的事情。

您可以通过编辑armadillo_bits / config.hpp或使用-D编译器选项来控制Armadillo,以根据您的需要设置相关的预编译器指令。

可能节省您时间的东西:链接犰狳和第三方库的顺序非常重要。 Armadillo打电话说lapack和lapack对blas的调用所以命令应该是:

-larmadillo -llapack -lblas否则你会有链接错误。

答案 2 :(得分:1)

小心OpenBLAS版本,即你应该安装0.2.14版本。 否则,如果要使用多线程,则会出现问题。

所以:

1 - 删除您已安装的所有内容(Armadillo或openBLAS)。 2 - 安装openBLAS ver 0.2.14 3 - 安装Armadillo(如果您使用存储库,则可能无法访问上一版本)。 4 - 享受吧!

答案 3 :(得分:0)

此外,您应该使用密钥-lopenblas代替-lblas。此外,您必须在openblas包中添加文件夹(include,lib)的路径(之前已下载并制作)。根据我的经验,安装包的顺序和数量无关紧要。我尝试了不同版本的openblas软件包,而没有重新安装armadillo