インテル® 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* では、DMA パケット・ソフトウェア・キュー (黒) に関連する OpenCL* デバイスキュー (オレンジ) の実行パスを調査できます。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 使用を解析するには、[グラフィックス] ウィンドウに切り替えます。

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

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

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

 

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

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

 

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

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

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

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

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

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

関連情報