科学計算を高速化するために、Ubuntu リポジトリの Intel MKL と GNU Octave を使用するにはどうすればよいでしょうか?

科学計算を高速化するために、Ubuntu リポジトリの Intel MKL と GNU Octave を使用するにはどうすればよいでしょうか?

インテル マス カーネル ライブラリはBLASライブラリであり、Ubuntu リポジトリUbuntu 19.10 以降では、はるかに高速な結果が得られると報告されています。

GNU Octave でリポジトリからインストールされた Intel MKL を使用するにはどうすればよいでしょうか?

答え1

Octaveをインストールするには

sudo apt-get install octave

そして、Intel MKL開発パッケージの完全版をインストールします。

sudo apt-get install libmkl-full-dev

インストール中に、デフォルトの数学ライブラリ プロバイダーとして Intel MKL を選択する必要があります。

重要:
避けるためにOctave と MKL 間のバグ~/.bashrcまたはに次の変数宣言を追加する必要があります~/.profile

export MKL_THREADING_LAYER=gnu

そしてOctaveを起動します。

バグに関する最近のコメントで指摘されているように、__run_test_suite__この回避策を適用した後でも、Octaveは実行時にセグメンテーション違反で終了します。現時点では推奨されませんMKL と並行して、Ubuntu リポジトリの Octave のバージョンを使用します。


htopMKLが使用されていることを確認するには、以下のライブラリリストを参照してください( F4octave、 選択するoctave-gui、、、LF4mkl):

mklライブラリがリストされている


以下のコードを使用してベンチマークする

c = sin((1:500)' + (1:500).^2);

tic;
g = eig(c);
toc
m = max(real(g))
assert (m, 16.914886, 1e-6)

Intel i7-3537U を使用:

  • デフォルト - 0.46 秒
  • MKL - 0.14秒。

関連情報