インテル® VTune™ Amplifier 2018 ヘルプ
基本ホットスポット解析を使用してアプリケーションの処理フローを理解し、多くの実行時間 (ホットスポット) を費やすコード領域を特定します。ここがアルゴリズム解析の出発点となります。
特定のプロセス、スレッド、モジュールで大量のサンプルが収集された場合は、CPU 使用率が高いか、または潜在的なパフォーマンス・ボトルネックがあることを意味します。ホットスポットには排除できるものもあれば、アプリケーションの機能性に不可欠で排除できないものもあります。
インテル® VTune™ Amplifier は、関数で費やされた時間順にアプリケーションの関数のリストを作成します。各関数のコールスタックも表示されるので、ホットな関数がどのように呼び出されているか確認できます。
インテル® VTune™ Amplifier は、オーバーヘッドの低い (約 5%) ユーザーモード・サンプリング/トレース収集を行うため、アプリケーションの実行速度を大幅に低下させることなく、必要な情報を取得できます。データコレクターは、OS タイマーやプロセスへの割り込みにより、すべてのアクティブな命令アドレスのサンプルを収集し、各サンプルで呼び出しシーケンス (スタック) を再現します。インテル® VTune™ Amplifier は、サンプリング結果の命令ポインター (IP) と呼び出しシーケンス をデータ収集ファイルに保存して、結果タブで収集したデータを解析して表示します。そして、統計的に収集された IP サンプルと呼び出しシーケンスを基に、トップダウン・ツリー (コールツリー) を表示します。このデータは、統計的に重要なコード領域の制御フローを理解するのに役立ちます。
コレクターはシステム全体にわたるデータは収集せず、アプリケーションのデータのみ収集します。システムのパフォーマンスを解析するには、高度なホットスポット解析を実行します。
基本ホットスポット解析タイプを使用するには次を確認します。
基本ホットスポット解析向けのオプションを設定するには、次の操作を行います。
必要条件: プロジェクトを作成し、解析ターゲットを指定します。
(スタンドアロン GUI)/ (Visual Studio* IDE) [New Analysis (新規解析)] ツールバーボタンをクリックします。
[Analysis Type (解析タイプ)] ウィンドウをアクティブにして、[New Amplifier Result (新規 Amplifier 結果)] タブを開きます。
左のペインにある解析ツリーから、[Algorithm Analysis (アルゴリズム解析)] > [Basic Hotspots (基本ホットスポット)] 解析タイプを選択します。
右ペインに [Basic Hotspots] の設定が表示されたら、
解析オプションを設定します。
[CPU sampling interval, ms (CPU サンプリング間隔、ミリ秒)] スピンボックス |
CPU サンプルの間隔 (ミリ秒で) を指定します。 指定可能な値 - 1-1000。 デフォルト値は、10。 |
[Analyze user tasks, events, and counters (ユーザータスク解析、イベント、カウンター)] チェックボックス |
ITT API を使用してコード中で指定したタスク、イベント、およびカウンターを解析します。このオプションを指定すると、高いオーバーヘッドが生じ、結果ファイルのサイズが増加します。 デフォルト値は、false です。 |
[Analyze OpenMP regions (OpenMP* 領域を解析)] チェックボックス |
OpenMP* 領域をインストルメントおよび解析し、インバランス、ロックの競合、またはスケジュール、リダクション、およびアトミック操作におけるオーバーヘッドなど非効率な振る舞いを特定します。 デフォルト値は、false です。 |
[Details (詳細)] ボタン |
この解析タイプで使用されるデフォルト設定 (編集不可) のリストを展開/折りたたみます。解析向けの追加設定を修正または有効にする場合、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。この解析タイプ設定の編集可能なコピーが作成され、左ペインの [Custom Analysis (カスタム解析)] に追加されます。 |
解析を実行するには、[Start (開始)] をクリックします。
下にある [Command Line... (コマンドライン...)] ボタンをクリックして、この設定のコマンドラインを生成できます。
基本ホットスポット解析の結果は、次のビューポイントで表示できます。
ビューポイント |
説明 |
---|---|
Hotspots (ホットスポット) |
多くの CPU 時間を使用しているコード領域 (ホットスポット) を特定するのに役立ちます。 |
Hotspots by CPU Usage (CPU 使用率別ホットスポット) |
多くの CPU 時間を使用しているコード領域 (ホットスポット) を特定するのに役立ちます。CPU 時間は CPU 使用率の状態 (idle、poor、fair、good) に分割されます。 |
それぞれのビューポイントには、次のウィンドウ/ペインがあります。
[Summary (サマリー)] ウィンドウ: CPU 時間とプロセッサー使用率の点からアプリケーションの実行における全体的な統計を表示します。
[Bottom-up (ボトムアップ)] ウィンドウ: ホットスポット関数 (ボトムアップ・ツリー形式)、関数ごとの CPU 時間と CPU 使用率を表示します。
[Top-down Tree (トップダウン・ツリー)] ウィンドウ: ホットスポット関数 (呼び出しツリー形式)、関数のみのパフォーマンス・メトリック (セルフ値)、関数とその子関数のメトリック (合計値) を表示します。
[Caller/Callee (呼び出し元/呼び出し先)] ウィンドウ: 選択された関数の親と子関数を表示します。
[Platform (プラットフォーム)] ウィンドウ: CPU と GPU の使用率、フレームレート、メモリー帯域幅、およびユーザータスクの詳細を提供します (対応するメトリックが収集されていれば)。
グリッドで最も時間を消費している関数を特定し、ダブルクリックしてソース解析を行います。
クリティカルな関数のハイライトされている最もホットなコード行から開始し、ホットスポットのナビゲーション・オプションによってさらにソースを解析を行います。
コードを修正してボトルネックを解消し、アプリケーションのパフォーマンスを改善します。
解析を再実行して比較モードで最適化を検証します。
基本ホットスポット解析によって提供される情報は、シリアル・アプリケーションだけでなく、並列アプリケーションのシリアル領域をチューニングするのにも役立ちます。基本ホットスポット解析データを利用することで、アプリケーションが何を行っているか把握し、チューニングが必要なコードを特定することができます。マルチコアシステムで実行している並列アプリケーションについては、追加の解析 (並行性、ロックと待機、または HPC パフォーマンス特性の解析) が必要です。