ベクトル化とコードの調査パースペクティブを実行すると、アプリケーションのパフォーマンスを向上し、ベクトル化の問題を解決するコード固有の推奨事項を取得して、ソースコードとアセンブリー・コードを迅速に確認できます。
ベクトル化とコードの調査パースペクティブは、以下を特定するのに役立ちます。
- ベクトル化またはスレッドによる並列化が最も有効な場所を特定します
- ループのベクトル化による利点と、ベクトル化できない場合はその理由
- ベクトル化されないループとその理由
- メモリーの使用問題
- 一般的なパフォーマンスの調査と問題
どのように動作するか
ベクトル化とコードの調査パースペクティブには次の手順が含まれます。
- サーベイ解析を実行し、統合されたコンパイラー・レポートのデータとパフォーマンス・データを取得します。
- 特性解析を実行して、ループが呼び出され、実行される回数と、浮動小数点および整数操作の数を特定します。これは、アプリケーションの呼び出しカウント/ループカウントおよび、反復カウントメトリックを測定します。特定のループのベクトル化の方針を決定するために使用し、すでにベクトルされているループを最適化します。
- メモリー・アクセス・パターン (MAP) 解析を実行して、各種メモリーの問題を確認します。非連続なメモリーアクセス、ユニットストライドと非ストライドアクセス、またはそのほかの問題を警告します。ベクトルコードの実行速度を大幅に低下させる問題を特定したり、コンパイラーによる自動ベクトル化を妨げる問題を排除できるようにします。
- 依存関係解析を実行して、コンパイラーがベクトル化しなかったループのデータ依存関係を確認します。依存関係解析は、実際のデータ依存関係をチェックし、真の依存関係が検出された場合は、それらを解決する際に役立つ情報を提供します。ベクトル化の強制が安全ではない真のデータ依存関係を特定して、適切に分類できるようにします。
ベクトル化のサマリー
ベクトル化とコードの調査パースペクティブは、次のようなアプリケーションのパフォーマンスに関連するデータを収集します。
アプリケーション全体およびベクトル化されたループ/関数のベクトル化効率を含むパフォーマンス・メトリック
時間を要する上位 5 つのループをセルフ時間順にリストします
統合されたコンパイラーのレポートデータと、パフォーマンスの問題を解決するコード固有の推奨事項
![[Vectorization and Code Insights Summary (ベクトル化とコードの調査サマリー)] ペインの例](GUID-6AA850B3-E6EB-4906-AC03-570AEBCB892C-low.png)