< 目次

インテル® アーキテクチャーにおける命令セット固有のディスパッチ

インテル® 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 がデフォルトでディスパッチされるかどうかも説明しています。


MKL_ENABLE_INSTRUCTIONS の値

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_INSTRUCTIONS 環境変数で指定された設定よりも優先されます。

製品および性能に関する情報

性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。

改訂 #20201201