インテル® マス・カーネル・ライブラリー 11.2 ユーザーズガイド
インテル® MKL は、インテル® MIC アーキテクチャー・ベースのコプロセッサー用にスタティック・ライブラリーとダイナミック・ライブラリーの両方を提供していますが、シングル・ダイナミック・ライブラリーはコプロセッサーでは利用できません。
単純なケースでリンク行にリストするライブラリーについては、「リンクするライブラリーの選択」を参照してください。
<mkl ディレクトリー>\lib\mic ディレクトリーに含まれるライブラリーの完全なリストは、「lib/mic ディレクトリーの詳細な構造」を参照してください。
ホスト側のスタティックまたはダイナミック・ライブラリーのいずれか、およびコプロセッサー側のスタティックまたはダイナミック・ライブラリーのいずれかを別々にリンクすることができます。
ホスト側のライブラリーおよびコプロセッサー側のライブラリーと動的にリンクされているアプリケーションを実行するには、環境変数の設定を実行します。次の環境変数も設定されます。
path に <親製品のディレクトリー>\redist\intel64\mkl を追加します。
インテル® MKL は、LP64 インターフェイスと ILP64 インターフェイスの両方を提供しているため、アプリケーションのコプロセッサー側の関数を呼び出す前に、ホスト側とコプロセッサー側の実行ファイルが同じインターフェイスを使用して、すべての 64 ビット整数から 32 ビット整数 (またはその逆) をキャストしていることを確認してください。
次の例は、コンパイラーによるオフロード支援をインテル® Xeon Phi™ コプロセッサーにリンクします。
例では、.c (C) ソースファイルとインテル® C++ コンパイラーを使用しています。 Fortran ユーザーは、ソースファイルを .f ファイルに、icl を ifort に変更してください。
コプロセッサーは Unix* オペレーティング・システムを実行します。
myprog.f、LP64 インターフェイスを使用するインテル® MKL の並列バージョン用のホスト側ライブラリーおよびコプロセッサー側ライブラリーのスタティック・リンク:
set lib=%MKLROOT%\lib\intel64;%lib%
set include=%MKLROOT%\include;%include%
icl /Qopenmp /MT /Qoffload-attribute-target=mic /Qoffload-option,mic,compiler,
" –I%MKLROOT%\include" /Qoffload-option,mic,link," -Wl,--start-group
%MKLROOT%\lib\mic\libmkl_intel_lp64.a %MKLROOT%\lib\mic\libmkl_core.a
%MKLROOT%\lib\mic\libmkl_intel_thread.a -Wl,--end-group"
myprog.c mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib
myprog.f、LP64 インターフェイスを使用するインテル® MKL の並列バージョン用のホスト側ライブラリーおよびコプロセッサー側ライブラリーのダイナミック・リンク:
set lib=%MKLROOT%\lib\intel64;%lib%
set include=%MKLROOT%\include;%include%
icl /Qopenmp /MT /Qoffload-attribute-target=mic /Qoffload-option,mic,compiler,
" -I%MKLROOT%\include" /Qoffload-option,mic,link,"-L%MKLROOT%\lib\mic
-lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread"
myprog.c mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib