インテル® VTune™ プロファイラーによるパフォーマンス解析の開始点として [サマリー] ウィンドウを使用します。このウィンドウにアクセスするには、[CPU 利用率によるホットスポット] ビューポイントを選択して、結果タブで [サマリー] サブタブをクリックします。
解析タイプに応じて、[CPU 使用率によるホットスポット] ビューポイントで、[サマリー] ウィンドウは次のアプリケーション・レベルの統計を提供します。
[クリップボードへコピー] ボタンをクリックして、選択したサマリーセクションの内容をクリップボードへコピーできます。
[サマリー] ウィンドウは、アプリケーション実行の全体を調査するのに役立つ CPU メトリックの一覧を表示します。疑問符 アイコンにマウスを移動すると、メトリックを説明するポップアップ・ヘルプが表示されます。パフォーマンスの問題としてフラグが付けられているメトリックにカーソルを移動して、詳しい説明を表示します。
経過時間のメトリックを指標として、最適化前後の結果を比較するベースラインを求めます。マルチスレッド・アプリケーションでは、CPU 時間はすべてのアプリケーション・スレッドの CPU 時間の合計であるため、CPU 時間は経過時間とは異なります。
特定の解析タイプでは、有効な CPU 時間は CPU 利用率ごとに次のように分類されます。
利用率タイプ |
説明 |
---|---|
アイドル |
アイドル利用率。デフォルトでは、CPU 時間の消費が多くない場合 (1 CPU の 50% 未満)、CPU 利用率などはアイドルとして分類されます。 |
低い |
低い利用率。デフォルトでは、低い利用率は、同時に実行される CPU 数がターゲットの CPU 利用率の 50% 未満の状態です。 |
OK |
許容できる (OK) 利用率。デフォルトでは、OK 利用率は、同時に実行される CPU 数がターゲットの CPU 利用率の 51% ~ 85% の状態です。 |
理想的 |
理想的な利用率。デフォルトでは、理想的な利用率は、同時に実行される CPU 数がターゲットの CPU 利用率の 86% ~ 100% の状態です。 |
[オーバーヘッドとスピン時間] メトリックが示される場合 (解析による)、アプリケーションが使用する同期とスレッド化ライブラリーが CPU 時間にどのように影響しているか理解できます。これらのカテゴリーのメトリックを調査して、システム同期 API、インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB )、および OpenMP* などの同期やスレッド化ライブラリーの呼び出しで、アプリケーションが時間を費やしている場所を特定します。インテル® VTune™ プロファイラーでは、コードが CPU 時間を消費する次のような非効率性を確認できます。
インバランスまたはシリアルスピン時間 |
インバランスまたはシリアルスピン時間は、ワーキングスレッドが同期バリアでスピンして CPU リソースを消費している CPU 時間です。これは、ロード・インバランス、すべてのワーキングスレッド間の不十分な並行性、またはシリアル化された実行のバリアでの待機によって引き起こされる可能性があります。 |
ロック競合スピン時間 |
ロック競合時間は、ワーキングスレッドがロックでスピンして CPU リソースを消費している CPU 時間です。高いメトリック値は、過度に競合する同期オブジェクトと非効率な並列処理の可能性を示します。過度な同期を避けるには、可能であればリダクション、アトミック操作、またはスレッドローカル変数を使用することを検討してください。 |
その他のスピン時間 |
このメトリックは、スレッド・ランタイム・ライブラリー内の未分類のスピン時間を示します。 |
生成のオーバーヘッド時間 |
生成時間は、並列ワークを開始する際にランタイム・ライブラリーが費やす CPU 時間です。 |
スケジュールのオーバーヘッド時間 |
スケジュール時間は、ワークをスレッドに割り当てる際にランタイム・ライブラリーが費やす CPU 時間です。この時間が大きい場合、ワークを粗いチャンクにすることを検討してください。 |
リダクションのオーバーヘッド時間 |
リダクション時間は、ランタイム・ライブラリーがループまたは領域のリダクション操作に費やす CPU 時間です。 |
アトミックのオーバーヘッド時間 |
アトミック時間は、アトミック操作でランタイム・ライブラリーが費やす CPU 時間です。 |
その他のオーバーヘッド時間 |
このメトリックは、スレッド・ランタイム・ライブラリー内の未分類のオーバーヘッド時間を示します。 |
解析タイプに応じて、インテル® VTune™ プロファイラーはインテル® アーキテクチャーで定義されるしきい値と解析したメトリックを比較し、アプリケーション全体のパフォーマンスの問題としてメトリックをピンク色でハイライト表示することがあります。そのような値の問題に関する説明は、重要なメトリックの下に表示されます。または、ハイライト表示されたメトリックにカーソルを移動して表示することもできます。
リストの各メトリックはハイパーリンクとして表示されます。ハイパーリンクをクリックして [ボトムアップ] ウィンドウを開き、選択したメトリックでグリッドをソートするか、グリッドで選択したオブジェクトをハイライト表示します。
インテル® VTune™ プロファイラーは、最もパフォーマンス・クリティカルな関数と CPU 時間を [上位ホットスポット] に表示します。これらの関数を最適化することで、一般にアプリケーション全体のパフォーマンスが向上します。リストの関数をクリックすると、その関数の [ボトムアップ] ウィンドウが表示されます。
グレー表示された [その他] のモジュールがある場合、この表に含まれないアプリケーションのほかのすべての関数の合計値が示されます。
ビューポイント設定ファイルを介してこのリストのオブジェクト数と表示メトリックを制御できます。
ここでは、実行に最も時間を費やしたタスクのリストが示されます。対象となるタスクは、タスク API でマークされたコード領域、または Ftrace イベント、Atrace イベント、インテル® Media SDK プログラム、OpenCL* カーネルなどを監視するように設定されたシステムタスクです。
表のタスクタイプをクリックすると、[タスクタイプ] の粒度でグループ化されたグリッドビュー (ボトムアップやイベントカウント) が表示されます。詳細は、タスク解析を参照してください。
[効率良い CPU 利用率の分布図] を調査して、特定数の論理 CPU が同時に実行しているウォールクロック時間のパーセンテージを解析します。スピンとオーバーヘッド時間はアイドル CPU 利用率値に加算されます。
操作 | 説明 |
---|---|
垂直バー |
バーにカーソルを移動して、アプリケーションが論理 CPU コア数で費やした経過時間を特定できます。 |
ターゲットの利用率 |
ターゲットの CPU 利用率を特定します。この数は論理 CPU コア数と等価です。この数値を最適化の目標とします。 |
効率良い CPU 利用率 |
実行全体で並列に実行されている CPU の平均数を特定します。これは、CPU 時間/経過時間で計算できます。 どの時点の CPU 利用率も、使用可能な論理 CPU コア数を超えることはできません。システムがオーバーサブスクライブ状態で、CPU 数よりも多くのスレッドを実行している場合であっても、CPU 利用率は CPU 数と同じです。 この数値をパフォーマンス測定のベースラインとして使用します。この値を論理 CPU コア数に近づけると、CPU 時間がスピンする場合を除いて良好であると言えます。 |
利用率表示バー |
それぞれの利用率レベルが、同時に利用される論理 CPU コアにどのように割り当てられているか解析します。 |
フレーム API を使用して、グラフィックス・アプリケーションで繰り返し実行されるコード領域 (フレーム) の始まりと終わりをマークした場合、インテル® VTune™ プロファイラーはこのデータを解析して、低速に実行された領域を特定するのを支援します。[フレームレートの分布図] を調査して、低速あるいは高速なフレームドメインを特定します。
操作 |
説明 |
---|---|
[ドメイン] ドロップダウン・メニュー |
[フレームレートの分布図] で解析するフレームドメインを選択します。単一のドメインのみが利用できる場合、ドロップダウン・メニューは灰色で表示されます。次に、[フレームドメイン] でグループ化された [ボトムアップ] ウィンドウに切り替え、データを低速フレームでフィルター処理して、[関数] グループに切り替えて低速なフレームドメインの関数を特定します。コードを最適化して、フレームレートを一定に維持するようにします (例えば、1 秒あたり 30 から 60 フレーム)。 |
垂直バー |
バーにカーソルを移動すると、アプリケーションが特定のフレームレートで実行したフレームの合計数が示されます。低速フレームまたは高速フレームが多いと、パフォーマンスのボトルネックが発生します。 |
フレームレート・バー |
スライドバーを使用して、開いている結果とそれに関連するすべての結果のフレームレートのしきい値 (1 秒あたりのフレーム数) を調整します。 |
このセクションでは次のデータを提供します。
アプリケーションのコマンド行 |
ターゲット・アプリケーションへのパス。 |
オペレーティング・システム |
収集に使用されたオペレーティング・システム。 |
コンピューター名 |
収集に使用されたコンピューター名。 |
結果サイズ |
インテル® VTune™ プロファイラーで収集された結果のサイズ。 |
収集開始時間 |
外部収集の開始時間 (UTC 形式)。[タイムライン] ペインで、カスタムコレクターが提供するパフォーマンス統計を調査できます。 |
収集停止時間 |
外部収集の停止時間 (UTC 形式)。[タイムライン] ペインで、カスタムコレクターが提供するパフォーマンス統計を調査できます。 |
コレクタータイプ |
解析に使用されたデータコレクターのタイプ。次のタイプが利用できます。
|
CPU 情報 |
|
名前 |
収集に使用されたプロセッサー名。 |
周波数 |
収集に使用されたプロセッサーの周波数。 |
論理 CPU 数 |
収集に使用されたマシンの論理 CPU 数。 |
物理コア数 |
システム上の物理コア数。 |
ユーザー名 |
データ収集を開始したユーザー。このフィールドは、製品のインストール時にユーザーごとのイベントベース・サンプリング収集モードを有効にすると利用できます。 |
GPU 情報 |
|
名前 |
システムに搭載されているグラフィックス名。 |
ベンダー |
GPU ベンダー。 |
ドライバー |
システムにインストールされているグラフィックス・ドライバーのバージョン。 |
ステッピング |
マイクロプロセッサーのバージョン。 |
EU カウント |
レンダーと GPGPU エンジンの最大実行ユニット (EU) 数。このデータは、インテル® HD グラフィックスおよびインテル® Iris® グラフィックス (以降、「インテル® グラフィックス」) 固有です。 |
最大 EU スレッドカウント |
実行ユニットごとの最大スレッド数。このデータはインテル® グラフィックス固有です。 |
最大コア周波数 |
グラフィックス・プロセッサーの最大周波数。このデータはインテル® グラフィックス固有です。 |
グラフィックス・パフォーマンス解析 |
GPU メトリック収集は、ハードウェア・レベルで有効になります。このデータはインテル® グラフィックス固有です。 注一部のシステムでは、L3 ミス、メモリーアクセス、サンプラービジー、SLM アクセスなどの拡張メトリックの収集は BIOS で無効にされています。システムによっては、BIOS オプションを設定してこの収集を有効にできます。オプションの有無およびオプション名は BIOS ベンダーによって異なります。BIOS でインテル® グラフィックス・パフォーマンス・アナライザーのオプション (または等価なオプション) を有効に設定します。 |