在许多网站上,他们谈论犰狳+其他东西。他们的意思是什么?
我以以下形式使用犰狳库
#include <armadillo>
在 Linux 环境下。
在这个网站
Armadillo+OpenBLAS
提到。他们的意思是什么?如何使用Armadillo+OpenBLAS
?
更新
现在是一年多之后。我只是添加这一点,它Armadillo
是对诸如BLAS
or之类的实现的包装OpenBLAS
。它不是矩阵运算实现。
犰狳可以自己做数学运算,也可以调用 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 否则会出现链接错误。
此外,您应该改用-lopenblas
密钥-lblas
。openblas
此外,您必须在包(之前下载并制作)中添加文件夹(包括、lib)的路径。根据我的经验,安装包的顺序和数量并不重要。我在没有重新安装的情况下尝试了不同版本的openblas
软件包armadillo
。
小心使用 OpenBLAS 版本,即您应该安装 0.2.14 版本。否则,如果您想使用多线程,您将遇到问题。
所以:
1 - 删除你已经安装的所有东西(犰狳或 openBLAS)。2 - 安装 openBLAS 版本 0.2.14 3 - 安装 Armadillo(如果您使用存储库,您可能无法访问最新版本)。4 - 享受它!