概要
-
Intel Math Kernel Library (Intel MKL) は、工学、科学、金融系アプリケーション向けに高度に最適化され、広範囲にスレッド化された数学関数を含むライブラリーです。Fortran および C プログラミング言語インターフェイスを提供します。Intelコンパイラだけでなく、GNUコンパイラ、PGIコンパイラでも使用可能です。
- BLAS (レベル 1、2、3) および LAPACK 線形代数ルーチン。ベクトル演算、ベクトル-行列演算、行列-行列演算を提供します。
- ScaLAPACK 分散処理線形代数ルーチン、BLACS (Basic Linear Algebra Communications Subprograms) および PBLAS (Parallel Basic Linear Algebra Subprograms)。
- Intel MKL PARDISO (並列直接法スパースソルバー PARDISO に基づく直接法スパースソルバー)、反復法スパースソルバー、スパース BLAS (レベル 1、2、3) ルーチン、クラスター上で利用可能なIntel MKL PARDISO ソルバーの分散型バージョン。
- 混合基数に対応する (変換の長さが 2 の累乗に限定されない) 1 次元、2 次元、3 次元の高速フーリエ変換 (FFT) 関数と、クラスター上で利用可能なこれらの関数の分散型バージョン。
- ベクトルマス (VM) ルーチン。ベクトルの数学演算用に最適化されています。
- ベクトル統計 (VS) ルーチン。さまざまな確率分布、畳み込み/相関ルーチン、統計関数用の高性能かつベクトル化された乱数ジェネレーター (RNG) を提供します。
- データ・フィッティング・ライブラリー。関数のスプラインベースの近似、関数の微分と積分、検索機能を提供します。
- 拡張固有値ソルバー。Feast Eigenvalue Solver をベースにした固有値ソルバーの共有メモリー (SMP) バージョンです。
- C 言語インターフェイスのディープ・ニューラル・ネットワーク (DNN) プリミティブ関数。
Intel MKLの主な機能は以下のとおりです。
インストールディレクトリ
-
インストールディレクトリは、環境変数MKLROOTに設定しております。Intelコンパイラのバージョンアップデートに合わせてアップデートしますので、ご注意ください。
echo $MKLROOT
/octfs/apl/Intel/psxece2018u3/compilers_and_libraries_2018.3.222/linux/mkl
旧バージョン(15.0.1、17.0.5など)も使用可能です。17.0.5を利用する場合のコマンド例は以下のとおりです。
利用するバージョンに合わせ、太字の部分を変更してください。
source /octfs/apl/Intel/psxece2017u5/mkl/bin/mklvars.sh intel64
echo $MKLROOT
/octfs/apl/intel/compilers_and_libraries_2017.5.239/linux/mkl
使い方
-
リンクの指定方法については、使用するコンパイラや用途によって異なりますので、Intelの提供するLink Line Advisorを使って、確認することをお勧めします。
Intel MKL Link Line Advisor
以下は、Intel MKLのバージョンが2018、Intelコンパイラを使用、汎用CPUノード群で単一コア実行をする場合の選択例です。
Select Intel product | Intel Parallel Studio XE 2018 |
---|---|
Select OS | Linux |
Select usage model of IntelR Xeon Phi Coprocessor | None |
Select compiler | intel FORTRAN |
Select architecture | Intel(R) 64 |
Select dynamic or static linking | Static |
Select interface layer | 32-bit integer |
Select threading layer | Sequential |
Select OpenMP library | 選択なし |
Select cluster library | 選択なし |
Select MPI library | 選択なし |
Select the Fortran 95 interfaces | 選択なし |
Link with IntelR MKL libraries explicitly | 選択なし |
必要な項目が揃うと、「Use this link line」および「Compiler options」にリンク指定が表示されますので、コンパイル時に指定してください。上記の選択例の場合は、次のようなコンパイルオプション/リンクとなります。
ifort test.f90 -I${MKLROOT}/include -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl
参考資料
-
より詳細な利用方法についてはIntelの公式ドキュメントを参照して下さい。以下よりリンクしております。
Intel MKL ドキュメント