インテル® コンパイラーでは、ベクトル化はパックド SIMD 命令を生成してループをアンロールします。パックド命令は一度に複数のデータ要素で演算するため、ループをより効率良く実行できます。コンパイラーが適したループを自動で識別し、最適化するため、自動ベクトル化と呼ばれることもあります。
インテル® Advisor は、ベクトル化を支援し、ソースコードとともに最適化レポートメッセージを表示します。詳細は、https://software.intel.com/en-us/intel-advisor-xe (英語) を参照してください。
ベクトル化により呼び出されるライブラリー・ルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーにおいてより優れたパフォーマンスが得られる可能性があります。また、ベクトル化は、m や x などの特定のオプションによる影響を受けます。
インテル製マイクロプロセッサーおよび互換マイクロプロセッサーの両方で、ベクトル化はインテル® コンパイラーの最適化レベル O2 (デフォルト) 以上で有効になります。多くのループは自動でベクトル化されますが、自動でベクトル化されないループについては、簡単なコード変更でベクトル化できることがあります。このチュートリアルで行う作業は次のとおりです。
パフォーマンスのベースラインを確定する
ベクトル化レポートを生成する
データのアライメントによりパフォーマンスを向上する
プロシージャー間の最適化を使用してパフォーマンスを向上する
このチュートリアルには Linux* 版、macOS* 版、Windows* 版があります。