インテル® VTune™ プロファイラー・ユーザーガイド

ウィンドウ: サマリー - GPU 計算/メディア・ホットスポット

インテル® VTune™ プロファイラーによるパフォーマンス解析の開始点として [サマリー] ウィンドウを使用します。このウィンドウにアクセスするには、[結果] タブの [サマリー] サブタブをクリックします。

経過時間のメトリックを使用して、最適化前後の結果を比較するベースラインを求めます。マルチスレッド・アプリケーションでは、CPU 時間はすべてのアプリケーション・スレッドの CPU 時間の合計であるため、CPU 時間は経過時間とは異なります。

[サマリー] ウィンドウで、GPU 計算/メディア・ホットスポットを解析するには、次の手順を実行します。

  1. GPU の使用状況セクションを解析して GPU が適切に利用されていることを特定します。

  2. 計算集約型のアプリケーションでは、EU アレイストール/アイドルに注目して EU が待機する最も典型的な原因を調査します。

  3. FPU 集約型のアプリケーションでは、FPU 利用率に注目して 2 つの FPU を過度に使用するカーネルを特定します。

  4. メモリー依存のアプリケーションでは、メモリー情報に注目します。

[クリップボードへコピー] ボタンをクリックして、選択したサマリーセクションの内容をクリップボードへコピーできます。

GPU 使用

[サマリー] ウィンドウの [GPU 使用] メトリックには、少なくとも 1 つの DMA パケットが実行されたすべてのエンジンの最大 GPU 使用量が表示されます。デフォルトで、インテル® VTune™ プロファイラーは 80% 未満の GPU 使用量をパフォーマンスの問題として設定します。次の例では、アプリケーション経過時間の 14.5% のみが GPU エンジンで使用されています。

GPU 使用

GPU 解析に使用するターゲット・プラットフォームに応じて、[GPU 使用] には GPU エンジンによって使用された時間 (秒単位) が示されます。GPU エンジンは並列に動作することがあり、GPU エンジンが要した時間は必ずしもアプリケーションの経過時間と同じではありません。

GPU 時間データは経過時間メトリックに関連付けることができます。GPU 時間の横に表示されるパーセント値は、特定の GPU エンジンが実行された経過時間の割合を示します。GPU 時間が経過時間の大部分を占めている場合、アプリケーションが GPU 依存であることは明白です。

[サマリー] ビューには、ターゲット実行中の GPU エンジンごとの GPU ソフトウェア・キュー深度を予測するのに役立つ、[パケットキュー深度の分布図] が示されます。

パケットキュー深度の分布図

理想的な目標は、キューに均等な負荷がかかり、キューの深度がゼロになるまでの時間を最小にして、GPU エンジンを効率良く使用することです。

ターゲット実行中の DMA パケット実行の概要については、[パケット持続期間の分布図] を確認します。

パケット持続期間の分布図

ドロップダウン・メニューからパケットタイプを選択し、それらのパケットが GPU 上でどの程度効率良く実行されているか確認します。持続期間が短いパケットカウント値を大きくするのが最適です。

パケットキューと実行に関する詳しい情報を得るには、[プラットフォーム] タブに切り替えて、タイムライン上の GPU ソフトウェア・キューを解析します。

OpenCL* アプリケーションでは、パフォーマンスの問題がある OpenCL* カーネルを特定するのに役立つ [最もホットな GPU 計算タスク] セクションを調査します。

最もホットな GPU 計算タスク

パフォーマンス問題の詳細を示す計算タスクのフラグにカーソルを移動します。例えば、Intersect 計算タスクでは、GPU 時間の大部分がストールにあります。これは、頻繁にサンプラーやメモリーがアクセスされたことが原因であると考えられます。ホットな GPU 計算タスクをクリックして、[グラフィックス] ウィンドウを開きます。ウィンドウでは、利便性のためこの計算タスクが選択されています。

EU アレイストール/アイドル

計算集約型のワークロードをさらに詳しく解析するには、実行ユニットが待機する典型的な原因となる [EU アレイストール/アイドル] セクションを調査します。このセクションでは、GPU 計算/メディア・ホットスポットなど、インテル® HD グラフィックスやインテル® Iris® グラフィックスで収集されたハードウェア・イベントを解析します。

設定した事前定義イベントに応じて、インテル® VTune™ プロファイラーはストール/アイドル状態の実行ユニットのメトリックを解析します。デフォルトでは、GPU 計算/メディア・ホットスポット解析は、サンプラービジー、サンプラーがボトルネック、GPU L3 帯域幅などの一般的な GPU メモリーアクセスを追跡するメトリックを含む、[概要] で事前定義されているメトリックを収集します。これにより、[EU アレイストール/アイドル] セクションの [サンプラービジー] には、頻繁にサンプラーをアクセスする GPU 計算タスクのリストと、GPU L3 帯域幅に依存する最もホットな GPU 計算タスクが表示されます。

サンプラービジー

解析設定で [基本計算] を選択した場合、インテル® VTune™ プロファイラーは GPU 上の異なるデータタイプへのアクセスを特定するメトリックを解析し、占有率の低い GPU タスクの識別に役立つ [占有率] セクションを表示します。

低い占有率

占有率がアプリケーションの問題として報告された場合、タスクが大きすぎるか小さすぎて EU アレイがアイドルになることが考えられるため、計算タスクのサイズを変更することを検討してください。

[基本計算] 事前定義では、DRAM 帯域幅の解析も有効になります。GPU ワークロードが DRAM 帯域幅依存である場合、対応するメトリック値にフラグが示されます。実行中に DRAM 帯域幅を過度に使用する GPU 計算タスクをテーブルで調査します。

解析設定で、[完全な計算][複数実行を許可] が選択されている場合、インテル® VTune™ プロファイラーは、データ収集に [概要][基本計算] イベントグループの両方を使用し、同じビューに EU アレイストール/アイドルのすべての原因を表示します。

インテル® HD グラフィックスおよびインテル® Iris® グラフィックスのハードウェア・イベントを解析するには、GPU 解析用にシステムがセットアップされていることを確認してください。

FPU 利用率

アプリケーションの実行で、収集時間の 80% 以上が浮動小数点ユニット (FPU) の利用に費やされている場合、インテル® VTune™ プロファイラーはそのような値を問題として、FPU を過度に利用するカーネルのリストをハイライトします。

フラグが付けられたカーネルをクリックして、[グラフィックス] タブ > [タイムライン] ペインに切り替えて、解析実行中の FPU 使用を示す [GPU EU 命令] メトリックの分布を調べ、最も高いメトリック値の時間範囲を特定します。高い FPU 利用率の問題に対処するには、計算量を減らすことを検討してください。

メモリー情報

メモリー依存のアプリケーションでは、平均システム帯域幅の統計と、アプリケーションが各帯域幅をどのように使用しているかを示す帯域幅利用率分布図を含む [メモリー情報] セクションを調査します。

収集とプラットフォーム情報

GPU と CPU データを含むプラットフォーム情報を調査します。最後の 4 つの GPU 特性は、インテル® HD グラフィックスとインテル® Iris® グラフィック固有です。

関連情報
GPU OpenCL* アプリケーション解析
インテル® HD グラフィックスとインテル® Iris® グラフィックス上の GPU アプリケーション解析
GPU 計算/メディア・ホットスポット解析 (プレビュー)