2

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

我以以下形式使用犰狳库

#include <armadillo>

在 Linux 环境下。

在这个网站

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

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


更新

现在是一年多之后。我只是添加这一点,它Armadillo是对诸如BLASor之类的实现的包装OpenBLAS。它不是矩阵运算实现。

4

4 回答 4

3

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

基本上你需要先安装 OpenBLAS,然后安装 Armadillo(不是来自 Linux 存储库,而是下载的版本)。

于 2015-04-07T04:34:17.947 回答
2

犰狳可以自己做数学运算,也可以调用 3rd 方库来做数学运算。Atlas、BLAS、OpenBLAS、uBLAS、lapack、MKL 是此类第 3 方库的示例。如果犰狳做自己的数学,它将是单线程的。其中一些第三方库可以执行多线程,例如 OpenBLAS。一些库可以使用 GPU,例如来自 Nvidia 的 nvBLAS。请注意,nvBLAS 仅执行部分 blas 实现,您仍然需要另一个 blas 库来完成 nvBLAS 不执行的操作。

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

可以节省您时间的东西:链接犰狳和第 3 方库的顺序很重要。犰狳打电话说 lapack 和 lapack 打电话给 blas 所以顺序应该是:

-larmadillo -llapack -lblas 否则会出现链接错误。

于 2015-10-14T15:02:27.213 回答
1

此外,您应该改用-lopenblas密钥-lblasopenblas此外,您必须在包(之前下载并制作)中添加文件夹(包括、lib)的路径。根据我的经验,安装包的顺序和数量并不重要。我在没有重新安装的情况下尝试了不同版本的openblas软件包armadillo

于 2016-08-18T09:27:13.547 回答
1

小心使用 OpenBLAS 版本,即您应该安装 0.2.14 版本。否则,如果您想使用多线程,您将遇到问题。

所以:

1 - 删除你已经安装的所有东西(犰狳或 openBLAS)。2 - 安装 openBLAS 版本 0.2.14 3 - 安装 Armadillo(如果您使用存储库,您可能无法访问最新版本)。4 - 享受它!

于 2015-08-28T09:52:53.513 回答