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

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

関連情報