インテル® VTune™ Amplifier 2018 ヘルプ
高度なホットスポット解析は、アプリケーション内のパフォーマンス・クリティカルなコード領域 (ホットスポット) を特定し、そのデータをシステムのパフォーマンスと関連付ける迅速で容易な方法です。
インテル® VTune™ Amplifier による周期的な命令ポインターのサンプリングは、他の領域よりも実行時間を費やしているアプリケーションのコード位置を特定します。コードが低速であるか、関数が頻繁に呼び出されることで多くの時間を消費する可能性があります。しかし、そのような関数のスピードを改善することは、アプリケーションのパフォーマンス全体に大きな影響を与えます。
インテル® VTune™ Amplifier は、関数で費やされた時間順にアプリケーションの関数のリストを作成します。デフォルトでは、高度なホットスポット解析は、ホットスポットが収集された関数のコールスタックは検出しませんが、システム上のすべてのプロセスのサンプルを収集できます。イベントベース・サンプリング収集を使用する解析タイプでは、システムで実行しているすべてのプロセスを解析してシステム全体の CPU 時間データを提供します。
[Advanced Hotspots (高度なホットスポット)] ペインでスタック解析を含む収集レベルを選択することで、アプリケーション・モジュールのスタック解析を行うことができます。例えば、[Hotspots, call counts and stacks (ホットスポット、コールカウント、スタック)] 収集レベルを選択すると、高度なホットスポットはパフォーマンス、並列性および電力消費データを実行パスに関連付けます。
32 ビット Linux* システムでは、インテル® VTune™ Amplifier は高度なホットスポット解析を実行するため、スタックによるドライバーを必要としない収集 Perf ベースの収集を使用します。
高度なホットスポット解析を行うには次を確認します。
高度なホットスポット解析向けの設定オプション:
必要条件: プロジェクトを作成し、解析ターゲットを指定します。
インテル® VTune™ Amplifier ツールバーの (スタンドアロン GUI)/(Visual Studio* IDE) [New Analysis (新規解析)] ボタンします。
[Analysis Type (解析タイプ)] ウィンドウをアクティブにして、[New Amplifier Result] タブを開きます。
左のペインから、[Algorithm Analysis (アルゴリズム解析)] > [Advanced Hotspots (高度なホットスポット)] を選択します。
右側に [Analysis Configuration (解析オプション)] ペインが開きます。
解析オプションを設定します。
[CPU sampling interval, ms (CPU サンプリング間隔、ミリ秒)] フィールドに、 |
CPU サンプルの間隔 (ミリ秒で) を指定します。 指定可能な値 - 0.01-1000。 デフォルト値は、1 です。 |
[Collection Level (収集レベル)] オプション |
イベントベース・サンプリング収集で提供される詳細レベルを選択します。詳細な収集レベルでは高いオーバーヘッドが生じます。
デフォルト値は、[Hotspots] です。 |
[Event mode (イベントモード)] ドロップダウン・メニュー |
OS またはユーザーモードにイベントベース・サンプリング収集を制限します。
デフォルト値は、[All] です。 |
[Analyze user tasks, events, and counters (ユーザータスク、イベント、カウンターを解析)]チェックボックス |
ITT API を使用してコード中で指定したタスク、イベント、およびカウンターを解析します。このオプションを指定すると、高いオーバーヘッドが生じ、結果ファイルのサイズが増加します。 デフォルト値は、[false] です。 |
[Analyze OpenMP regions (OpenMP* 領域を解析)] チェックボックス |
OpenMP* 領域をインストルメントおよび解析し、インバランス、ロックの競合、またはスケジュール、リダクション、およびアトミック操作におけるオーバーヘッドなど非効率な振る舞いを特定します。 デフォルト値は、[false] です。 |
[Details (詳細)] ボタン |
この解析タイプで使用されるデフォルト設定 (編集不可) のリストを展開/折りたたみます。解析向けの追加設定を修正または有効にする場合、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。この解析タイプ設定の編集可能なコピーが作成され、左ペインの [Custom Analysis (カスタム解析)] に追加されます。 |
32 ビット Linux* システムでは、インテル® VTune™ Amplifier は [Hotspots, call counts and stacks] と [Hotspots, call counts, loop trip counts and stacks] 収集オプションはサポートされません。
下にある [Command Line... (コマンドライン...)] ボタンをクリックして、この設定のコマンドラインを生成できます。
解析を実行するには、[Start (開始)] をクリックします。
デフォルトでは、データ収集結果はホットスポット・ビューポイントに表示されます。解析の設定にもよりますが、特定のパフォーマンスに関する問題を表示するように構成された他のビューポイントに切り替えることができます。
ビューポイント |
説明 |
---|---|
Hardware Events (ハードウェア・イベント) |
モニターされたハードウェア・イベントの特性を表示: 予測されるカウントおよび (または) 収集されたサンプル数。このビューを使用して、注目するイベントの最も高いアクティビティーのコード領域 (モジュール、関数、コード行など) を特定します。 |
Hardware Issues (ハードウェアの問題) |
アプリケーションで利用可能なハードウェア・リソースを活用していない場所を特定するのに役立ちます。このビューポイントは、ハードウェア・パフォーマンス・カウンターから得られるメトリックを表示します。グリッドにハイライト表示されたメトリック値にマウスをホバーすると、そのメトリックがパフォーマンスの問題を引き起こす理由が表示されます。 |
Hotspots (ホットスポット) |
多くの CPU 時間を使用しているコード領域 (ホットスポット) を特定するのに役立ちます。 |
HPC Performance Characterization (HPC パフォーマンス特性) |
アプリケーションが、CPU、メモリー、および浮動小数点演算リソースをどの程度効率良く使用しているか理解するのを支援します。メモリーと FPU の効率を高める次のステップと同様に、このビューではインテルの OpenMP* と MPI ランタイムのスケーラビリティーの問題を特定します。 |
これらのビューポイントには次のようなウィンドウが含まれます。
[Summary (サマリー)] ウィンドウ: アプリケーションの実行の全体的な統計を表示します。
[Caller/Callee (呼び出し元/呼び出し先)] ウィンドウ: 選択された関数の親と子関数を表示します。このウィンドウは、解析設定でスタック収集が有効にされている場合にのみ表示されます。
[Top-down Tree (トップダウン・ツリー)] ウィンドウ: ホットスポット関数 (呼び出しツリー形式)、関数のみのパフォーマンス・メトリック (セルフ値)、関数とその子関数のメトリック (合計値) を表示します。
[Platform (プラットフォーム)] ウィンドウ: CPU と GPU の使用率、フレームレート、メモリー帯域幅、およびユーザータスクの詳細を提供します (対応するメトリックが収集されていれば)。
[Sample Count (サンプルカウント)] ウィンドウ: 収集したすべてのプロセッサー・イベントのサンプルカウントを表示します。このビューポイントは、イベントが収集された実際のサンプル数を示します。
[Uncore Event Count (アンコア・イベント・カウント)] ウィンドウ: 選択された解析のアンコアイベント数を表示します。アンコアイベントがカウントされなかった場合、ウィンドウの上部のペインは空になります。
[Events Count (イベントカウント)] ウィンドウ: 選択された解析のすべてのプロセッサー・イベントのイベント数を表示します。このビューポイントでは、収集中に発生したイベント回数の推測を示します。
ホットスポットからソースコードを表示します。ホットスポットの原因となるソースコードを表示して、ボトルネックを取り除き、アプリケーションのパフォーマンスが向上するよう修正します。
高度なホットスポット解析によって提供される情報は、シリアル・アプリケーションだけでなく、並列アプリケーションのシリアル領域をチューニングするのにも役立ちます。アルゴリズムをチューニングする場合は、基本ホットスポット解析に加えて、アプリケーションの呼び出しフローを検証したり、並行性解析で並列アルゴリズムの効率性を予測したりすると良いでしょう。