環境変数でベクトル演算のデフォルトモードを設定

インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) では、MKL_VML_MODE 環境変数を使用して、ベクトル数学 (VM) グローバルモードのデフォルト設定をオーバーライドできます。

モードはいろいろな方法で設定または変更できるため、それらの優先順位によって実際に適用されるモードが決まります。VM モードを設定または変更する設定と関数呼び出しを、優先順位が低いものから高い順に示します:

  1. デフォルト設定
  2. MKL_VML_MODE 環境変数
  3. vmlSetMode 関数呼び出し
  4. サービス関数以外の VM 関数の呼び出し

詳細は、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』の「Vector Mathematical Functions」セクションおよび vmlSetMode 関数の説明を参照してください。

MKL_VML_MODE 環境変数を設定するには、次のコマンドを使用します。

set MKL_VML_MODE=<mode-string>

このコマンドで、<mode-string> はエラー制御の動作と計算精度を制御します。次の表にリストされている mode パラメーターの値をカンマ区切りで指定します:

mode パラメーターの値
mode の値 説明
精度制御
VML_HA VM 関数の高精度バージョン
VML_LA VM 関数の低精度バージョン
VML_EP VM 関数のパフォーマンス強化精度バージョン
非正規化数の処理制御
VML_FTZDAZ_ON 非正規化入力の高速処理を有効にします。
VML_FTZDAZ_OFF 非正規化入力の高速処理を無効にします。
VML_FTZDAZ_CURRENT デノーマル入力の CPU 設定を保持します。
エラーモード制御
VML_ERRMODE_IGNORE 計算エラーが発生すると、VM エラーのステータスが更新されますが、それ以外の場合のアクションは設定されません。ほかの VML_ERRMODE 設定と一緒に使用することはできません。
VML_ERRMODE_NOERR 計算エラーが発生した場合、VM エラーのステータスは更新されず、アクションも設定されません。ほかの VML_ERRMODE 設定と一緒に使用することはできません。
VML_ERRMODE_STDERR エラー時にエラーテキスト情報を stderr に出力します。
VML_ERRMODE_EXCEPT エラーが発生すると例外が発生します。
VML_ERRMODE_CALLBACK エラーが発生すると、設定されたエラーハンドラー関数が呼び出されます。
VML_ERRMODE_DEFAULT エラーが発生すると例外が発生し、設定されたエラーハンドラー関数が呼び出されます。

次のコマンドは、MKL_VML_MODE 環境変を設定する例を示しています。

set MKL_VML_MODE=VML_LA,VML_ERRMODE_ERRNO,VML_ERRMODE_STDERR

mode の設定が正しくないと、VM は MKL_VML_MODE 環境変数を無視します。