コマンドラインでの CPU ルーフラインの精度レベル

各パースペクティブに対し、インテル® Advisor にはいくつかのレベルの収集精度が用意されています。各精度レベルには、収集されるデータと収集の詳細レベルを制御する一連の解析とプロパティーが設定されています。選択する精度レベルが高いほど、アプリケーションの実行時間に課されるオーバーヘッドは大きくなります。

CLI では、それぞれの精度レベルは目的とする結果を得るため単独で実行する必要があるオプションを備えた一連のコマンドに対応します。

次の精度レベルが利用できます。

比較 / 精度レベル

Low (低)

Medium (中)

オーバーヘッド

5-10x

15-50x

目的

アプリケーションが CPU のメモリーと計算リソースをどの程度活用しているかを解析し、主な制限要因 (メモリー帯域幅や計算能力) を特定します。

アプリケーションが各種キャッシュレベルで CPU メモリーをどの程度使用しているか詳しく解析します。

解析

サーベイ + 特性化 (FLOP)

サーベイ + 特性化 (すべてのメモリーレベルでコールスタック付きのトリップカウント & FLOP) + メモリー・アクセス・パターン

結果

L1 キャッシュ用のキャッシュ対応 CPU ルーフライン

コールスタック付きのメモリーレベルの CPU ルーフライン (L1、L2、L3、DRAM 向け)

メモリー・アクセス・パターン

インテル® Advisor の GUI から、必要とする精度レベルのコマンドラインを生成できます。詳細については、GUI からコマンドラインを生成するを参照してください。

データ収集、結果サイズ、および実行オーバーヘッドを最小化するさまざまな手法があります。解析のオーバーヘッドを最小化をチェックします。

次のコマンドの例について考えてみます。

次のコマンドでは、コマンドを実行する前にmyApplicationをアプリケーションの実行可能ファイルのパスと名前に置き換えてください。アプリケーションが引数を必要とする場合、実行可能ファイル名のにそれらを指定します。

低精度

低精度で CPU / メモリー・ルーフラインの調査パースペクティブを実行するには以下を実行します。

advisor --collect=roofline --project-dir=./advi_results -- ./myApplication

中精度

中精度で CPU / メモリー・ルーフラインの調査パースペクティブを実行するには以下を実行します。

  1. コールスタック付きのメモリー・レベル・ルーフラインのレポートを生成します。

    advisor --collect=roofline --stacks --enable-data-transfer-analysis --project-dir=./advi_results -- ./myApplication
  2. 非効率なメモリー・アクセス・パターンの可能性があるループに対し、メモリー・アクセス・パターン解析を実行します。

advisor --collect=map --select=has-issue --project-dir=./advi_results -- ./myApplication

インテル® Advisor GUI または対話型 HTML レポートを生成して結果を開けます。

関連情報