MKLはIntelによって無料で提供されている数値計算ライブラリで、公式ページからインストーラを入手することでインストール出来る。
CUIの対話的なインストーラー・GUIインストーラー以外にも、APTによってインストールする方法が公開されている。Intelの解説ページがHTMLのソースコードが丸見えになっていて(私だけ?)コピペでサクッと実行できないのでメモついでにまとめる。
ついでに毎度行う環境変数の設定、コンパイル時の環境ごとのリンクラインの確認方法などもメモしておく。
APTリポジトリの設定
リポジトリのGPG-keyを設定する。
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
リポジトリを追加する
Intelの解説ページではライブラリごとに個別にリポジトリを登録する方法も記載されているが、ここでは全部のリポジトリをまとめて追加してしまう。
リポジトリのリストを取得して更新
sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list
sudo apt-get update
インストール・アンインストール
次の変数をインストール対象の指定に用いる。利用可能なリスト一覧は下表や公式を参照
<COMPONENT>: インストールするライブラリ名
<VERSION>: 2017, ...
<UPDATE>: 0, 1, 2, ...
<BUILD_NUMBER>: ビルド番号
インストール方法
インストール時のコンポーネント指定:
sudo apt-get install <COMPONENT>-<VERSION>.<UPDATE>-<BUILD_NUMBER>
Example:
sudo apt-get install intel-mkl-2018.3-051
アンインストール方法
アンインストール時のコンポーネント指定:
sudo apt-get autoremove <COMPONENT>-<VERSION>.<UPDATE>-<BUILD_NUMBER>
Example:
sudo apt-get autoremove intel-mkl-2018.2-046
環境変数等の設定
基本的には手動でインストールした時のデフォルト設定と同様に/opt/intel/mklにライブラリが入るので、/opt/intel/mklに含まれるmklvars.shを.bashrcに登録しておく。
Examples:
source /opt/intel/mkl/bin/mklvars.sh intel64 lp64
コンパイル時のリンク設定の調べ方
Intel® Math Kernel Library Link Line Advisor:各コンパイラや環境に応じたコンパイラに与える設定を教えてくれる。上で設定した環境変数を利用しているので先に設定しておく。
NumpyのMKLなどと自分で入れたMKLが干渉する場合の設定
「intelMKLを用いたライブラリとNumpyを併用した際に生じるエラーの解消」これによって副作用が生じないかどうかはわからない。
参考資料
上記リポジトリ追加により利用可能なライブラリごとのバージョン情報一覧。最新情報は公式を確認。
ライブラリとアーキテクチャに対応するコンポーネント
COMPONENT | VERSION | UPDATE | BUILD_NUM |
---|---|---|---|
Intel® MKL | 2017 | 2 | 50 |
2017 | 3 | 56 | |
2017 | 4 | 61 | |
2018 | 0 | 33 | |
2018 | 1 | 38 | |
2018 | 2 | 46 | |
2018 | 3 | 51 | |
Intel® IPP | 2017 | 2 | 50 |
2017 | 3 | 56 | |
2018 | 0 | 33 | |
2018 | 1 | 38 | |
2018 | 2 | 46 | |
2018 | 3 | 51 | |
Intel® TBB | 2017 | 6 | 56 |
2017 | 8 | 61 | |
2018 | 0 | 33 | |
2018 | 2 | 46 | |
2018 | 4 | 51 | |
Intel® DAAL | 2017 | 3 | 56 |
2017 | 4 | 61 | |
2018 | 0 | 33 | |
2018 | 1 | 38 | |
2018 | 2 | 46 | |
2018 | 3 | 51 | |
Intel® MPI Library | 2018 | 2 | 46 |
2018 | 3 | 51 |
ライブラリとアーキテクチャに対応するコンポーネント
Component | COMPONENT | Target Architecture |
---|---|---|
Intel® Math Kernel Library | intel-mkl | 32bit & 64bit |
intel-mkl-32bit | 32bit | |
intel-mkl-64bit | 64bit | |
Intel® Integrated Performance Primitives | intel-ipp | 32bit & 64bit |
intel-ipp-32bit | 32bit | |
intel-ipp-64bit | 64bit | |
Intel® Threading Building Blocks | intel-tbb | 32bit & 64bit |
Intel® Data Analytics Acceleration Library | intel-daal | 32bit & 64bit |
intel-daal-32bit | 32bit | |
intel-daal-64bit | 64bit | |
Intel® MPI Library | intel-mpi | 64bit |