インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) では、MKL_VML_MODE 環境変数を使用して、ベクトル数学 (VM) グローバルモードのデフォルト設定をオーバーライドできます。
モードはいろいろな方法で設定または変更できるため、それらの優先順位によって実際に適用されるモードが決まります。VM モードを設定または変更する設定と関数呼び出しを、優先順位が低いものから高い順に示します:
詳細は、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』の「Vector Mathematical Functions」セクションおよび vmlSetMode 関数の説明を参照してください。
MKL_VML_MODE 環境変数を設定するには、次のコマンドを使用します。
set MKL_VML_MODE=<mode-string>
このコマンドで、<mode-string> はエラー制御の動作と計算精度を制御します。次の表にリストされている 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 環境変数を無視します。