2

多くのウェブサイトで、彼らは Armadillo+何かについて話しています。彼らはどういう意味ですか?

私はArmadilloライブラリを次の形で使用しています

#include <armadillo>

Linux 環境で。

このウェブサイトでは

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

Armadillo+OpenBLASが挙げられています。彼らはどういう意味ですか?使い方はArmadillo+OpenBLAS


アップデート

1年以上経った今。orArmadilloなどの実装のラッパーであるこのポイントを追加するだけです。行列演算の実装ではありません。BLASOpenBLAS

4

4 に答える 4

3

Armadillo ベースのコードを BLAS とリンクする代わりに、OpenBLAS とリンクします。これは手動で行うことも、Armadillo インストーラーが OpenBLAS の存在を認識することもできます。詳しくはFAQをご覧ください。

基本的に、最初に OpenBLAS をインストールしてから、Armadillo をインストールする必要があります (Linux リポジトリからではなく、ダウンロードしたバージョンから)。

于 2015-04-07T04:34:17.947 に答える
2

Armadillo は、独自の計算を行うことも、サード パーティのライブラリを呼び出して計算を行うこともできます。Atlas、BLAS、OpenBLAS、uBLAS、lapack、MKL は、このようなサードパーティ ライブラリの例です。Armadillo が独自の計算を行う場合、シングル スレッドになります。これらのサードパーティ ライブラリの一部は、OpenBLAS などのマルチスレッドを実行できます。一部のライブラリは、Nvidia の nvBLAS などの GPU を使用できます。nvBLAS は部分的な blas 実装のみを行い、nvBLAS が行わないことのために別の blas ライブラリが必要であることに注意してください。

armadillo_bits/config.hpp を編集するか、-D コンパイラ オプションを使用して必要に応じて関連するプリコンパイラ ディレクティブを設定することで、Armadillo を制御できます。

時間を節約できるかもしれません: armadillo とサードパーティのライブラリをリンクする順序は重要です。アルマジロは lapack を呼び出し、lapack は blas を呼び出すため、順序は次のようになります。

-larmadillo -llapack -lblas そうしないと、リンク エラーが発生します。

于 2015-10-14T15:02:27.213 に答える
1

OpenBLAS のバージョンに注意してください。つまり、バージョン 0.2.14 をインストールする必要があります。そうしないと、マルチスレッドを使用する場合に問題が発生します。

そう:

1 - インストール済みのもの (Armadillo または openBLAS) をすべて削除します。2 - openBLAS バージョン 0.2.14 をインストールします。 3 - Armadillo をインストールします (リポジトリを使用する場合、おそらく最新バージョンにはアクセスできません)。4 - 楽しんでください!

于 2015-08-28T09:52:53.513 に答える