在许多网站上,他们谈论犰狳+别的东西。他们是什么意思?
我以
的形式使用Armadillo库#include <armadillo>
在Linux环境中。
在本网站
提到了{p>Armadillo+OpenBLAS
。他们的意思是什么?如何使用Armadillo+OpenBLAS
?
更新
现在已经一年多了。我只是添加了这一点,Armadillo
是BLAS
或OpenBLAS
等实现的包装器。它不是矩阵运算实现。
答案 0 :(得分:3)
不是将基于Armadillo的代码与BLAS链接,而是与OpenBLAS链接。这可以手动完成,或者Armadillo安装程序可以确定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
。