この手順では、パフォーマンス・スナップショット解析を再度実行して、ループ変換を有効にしたアプリケーションをプロファイルします。
ループ変換手法によって得られる改善を確認するには、パフォーマンス・スナップショット解析を再度実行します。
コンパイラーと IDE によっては、解析を構成するときに、前の手順で再コンパイル中に生成された別の実行可能ファイルを参照する場合があります。例えば、デフォルトでは、Visual Studio* は実行可能ファイルを ‘[matrix]\vc15\x64\Release’ に配置します。
サンプル・アプリケーションが終了すると、パフォーマンス・スナップショットの [サマリー] ウィンドウが開きます。
以下の主なメトリックを観察してください:
アプリケーションの経過時間が大幅に短縮されます。この改善は主に、プロセッサーが頻繁にキャッシュをミスして DRAM からデータを要求する、レイテンシーの面で非常にコストがかかるメモリーアクセスのボトルネックが解消された結果です。
ベクトル化メトリックは 0.0% であり、コードがベクトル化されていないことを示しています。そのため、パフォーマンス・スナップショットでは、HPC パフォーマンス特性解析が次のステップとしてハイライトされています。
この場合、インテル® oneAPI DPC++/C++ コンパイラーはバイナリーサイズ優先 (/O1) でコンパイルしたことでベクトル化を適用しないため、コードはベクトル化されていません。
Visual Studio* からコンパイラーによる自動ベクトル化を有効にするには、次の手順に従います。
matrix プロジェクトを右クリックし、[プロパティー] を選択します。
[C/C++] > [最適化] メニューで、最適化オプションを最大の最適化 (速度優先) (/O2) に設定します。
設定の変更を保存します。
アプリケーションをビルドします。
次のステップ: ベクトル化効率を解決します。