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

ウィンドウ: プラットフォーム

このウィンドウにアクセスするには、結果タブの [プラットフォーム] サブタブをクリックします。

解析中に収集されたメトリックに応じて、[プラットフォーム] ウィンドウで以下を行います。

[プラットフォーム] ウィンドウは、時間経過におけるパフォーマンス・データの分布を示します。例えば、Linux* 上の [プラットフォーム] ウィンドウは次のデータを表示します。

[プラットフォーム] ウィンドウ

フレームレート。GPU および CPU フレームの上限を特定します (Windows* のみ)。

  • CPU フレーム X (現在) は、フレーム X-1 が表示のためキューに投入された時点から、フレーム X が表示のためキューに投入される時点までの時間範囲です。

  • GPU フレーム X (フリップ) は、フレーム X-1 がスクリーン上にレンダリングされた時点から、フレーム X がスクリーン上にレンダリングされる時点までの時間範囲です。

フレームの持続時間、フレームレートなどのデータを含むサマリーを表示するには、フレーム・オブジェクトにカーソルを移動します。

同じ ID の CPU と GPU フレームは同一色で表示されます。

GPU エンジン各時点の GPU エンジンごとの GPU 利用率の概要を調査します。デフォルトで、[プラットフォーム] ウィンドウには GPU 利用率と GPU エンジンごとのソフトウェア・キューが表示されます。GPU で実行されるオブジェクト (黄色) にカーソルを移動すると、GPU 利用率の簡単なサマリーが表示されます。GPU 利用率は、GPU エンジンがワークロードを実行していた時間です。グラフの GPU 利用率を調査して、GPU エンジンの利用率 (黄の領域と空白) とハードウェアに追加のワークを送信する可能性を推測できます。

GPU ソフトウェア・キューを表示して解析するには、キュー内のオブジェクト (パケット) を選択すると、インテル® VTune™ プロファイラーは対応するソフトウェア・キューをハイライト表示します。

ソフトウェア・キューが一杯になると、パケットの送信が抑制され、キューに空きができるまでユーザーモードのドライバーは CPU 側で待機します。このようなストールによってパフォーマンスが低下する可能性を確認するには、ハードウェアの負荷を減らして [グラフィックス] ウィンドウに切り替え、パケットを生成するスレッドの CPU 待機時間が少なくなっているか確認します。別の方法として、タスクによってキューに追加の負荷をかけ、キューの長さが増加するかを確認できます。

[プラットフォーム] ウィンドウのパケットは、ソフトウェア・キュー内のライフサイクルを追跡するのに役立つ個別の ID を持ちます。ID はレンダリングされたフレームには対応していません。ポップアップで示されるスレッド名 (スレッドの開始点があるモジュール名に対応) によって、パケットの送信元を特定できます。

収集の問題 (例えば、インテル® グラフィックス・ドライバーからのイベントの欠落など) が原因で正確性を欠くデータでは、水平の平行線が示されます。このタイプのデータは、凡例 (レジェンド) では再構成されたパケットとして識別されます。

Windows* のみ:

Windows* ターゲットの場合、凡例 (レジェンド) で [パケットタイプ] ドロップダウン・メニューを選択して、DMA パケットドメインごとの GPU 利用率とソフトウェア・キューを調査できます。

Windows* ターゲットでは、現在は赤い平行線で表示されます。

計算キュー。OpenCL* カーネル・サブミッションの詳細では、サブミッションと実行の順序に注目し、キューで費やされた時間を特定して、計算キューのデータにズームして解析します。インテル® VTune™ プロファイラーは、同じ名前とグローバル/ローカルサイズのカーネルを同色で表示します。Windows* 同期タスクは、縦縞 で表示されますデータ転送は、斜め格子 で表示されます。

カーネルタスクをクリックすると、上位レイヤーに表示された実行に対応するキュー全体がハイライトされます。カーネルの実行パラメーターを見るには、キューのオブジェクトにカーソルを移動します。

Windows* のみ:

