インテル® VTune™ Amplifier 2018 ヘルプ
HPC パフォーマンス特性解析は、計算集約型のアプリケーションがどの程度効率良く CPU、メモリー、および浮動小数点計算のハードウェア・リソースを使用しているかを特定します。
HPC パフォーマンス特性解析タイプは、アプリケーションのパフォーマンス特性を理解する開始点として使用できます。インテルの OpenMP* やインテル® MPI ランタイム・ライブラリーを使用したアプリケーション向けのスケーラビリティーに関するメトリックも利用できます。
HPC パフォーマンス特性解析では、インテル® VTune™ Amplifier のデータコレクターはイベントベース・サンプリング収集を使用してアプリケーションをプロファイルします。インテルの OpenMP* ランタイム・ライブラリー向けの OpenMP* 解析メトリックは、ランタイム・ライブラリー内で実装されるユーザー API インストルメント機能をベースとしています。
コレクターは指定されたアプリケーションのデータを収集しますが、必要であれば制限はありますがシステム全体のパフォーマンス・データを収集できます。
FPU と GFLOPS メトリックは、第 3 世代インテル® Core™ プロセッサー、第 5 世代インテル® プロセッサー、および第 6 世代インテル® プロセッサーでサポートされます。インテル® Xeon Phi™ プロセッサー開発コード名 Knights Landing では、一部の機能がサポートされます。このメトリックは、現在第 4 世代インテル® プロセッサーでは利用できません。システム上で利用されているプロセッサー・ファミリーを確認するには、解析設定ペインの [Details (詳細)] セクションを展開します。
解析は、インテル® VTune™ Amplifier GUI またはコマンドラインから実行できます。
HPC パフォーマンス特性解析タイプを使用するには次を確認します。
HPC パフォーマンス特性解析向けのオプションを設定するには、次の操作を行います。
必要条件: プロジェクトを作成し、解析ターゲットを指定します。
インテル® VTune™ Amplifier ツールバーの (スタンドアロン GUI)/(Visual Studio* IDE) [New Analysis (新規解析)] ボタンします。
[Analysis Type (解析タイプ)] ウィンドウをアクティブにして、[New Amplifier Result (新規 Amplifier 結果)] タブを開きます。
左のペインにある解析ツリーから、[Application Analysis (アプリケーション解析)] > [HPC Performance Characterization (HPC パフォーマンス特性)] 解析タイプを選択します。
右ペインに [HPC Performance Characterization] の設定が表示されます。
解析オプションを設定します。
[CPU sampling interval, ms (CPU サンプリング間隔、ミリ秒)] フィールド |
CPU サンプルの間隔 (ミリ秒で) を指定します。 指定可能な値 - 0.01-1000。 デフォルト値は、1 です。 |
[Collect stacks (スタックを収集)] チェックボックス |
コールスタックとスレッド・コンテキスト・スイッチの高度な収集を有効にします。 デフォルト値は、[false] です。 |
[Analyze memory bandwidth (メモリー帯域幅を解析)] チェックボックス |
メモリー帯域幅の計算に必要なデータを収集します。 デフォルト値は、[true] です。 |
[Evaluate max DRAM bandwidth (最大 DRAM 帯域幅を評価)] チェックボックス |
収集を開始する前に、達成可能な最大ローカル DRAM 帯域幅を評価します。このデータは、タイムラインで帯域幅メトリックのスケールしきい値を計算するために使用されます。 デフォルト値は、[true] です。 |
[Analyze OpenMP regions (OpenMP* 領域を解析)] チェックボックス |
OpenMP* 領域をインストルメントおよび解析し、インバランス、ロックの競合、またはスケジュール、リダクション、およびアトミック操作におけるオーバーヘッドなど非効率な振る舞いを特定します。 デフォルト値は、[true] です。 |
[Details (詳細)] ボタン |
この解析タイプで使用されるデフォルト設定 (編集不可) のリストを展開/折りたたみます。解析向けの追加設定を修正または有効にする場合、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。この解析タイプ設定の編集可能なコピーが作成され、解析ツリーの [Custom Analysis (カスタム解析)] に追加されます。 |
下にある [Command Line... (コマンドライン...)] ボタンをクリックして、この設定のコマンドラインを生成できます。
解析を実行するには、[Start (開始)] をクリックします。
HPC パフォーマンス特性解析結果は、次のビューポイントで表示できます。
ビューポイント |
説明 |
---|---|
HPC Performance Characterization (HPC パフォーマンス特性) |
アプリケーションが、CPU、メモリー、および浮動小数点演算リソースをどの程度効率良く使用しているか理解するのを支援します。メモリーと FPU の効率を高める次のステップと同様に、このビューではインテルの OpenMP* と MPI ランタイムのスケーラビリティーの問題を特定します。 |
Hardware Events (ハードウェア・イベント) |
モニターされたハードウェア・イベントの特性を表示: 予測されるカウントおよび (または) 収集されたサンプル数。このビューを使用して、注目するイベントの最も高いアクティビティーのコード領域 (モジュール、関数、コード行など) を特定します。 |
Hardware Issues (ハードウェアの問題) |
アプリケーションで利用可能なハードウェア・リソースを活用していない場所を特定するのに役立ちます。このビューポイントは、ハードウェア・パフォーマンス・カウンターから得られるメトリックを表示します。グリッドにハイライト表示されたメトリック値にマウスをホバーすると、そのメトリックがパフォーマンスの問題を引き起こす理由が表示されます。 |
Hotspots (ホットスポット) |
多くの CPU 時間を使用しているコード領域 (ホットスポット) を特定するのに役立ちます。 |
Memory Usage (メモリー使用量) |
アプリケーションがメモリーリソースを効率良く使用しているか理解するのを支援し、過度な NUMA プラットフォーム上のリモートへのアクセス、DRAM へのヒット、またはインターコネクトの帯域幅制限などメモリーアクセスに関連する問題の可能性を特定します。アプリケーション・コードとメモリー・オブジェクト配列の両方に関連する各種パフォーマンス・メトリックを提供します。 |
General Exploration (全般解析) |
アプリケーションで利用可能なハードウェア・リソースを活用していない場所を特定するのに役立ちます。このビューポイントは、ハードウェア・イベントから得られるメトリックを表示します。[Summary (サマリー)] ウィンドウは、メトリックの説明と実行全体におけるトータルなメトリックをレポートします。[Bottom-up (ボトムアップ)] と [Top-down Tree (トップダウン・ツリー)] ウィンドウで、アプリケーション内のハードウェアの問題が発生する場所を特定できます。パフォーマンス向上の可能性が検出されると、セルはハイライト表示されます。グリッドのハイライトされているメトリックにカーソルをホバーすると、問題の説明が表示されます。 |
それぞれのビューポイントには、次のウィンドウ/ペインがあります。
[Summary] ウィンドウ: CPU 時間とプロセッサー使用率の点からアプリケーションの実行における全体的な統計を表示します。
[Bottom-up] ウィンドウ: ボトムアップ・ツリーの関数ごとの CPU 時間と CPU 使用率を表示します。
[Top-down Tree] ウィンドウ: 呼び出しツリー関数のみのパフォーマンス・メトリック (セルフ値)、関数とその子関数のメトリック (合計値) を表示します。
[Caller/Callee (呼び出し元/呼び出し先)] ウィンドウ: 選択された関数の親と子関数を表示します。
次の項目を確認するには、HPC パフォーマンス特性ビューポイントを使用します。
CPU 使用率: 並列時間に対するシリアル時間が関連するスケーラビリティーの問題を調査します。そのため、CPU 使用率によるホットスポット関数を特定します。
メモリー依存: アプリケーションがメモリー依存であるかどうかを評価します。深部の問題を理解するには、問題を引き起こす固有のメモリー・オブジェクトを特定するためメモリーアクセス解析を実行します。
FPU 使用率: 浮動小数点処理を行うループが、帯域幅依存であるかまたは、ベクトル化されているかを検証します。帯域幅依存のループや関数には、帯域幅消費を軽減するためメモリーアクセス解析を行います。ベクトル化による最適化の可能性を探るには、インテル® Advisor のベクトル化解析を実行します。
ハイブリッド・アプリケーションの基本的なチューニング手順を調査するため、OpenMP* と MPI アプリケーションの解析チュートリアルを使用します。インテル® デベロッパー・ゾーンからチュートリアル (https://software.intel.com/en-us/itac-vtune-mpi-openmp-tutorial-lin (英語)) にアクセスできます。