インテル® VTune™ Amplifier 2018 ヘルプ
インテル® VTune™ Amplifier のメモリーアクセス解析を使用して、NUMA 問題と帯域幅により制限されるアクセスなどメモリーに関連する問題を特定し、メモリー割り当て/解放のインストルメントとシンボル情報から静的/グローバル変数を取得して、メモリー・オブジェクト (データ構造) へパフォーマンス・イベントを関連付けます。
メモリーアクセス解析タイプは、次のメトリックの計算に必要なデータを収集するためハードウェア・イベントベース・サンプリングを使用します。
[Loads (ロード)] と [Stores (ストア)] メトリックは、ロードとストアの総数を表示します
[LLC Miss Count (LLC ミスカウント)] メトリックは、ラストレベル・キャッシュ・ミスの総数を表示します
[Local DRAM Access Count (ローカル DRAM アクセスカウント)] メトリックは、ローカルメモリーを参照する LLC ミスの総数を表示します
[Remote DRAM Access Count (リモート DRAM アクセスカウント)] メトリックは、リモートソケットのメモリーへのアクセス数を表示します
[Remote Cache Access Count (リモート・キャッシュ・アクセス・カウント)] メトリックは、リモートソケットのキャッシュへのアクセス数を表示します
[Memory Bound (メモリー依存)] メトリックは、ロードとストア命令の要求による待機に費やされたサイクルを表示します
[L1 Bound (L1 依存)] メトリックは、マシンがどれくらいの頻度で L1 データキャッシュへのミスなしでストールしているかを示します
[L2 Bound (L2 依存)] メトリックは、マシンがどれくらいの頻度で L2 キャッシュでストールしているかを示します
[L3 Bound (L3 依存)] メトリックは、CPU がどれくらいの頻度で L3 キャッシュでストールしているか、または兄弟コアと競合しているかを示します
[L3 Latency (L3 レイテンシー)] メトリックは、ロードされていないシナリオ (L3 レイテンシーの制限の可能性) で L3 キャッシュにヒットするロード要求によるアクセスのサイクル数を示します
[DRAM Bound (DRAM 依存)] メトリックは、CPU がどれくらいの頻度でメインメモリー (DRAM) でストールしているかを示します
[Remote / Local DRAM Ratio (リモート/ローカル DRAM 比率)] メトリックは、リモート DRAM ロードとローカル DRAM ロードの比率によって定義されます
[local DRAM (ローカル DRAM)] メトリックは、CPU がどれくらいの頻度でローカルメモリー からのロードでストールしているかを示します
[Remote DRAM (リモート DRAM)] メトリックは、CPU がどれくらいの頻度でリモートメモリーからのロードでストールしているかを示します
[Remote cache (リモートキャッシュ)] メトリックは、CPU がどれくらいの頻度で他のソケットのリモートキャッシュからのロードでストールしているかを示します
[Average Latency (平均レイテンシー)] メトリックは、平均ロードレイテンシーのサイクル数を表示します
メトリックのリストはマイクロアーキテクチャーによって異なる可能性があります。
メモリーアクセス解析で収集されるほとんどのイベントデータは正確 (precise) です。そのため、データ・アクセス・パターンを容易に理解することができます。オフコア・トラフィックは、ローカル DRAM アクセスとリモート DRAM アクセスに分けられます。通常は、よりコストの高いリモート DRAM アクセスを最小限に抑えるようにしてください。
メモリーアクセス解析を行うには次を確認します。
メモリーアクセス解析向けのオプションを設定するには、次の操作を行います。
必要条件: プロジェクトを作成し、解析ターゲットを指定します。
(スタンドアロン GUI)/ (Visual Studio IDE) [New Analysis (新規解析)] ツールバーボタンをクリックします。
[Analysis Type (解析タイプ)] ウィンドウが表示されます。
左のペインから、[Microarchitecture Analysis (マイクロアーキテクチャー解析)] > [Memory Access (メモリーアクセス)] を選択します。
右ペインに [Memory Access] の設定が表示されます。
解析オプションを設定します。
[CPU sampling interval, ms (CPU サンプリング間隔、ミリ秒)] フィールド |
CPU サンプルの間隔 (ミリ秒で) を指定します。 指定可能な値 - 0.01-1000。 デフォルト値は、1 です。 |
[Analyze dynamic memory objects (動的メモリー・オブジェクトを解析)] チェックボックス (Linux* のみ) |
動的メモリーの割り当て/解放のインストルメントを可能にし、ハードウェア・イベントをそれらのメモリー・オブジェクトに関連付けます。このオプションは、すべてのシステムメモリーの割り当て/解放 API をインストルメントするため、ランタイム時のオーバーヘッドが増加します。 デフォルト値は、[false] です。 |
[Minimal dynamic memory object size to track, in bytes (追跡する動的メモリー・オブジェクトの最小サイズ、バイト)] スピンボックス (Linux* のみ) |
解析する動的メモリー割り当ての最小サイズを指定します。このオプションは、インストルメントのランタイム・オーバーヘッドを軽減するのに役立ちます。 デフォルト値は、1024 です。 |
[Evaluate max DRAM bandwidth (最大 DRAM 帯域幅を評価)] チェックボックス |
収集を開始する前に、達成可能な最大ローカル DRAM 帯域幅を評価します。このデータは、タイムラインで帯域幅メトリックのスケールしきい値を計算するために使用されます。 デフォルト値は、[true] です。 |
[Analyze OpenMP regions (OpenMP* 領域を解析)] チェックボックス |
OpenMP* 領域をインストルメントおよび解析し、インバランス、ロックの競合、またはスケジュール、リダクション、およびアトミック操作におけるオーバーヘッドなど非効率な振る舞いを特定します。 デフォルト値は、[false] です。 |
[Details (詳細)] ボタン |
この解析タイプで使用されるデフォルト設定 (編集不可) のリストを展開/折りたたみます。解析向けの追加設定を修正または有効にする場合、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。この解析タイプ設定の編集可能なコピーが作成され、左ペインの [Custom Analysis (カスタム解析)] セクションに追加されます。 |
解析を実行するには、[Start (開始)] をクリックします。
制限事項
メモリー・オブジェクト解析は、Linux* ターゲットのインテル® マイクロアーキテクチャー開発コード名 Sandy Bridge ベース以降のプロセッサーでのみ設定できます。
メモリー・オブジェクト解析は、ドライバーを必要としないイベントベース・サンプリング解析ではサポートされません。
解析では、次のウィンドウを含むメモリー使用量ビューポイントを調査します。
[Summary (サマリー)] ウィンドウは、アプリケーション・レベルの帯域幅使用率ヒストグラムを含む、アプリケーションの実行における全体的な統計を表示します。
[Bottom-up (ボトムアップ)] ウィンドウは、各ホットスポット・オブジェクトに対するメトリックごとのパフォーマンス・データを表示します。データ収集で [Analyze memory objects (メモリー・オブジェクトを解析)] オプションを有効にすると、[Bottom-up] ウィンドウではグリッドと [Call Stack (コールスタック)] ペインにメモリー割り当てコールスタックが表示されます。Function (関数) が Memory Object (メモリー・オブジェクト) よりも優先されるグループ化レベルを使用して、割り当て呼び出しのソース位置としてメモリー・オブジェクトを表示します。
[Platform (プラットフォーム)] ウィンドウ: コード中のタスク API、Ftrace*/Systrace* イベントタスク、OpenCL* API タスクなどで指定されるタスクの詳細を提供します。対応するプラットフォームのメトリックが収集されると、[Platform] ウィンドウは、ソフトウェア・キュー上の GPU 使用、CPU 時間使用、OpenCL* カーネルデータ、および GPU ハードウェア・メトリックの概要グループごとの GPU パフォーマンスと CPU 周波数などを、時間経過におけるデータとして表示します。
メモリーアクセス解析は次のプラットフォームでサポートされます。
第 2 世代インテル® Core™ プロセッサー
インテル® Xeon® プロセッサー・ファミリー以降
第 3 世代 Intel Atom® プロセッサー・ファミリー以降
これより古いプロセッサーを解析するには、カスタム解析を作成してメモリーアクセスに関連するイベントを選択します。しかし、それらのプロセッサーで利用可能なメモリー関連のイベントには制限があります。プロセッサーごとのメモリー・アクセス・イベントに関する情報は、インテル® VTune™ Amplifier チューニング・ガイドを参照してください。