インテル® MKL 11.3 ユーザーズガイド

インターフェイスとスレッドレイヤーの動的選択

シングル・ダイナミック・ライブラリー (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 の独自の実装をリンクして置換することはできません。

関連情報