インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、デフォルトで、使用しているインテル® プロセッサーでサポートされているコードパスを自動的に検証し、最適な命令セット・アーキテクチャー (ISA) をディスパッチします。MKL_ENABLE_INSTRUCTIONS 環境変数または mkl_enable_instructions サポート関数を利用して、選択した ISA 固有のコードパスにディスパッチすることができます。たとえば、インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) をベースにしたインテル® プロセッサーで、インテル® ストリーミング SIMD エクステンション 4.2 (インテル® SSE4.2) コードパスを実行できます。この機能は、インテル以外のプロセッサーでは利用できません。
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、ハードウェアで利用可能なアーキテクチャーよりも新しいアーキテクチャーをサポートする場合がありますが、その場合でも、ライブラリーは、デフォルトで新しい ISA に固有のコードパスを自動的にディスパッチすることはありません。まだリリースされていないインテル® プロセッサー向けの ISA を有効にする必要がある場合、またはシミュレーション環境で作業を行っている場合は、MKL_ENABLE_INSTRUCTIONS 環境変数または mkl_enable_instructions サポート関数を使用してください。
以下の表は、MKL_ENABLE_INSTRUCTIONS の値と、指定されたプロセッサーでサポートされる対応する ISA をリストしています。要求された ISA が特定のインテル® プロセッサーでサポートされていない場合、MKL_ENABLE_INSTRUCTIONS はデフォルトの ISA にディスパッチします。例えば、インテル® AVX2 ベースのプロセッサーでインテル® AVX-512 コードパスを実行するように要求した場合、oneMKL はインテル® AVX2 コードパスを実行します。表では、この ISA をサポートするプロセッサーで ISA がデフォルトでディスパッチされるかどうかも説明しています。
|
ISA |
デフォルトでディスパッチ |
---|---|---|
AVX512 |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) |
○ |
AVX512_E1 |
インテル® ディープ・ラーニング・ブースト (インテル® DL Boost) をサポートするインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) |
○ |
AVX512_E2 |
インテル® ディープ・ラーニング・ブースト (インテル® DL Boost)、EVEX エンコードされた AES、およびキャリーレス乗算クワッドワード命令をサポートするインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) |
○ |
AVX512_E3 |
インテル® ディープ・ラーニング・ブースト (インテル® DL Boost) と bfloat16 をサポートするインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) |
○ |
AVX512_E4 |
INT8、BF16、FP16 (制限付き) 命令をサポートするインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512)、および INT8 と BF16 をサポートするインテル® アドバンスト・マトリクス・エクステンション (インテル® AMX) |
○ |
AVX512_E5 |
INT8、BF16、FP16 (制限付き) 命令をサポートするインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512)、および INT8、BF16、FP16 をサポートするインテル® アドバンスト・マトリクス・エクステンション (インテル® AMX) | ○ |
AVX2 |
インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2) |
○ |
AVX2_E1 |
インテル® ディープ・ラーニング・ブースト (インテル® DL Boost) をサポートするインテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX-2) |
○ |
SSE4_2 |
インテル® ストリーミング SIMD エクステンション 4.2 (インテル® SSE4.2) |
○ |
引数値を含む mkl_enable_instructions 関数の詳細については、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』を参照してください。
以下に例を示します。
mkl_enable_instructions(MKL_ENABLE_AVX512_E4) 呼び出します
次の環境変数を設定します。
bash シェルの場合:
export MKL_ENABLE_INSTRUCTIONS=AVX512_E4
C シェル (csh または tcsh) の場合:
setenv MKL_ENABLE_INSTRUCTIONS AVX512_E4
次の呼び出しを行います。
mkl_enable_instructions(MKL_ENABLE_AVX2)
次の環境変数を設定します。
bash シェルの場合:
export MKL_ENABLE_INSTRUCTIONS=AVX2
C シェル (csh または tcsh) の場合:
setenv MKL_ENABLE_INSTRUCTIONS AVX2
mkl_enable_instructions 関数で指定された設定は、MKL_ENABLE_INSTRUCTIONS 環境変数で指定された設定よりも優先されます。
製品および性能に関する情報 |
---|
性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。 改訂 #20201201 |