< 目次

キャッシュミスと高い帯域幅の問題向けのメモリーアクセス解析

インテル® VTune™ プロファイラーのメモリーアクセス解析を使用して、NUMA の問題や帯域幅に制限されたアクセスなどメモリー関連の問題を特定し、メモリー割り当て/解放のインストルメントから提供されシンボル情報から静的/グローバル変数を取得して、パフォーマンス・イベントをメモリーオブジェクト (データ構造) に分類します。

インテル® VTune™ プロファイラーは、インテル® VTune™ Amplifier の後継バージョンであり、名称が変更されました。

どのように動作するか

メモリーアクセス解析タイプは、ハードウェア・イベントベース・サンプリングを使用して、以下のメトリックのデータを収集します。

  • メトリックの一覧は、マイクロアーキテクチャーによって異なります。

  • UPI 利用率のメトリックは、インテル® マイクロアーキテクチャー・コード名 Skylake で導入された QPI 利用率を置き換えるものです。

メモリーアクセス解析で使用される多くの収集イベントはプリサイス (正確) です。これにより、データ・アクセス・パターンが分り易くなります。オフコアのトラフィックは、ローカル DRAM とリモート DRAM アクセスに区分されます。通常、コストが高いリモート DRAM アクセスを最小限に抑えることに集中します。

解析の設定と実行

次のようにメモリーアクセス解析のオプションを設定します。

必要条件: プロジェクトを作成します。

  1. インテル® VTune™ プロファイラー・ツールバーの (スタンドアロン GUI)/ (Visual Studio* IDE) [解析の設定] ボタンをクリックします。

    [解析の設定] ウィンドウが表示されます。

  2. [どのように] ペインで、 [実行する解析タイプを選択] ボタンをクリックして、[メモリーアクセス] を選択します。

  3. 次のオプションを設定します。

    [CPU サンプリング間隔 (ミリ秒)] フィールド

    CPU サンプル間の間隔を指定します (ミリ秒)。

    設定可能な値は、0.01 - 1000 です。

    デフォルト値は 1 ms です。

    [動的メモリーオブジェクトを解析] チェックボックス (Linux* のみ)

    動的メモリーの割り当て/解放のインストルメントとメモリー・オブジェクトのハードウェア・イベントへのマップを有効にします。このオプションを選択すると、すべてのシステムメモリーの割り当て/割り当て解除 API のインストルメントにより、実行時に追加のオーバーヘッドが発生する可能性があります。

    このオプションは、デフォルトで無効になっています。

    最小限の動的メモリー・オブジェクト・サイズで追跡 (バイト) スピンボックス (Linux* のみ)

    解析する動的メモリー割り当ての最小サイズを指定します。このオプションは、インストルメントの実行時のオーバーヘッドを軽減するのに有効です。

    デフォルト値は 1024 です。

    [DRAM の最大帯域幅を評価] チェックボックス

    収集を開始する前に、達成可能な最大 DRAM 帯域幅を評価します。このデータは、タイムライン上で帯域幅メトリックをスケールし、しきい値を計算するために使用されます。

    このオプションは、デフォルトで有効になっています。

    [OpenMP* 領域を解析] チェックボックス

    OpenMP* 領域を計測および解析して、インバランス、ロック競合、スケジュール、リダクション、アトミック操作の実行時のオーバーヘッドなどの非効率性を検出します。

    このオプションは、デフォルトで無効になっています。

    [詳細] ボタン

    この解析タイプの編集不可デフォルトの設定のリストセクションを、拡張/折りたたみします。解析の設定を変更または設定の追加を有効にするには、既存の事前定義設定をコピーしてカスタム設定を作成する必要があります。インテル® VTune™ プロファイラーは、解析タイプ設定の編集可能なコピーを作成します。

  4. 解析を実行するには [開始] ボタンをクリックします。

制限:

データを表示

解析では、次のウィンドウを含むメモリー使用ビューポイントを調査します。

サポートの制限

メモリーアクセス解析は、次のプラットフォームでサポートされます。

古いプロセッサーを解析する場合、カスタム解析を作成してメモリーアクセスに関連するイベントを選択します。しかし、それらのプロセッサーでサポートされるメモリー関連のイベントに制限されます。プロセッサーごとのメモリー・アクセス・イベントについては、「インテル® VTune™ プロファイラーのチューニング・ガイド」 (英語) を参照してください。

Linux* 上の動的メモリー・オブジェクト解析では、インテル® VTune™ プロファイラーは次のメモリー割り当て API をインストルメントします。

関連情報