インテル® MKL 2017 デベロッパー・ガイド
シングル・ダイナミック・ライブラリー (SDL) インターフェイスは、インテル® MKL のインターフェイスとスレッドレイヤーを動的に選択します。
ランタイムにインターフェイス・レイヤーを設定するには、mkl_set_interface_layer 関数または MKL_INTERFACE_LAYER 環境変数を使用します。
利用可能なインターフェイス・レイヤーは、システムのアーキテクチャーに依存します。
インテル® 64 アーキテクチャー・ベースのシステムでは、LP64 および ILP64 インターフェイスを利用できます。以下の表は、各インターフェイス・レイヤーの設定に使用する値を示しています。
インターフェイス・レイヤー |
MKL_INTERFACE_LAYER の値 |
mkl_set_interface_layer のパラメーターの値 |
---|---|---|
インテルの LP64 (デフォルト) |
LP64 |
MKL_INTERFACE_LP64 |
インテルの ILP64 |
ILP64 |
MKL_INTERFACE_ILP64 |
mkl_set_interface_layer 関数が呼び出されると、環境変数 MKL_INTERFACE_LAYER は無視されます。
mkl_set_interface_layer 関数の詳細は、『インテル® MKL デベロッパー・リファレンス』を参照してください。
IA-32 アーキテクチャー・ベースのシステムでは、cdecl および stdcall インターフェイスを利用できます。これらのインターフェイスは異なる関数命名規則を使用しています。SDL は、関数名に従ってリンク時に cdecl または stdcall を選択します。
ランタイムにスレッドレイヤーを設定するには、mkl_set_threading_layer 関数または MKL_THREADING_LAYER 環境変数を使用します。以下の表は、利用可能なスレッドレイヤーと各レイヤーの設定に使用する値を示しています。
スレッドレイヤー |
MKL_THREADING_LAYER の値 |
mkl_set_threading_layer のパラメーターの値 |
---|---|---|
インテルのスレッドレイヤー (デフォルト) |
INTEL |
MKL_THREADING_INTEL |
インテル® MKL のシーケンシャル・モード |
SEQUENTIAL |
MKL_THREADING_SEQUENTIAL |
PGI* スレッドレイヤー† |
PGI |
MKL_THREADING_PGI |
インテル® TBB スレッドレイヤー |
TBB |
MKL_THREADING_TBB |
† インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー用の SDL ではサポートされていません。
mkl_set_threading_layer 関数が呼び出されると、環境変数 MKL_THREADING_LAYER は無視されます。
mkl_set_threading_layer 関数の詳細は、『インテル® MKL デベロッパー・リファレンス』を参照してください。
インテル® MKL のエラー制御ルーチン xerbla または進捗情報ルーチン mkl_progress を独自の関数に置換することができます。SDL を使用している場合、xerbla または mkl_progress を置換し、mkl_set_xerbla および mkl_set_progress 関数をそれぞれ呼び出します。詳細は、『インテル® MKL デベロッパー・リファレンス』を参照してください。
SDL を使用している場合、オブジェクト・ファイルと xerbla または mkl_progress の独自の実装をリンクして置換することはできません。