Windows* では、OpenCL* デバイスキュー (オレンジ) の実行パス (青) と DMA パケット・ソフトウェア・キュー (黒) の関連性を調査できます。OpenCL* カーネルキューは、異なるタイプの DMA パケットが単一の DMA キューで多重化されるドライバーで処理されます。上記の例では、レンダーと GPGPU キューは、グラフィックス (GHAL3D) と計算 (OpenCL*) からの両方のパケットを処理します。

スレッド。スレッドの CPU 利用率を調査します。[プラットフォーム] ウィンドウには、スレッド関数が含まれるモジュール名がスレッド名として表示されます。例えば、myFoo 関数が MyMegaFoo 関数に属する場合、スレッド名は MyMegaFoo です。これは、タイムライン上に表示されるワークを生成するスレッドコードの場所を特定するのに役立ちます。

コードでタスク API を使用してタスク領域をマークするか、特定のイベントを監視するためシステムタスクを有効にした場合、タイムラインにはタスク・オブジェクトが表示されます。オブジェクトにカーソルを移動すると、オブジェクトの詳細が表示されます。

Windows* のみ:

コンテキスト・スイッチ領域にカーソルを移動すると、持続時間、理由、影響する CPU の詳細を見ることができます。濃い緑色で示されるコンテキスト・スイッチは、スレッドがワークロードでビジー状態の時間範囲を示し、薄い緑色のコンテキスト・スイッチは、スレッドが同期オブジェクトを待機している範囲を示します。灰色の範囲は、OS のタスク・スケジューラーが、優先順位の高い別のスレッドを実行するため、スレッドをプロセッサーから切り離すプリエンプションによって発生するインアクティブ範囲を示します。

CPU と GPU 利用率を関連付け、アプリケーションが CPU または GPU のどちらに依存しているか判断します。GPU エンジン利用率バーは、GPU タスクに起因する CPU スレッド上の DMA パケットを表示します。このバーは、GPU エンジンのタイプによって色分けされます (下記の例の黄色のバーはレンダーと GPGPU に対応します)。[プラットフォーム] ウィンドウの [GPU エンジン] 領域にシステム内のすべてのスレッドとプロセスの合計 GPU 利用率を表示する場合、スレッド領域の GPU エンジン使用バーには特定のスレッドによる GPU エンジン利用率が表示されます。

GPU メトリックGPU メトリックごとの GPU アクティビティーに関連するデータを GPU 利用率データと関連付けます。GPU 利用率バーは、使用されている GPU エンジンのタイプに応じて色分けされます。

スレッドごとの CPU と GPU 利用率を解析するには、[グラフィックス] ウィンドウに切り替えます。

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

コア周波数。実際の CPU 周波数と定格 CPU 周波数間の比率を調査します。値が 1.0 を超えると、CPU がインテル® ターボ・ブースト・モードで動作していることを示します。

このデータは、ハードウェア・イベントベース・サンプリング解析の結果でのみ利用できます。

 

DRAM 帯域幅。アンコアから DRAM 帯域幅メトリックごとのアプリケーション・パフォーマンスを時系列で調査します。

このデータは、ハードウェア・イベントベース・サンプリング解析の結果でのみ利用できます。

 

割り込み。システム割り込みが発生した間隔を特定します。ポップアップに詳細を表示するには、割り込みオブジェクトにカーソルを移動します。

解析タイプの設定で対応する Ftrace イベントの収集を有効にした場合、このタイプのデータはカスタムデータ収集結果に表示されます。

Windows* 上で一般的な GPU 利用率を監視するには、管理者としてインテル® VTune™ プロファイラーを実行します。

プラットフォーム・コンテキスト・サマリー

[プラットフォーム] ウィンドウの [タイムライン] ペインの右側に表示される [コンテキスト・サマリー] を調査します。タイムラインで選択したコンテキストのサマリー統計が表示されます。デフォルトでは、[コンテキスト・サマリー] には実行全体のデータが表示されます。解析を絞り込むには、タイムライン上の注目する領域を選択して右クリックし、[選択してフィルターイン] を選択します。

[EU ストール/アイドル] メトリックは、実行ユニットがストールまたはアイドル状態であった時間を示します。高い値はパフォーマンスの問題としてフラグが付けられ、計算集約型のアプリケーションに悪影響があることを示します。

関連情報