シングル・ダイナミック・ライブラリー (SDL) インターフェイスは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のインターフェイスとスレッドレイヤーを動的に選択します。
ランタイムにインターフェイス・レイヤーを設定するには、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_threading_layer 関数または MKL_THREADING_LAYER 環境変数を使用します。次の表には、使用可能なスレッドレイヤーと、各レイヤーに設定される値を示します。
スレッドレイヤー |
MKL_THREADING_LAYER の値 |
mkl_set_threading_layer のパラメーターの値 |
|---|---|---|
インテルのスレッド化 (デフォルト) |
INTEL |
MKL_THREADING_INTEL |
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のシーケンシャル・モード |
SEQUENTIAL |
MKL_THREADING_SEQUENTIAL |
インテル® TBB のスレッド化 |
TBB |
MKL_THREADING_TBB |
mkl_set_threading_layer 関数が呼び出されると、MKL_THREADING_LAYER 環境変数は無視されます。
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のエラー処理ルーチン xerbla または進行状況情報ルーチン mkl_progress は、独自関数に置き換えることができます。SDL を使用している場合、xerbla または mkl_progress を置き換えるには、それぞれ mkl_set_xerbla 関数と mkl_set_progress 関数を呼び出します。
SDL を使用している場合は、オブジェクト・ファイルを xerbla または mkl_progress の実装にリンクして置換を行うことはできません。