GPU ルーフラインの調査パースペクティブは、ハードウェアによって制限されるパフォーマンスの上限に対するベンチマークとハードウェア・メトリックのプロファイルを使用して、GPU カーネルの実際のパフォーマンスを推測して視覚化し、主な制限の要因を特定します。
GPU / メモリーのルーフライン調査パースペクティブを実行するには、インテル® Advisor GUI と CLI からの 2 つの方法があります。両方の方法で収集された結果は、インテル® Advisor GUI で開くことができます。
インテル® Advisor GUI から GPU ルーフライン調査パースペクティブを実行
[Analysis Workflow (解析のワークフロー)] ペインで、ドロップダウン・メニューから [GPU Roofline Insights perspective (GPU ルーフライン調査パースペクティブ)] を選択し、データ収集の精度レベルを [Low (低)] に設定して、 ボタンをクリックします。この精度レベルでは、インテル® Advisor は次のことを行います。
データ収集精度のプリセットの詳細については、インテル® Advisor ユーザーガイドの事前定義されたオフロードのモデル化の精度を参照してください。完了すると、インテル® Advisor は [GPU Roofline Summary (GPU ルーフライン・サマリー)] を表示します。[GPU Roofline Regions (GPU ルーフライン領域)] タブに切り替えて [Roofline Chart (ルーフライン・グラフ)] を表示し、アプリケーションのパフォーマンスを制限する主な要因を特定します。
GPU プロファイルは、インテル® プロセッサー・グラフィックスにのみ適用できます。
[Roofline (ルーフライン)] グラフは、マシンが達成可能な最大パフォーマンスに対するアプリケーションのパフォーマンスと演算強度を表示します。
一般に次のことが言えます。
システム構成に応じて、ルーフライン・グラフで次のルーフラインが使用可能になる場合があります。
ドットと達成可能な最上位のルーフとの距離が遠いほど、パフォーマンス向上の可能性は高くなります。
GPU ルーフライン・グラフは、CPU ルーフライン・グラフをベースにしていますが、いくつか違いがあります。
グラフのドットは、OpenCL*、OpenMP*、レベルゼロ、および SYCL* カーネルに対応していますが、CPU バージョンでは個々のループに対応します。
表示される情報とコントロールの一部 (スレッド/コア数など) は、GPU ルーフラインにはありません。詳細については次の表を参照してください。
GPU ルーフライン・グラフを使用すると、複数のメモリーレベルでの 1 つのカーネルの演算強度を表示できます。これには、カーネルを表すドットをダブルクリックするか、選択して [Enter] キーを押します。ルーフライン・グラフに表示されるドットは、演算強度を計算するため使用されるさまざまなメモリーレベルに対応します。ドットにマウスをホバーすると演算強度が分かります。グラフの特定のドットを表示/非表示にするには、[Memory Level (メモリーレベル)] ドロップダウン・フィルターを使用します。
コマンドライン・インターフェイスから GPU ルーフラインの調査パースペクティブを実行
advisor のコマンドライン・インターフェイスを使用して GPU ルーフラインの調査パースペクティブを実行するには、次のコマンドを使用します。
advisor --collect=roofline --profile-gpu --project-dir=./advi --search-dir src:p=./advi –- myApplication
advisor --collect=survey --profile-gpu --project-dir=./advi --search-dir src:p=./advi –- myApplication
advisor --collect=tripcounts --no-trip-counts --flop --profile-gpu --project-dir=./advi --search-dir src:p=./advi –- myApplication
説明:
このコマンドは、2 つの解析を 1 つずつ実行するバッチモードです。
インタラクティブなルーフライン・グラフで、ハードウェアによって課せられたパフォーマンス上限に対するアプリケーションが達成しているパフォーマンスを表示するには、収集された結果をインテル® Advisor GUI で開くか、次のコマンドでインタラクティブな HTML ルーフライン・レポートを生成します。
advisor --report=roofline --profile-gpu --report-output=./advi/advisor-roofline.html --project-dir=./advi
ここで、report-output オプションは、インテル® Advisor が生成したレポートを保存するディレクトリーと HTML ファイルを指定します。
デフォルトでは、インテル® Advisor は FLOAT ルーフライン・グラフを生成します。INT ルーフライン・グラフに切り替えるには、コマンドに –-data-type=int オプションを追加します。
CLI レポートの生成の詳細については、インテル® Advisor ユーザーガイドの該当するセクションを参照するか、ターミナルで次のコマンドを実行してください。advisor --help report
インテル® Advisor は、次のコマンドで読み取り専用の結果スナップショットを作成できます。
advisor --snapshot --project-dir=./advi --pack --cache-sources --cache-binaries -- /tmp/my_proj_snapshot
次にすることは?
GPU Roofline Summary (GPU ルーフライン・サマリー) (GUI でのみ利用可能) を使用して、CPU と GPU デバイス実行されるアプリケーションのパフォーマンスを比較します。
GPU Code Analytics (GPU コード解析) ペインで、カーネルのパフォーマンス・メトリックと、適用可能な最適化手順に関する推奨事項を調査します。
関連情報
インテル® Advisor のクックブックの GPU にオフロードするコード領域を特定し GPU の使用状況を可視化 で GPU 使用率を最適化するユースケースを調べます。