インテル® VTune™ プロファイラー・ユーザーガイド
最も時間のかかる GPU カーネルを解析し、GPU ハードウェア・メトリックをベースに GPU の使用状況を特徴付け、メモリー・レイテンシーや非効率なカーネル・アルゴリズムによって引き起こされるパフォーマンスの問題を特定して、命令タイプごとの GPU 命令周波数を解析します。
これはプレビュー機能です。プレビュー機能は、正式リリースに含まれるかどうか未定です。皆さんが機能に対する有用性のフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com へフィードバックをお送りください。
GPU 計算/メディア・ホットスポット解析は、以下を可能にします。
GPU 利用率の高い GPU カーネルを調査し、この利用率の有効性を予測してストールまたは低占有率の原因とオプションを特定します。
選択した GPU メトリックごとにアプリケーションの経時的なパフォーマンスを調査します。
最も効率の悪い DPC++ または OpenCL* カーネルを解析して、非効率なカーネルコードのアルゴリズムや不適切なワーク項目の構成を特定します。
GPU 計算/メディア・ホットスポット解析は、GPU オフロード解析を実行済みで、以下が特定されている場合に適した手順です。
さらに解析と最適化を行うパフォーマンス・クリティカルなカーネル
プログラム内の別のカーネルと緊密に関連する、パフォーマンスの低下が考えられるパフォーマンス・クリティカルなカーネル
GPU は、小さなコアのアレイ (実行ユニット (EU)) でグラフィックスや計算処理を行う高度な並列マシンです。各 EU は、複数の軽量なスレッドを同時に実行します。スレッドの 1 つが実行されると、ほかのスレッドがメモリーなどからのデータを待機するためストールしていても、そのストールを隠蔽することができます。
GPU の性能を最大限に利用するため、アプリケーションはできるだけ多くのスレッドをスケジュールして、アイドルサイクルを最小限に抑えようとします。グラフィックスと汎用計算 GPU アプリケーションでは、ストールを最小限にすることも非常に重要です。
インテル® VTune™ プロファイラーは、インテル® グラフィックスのハードウェア・イベントをモニターし、サンプリング期間の統合 GPU リソースの使用状況に関するメトリックを提供します。例えば、EU がアイドル状態、ストール状態、アクティブ状態であったサイクルの比率や、メモリーアクセスとほかの機能ユニットに関する統計情報などが分かります。インテル® VTune™ プロファイラーは GPU カーネル実行をトレースすると、GPU メトリックで各カーネルをアノテート (注釈) します。
以下は、インテル® VTune™ プロファイラーによって収集されるインテル® プロセッサー・グラフィックスに関するさまざまなメトリックです。
GPU メトリックは、GPU ハードウェアがどれくらい効率良く利用されているか、そしてパフォーマンス向上のため改善の余地があるか特定するのに役立ちます。メトリックの多くは、サンプリング中のすべてのサイクルに対して GPU 機能ユニットが特定の状態であったサイクルの比率で表されます。
必要条件:
GPU 解析向けにシステムが設定されており必要な権限があるか確認します。
DPC++ アプリケーションでは、インテル® oneAPI DPC++ コンパイラーのオプション -gline-tables-only と -fdebug-info-for-profiling を使用してコンパイルします。
[プロジェクトの作成] と解析システムおよびターゲットを指定します。
解析を設定するには以下を行います。
(スタンドアロン GUI)/
(Visual Studio* IDE) [解析の設定] ツールバー・ボタンをクリックします。
[解析の設定] ウィンドウが開きます。
[どのように] ペインで、 [実行する解析タイプを選択] ボタンをクリックして、[プラットフォーム解析] > [GPU 計算/メディア・ホットスポット] (プレビュー) を選択します。
GPU 計算/メディア・ホットスポット解析は、GPU 使用データを収集し、GPU タスクのスケジュールを解析して、アプリケーションが CPU 依存であるか GPU 依存であるかを識別するように事前設定されています。
次の解析モードのいずれかを選択して設定します。
解析を実行するには、[開始] をクリックします。
GPU 計算/メディア・ホットスポット解析を実行するには、次のコマンドラインを入力します。
vtune -collect gpu-hotspots [-knob <knob_name=knob_option>] -- <target> [target_options]
下部にある [コマンドライン...] ボタンを使用して。この設定のコマンドラインを生成できます。
この解析タイプは root や管理者権限を必要とし、Windows*、Linux* および Android* ターゲットで使用できます。
[特徴付け] 設定オプションにより、レンダーや GPGPU エンジンの使用 (インテル® グラフィックスのみ) をモニターして、エンジンのどの部分に負荷がかかっているかを特定し、GPU および CPU データと関連付けます。[特徴付け] ラジオボタンを選択すると、設定セクションに追加のオプションが表示されます。
[特徴付け] ドロップダウン・メニューでプラットフォーム固有の GPU メトリックを選択できます。動的命令カウントを除くすべてのプリセットは、実行ユニット (EU) のアクティビティー・データを収集します: EU アレイ・アクティビティー、EU アレイストール、EU アレイアイドル、計算スレッドのストール、およびコア周波数 (それぞれに追加のメトリックがあります)。
概要メトリックのセットには、メモリーリード/ライト帯域幅、GPU L3 ミス、サンプラービジー、サンプラー・ボトルネック、および GPU メモリーのテクスチャー・リード/ライト帯域幅などの一般的な GPU メモリーアクセスに関する追加のメトリックが含まれます。これらのメトリックは、グラフィックスと計算主体のアプリケーションに役立ちます。
基本計算 (グローバル/ローカルメモリー・アクセス含む) メトリックグループには、型なしリード/ライト帯域幅、型付きリード/ライト・トランザクション、SLM リード/ライト帯域幅、レンダラー/GPGPU コマンド・ストリーマーのロード、および GPU EU アレイの使用など、GPU 上の異なるタイプのデータアクセスを区別する追加のメトリックが含まれます。これらのメトリックは、GPU 上の計算集約型のワークロードに役立ちます。
拡張計算メトリックグループには、インテル® プロセッサー開発コード名 Broadwell 以降の GPU 解析のみをターゲットとする追加のメトリックが含まれます。その他のシステム向けの事前定義はありません。
完全な計算メトリックグループは、概要と基本計算イベントセットの組み合わせです。
動的命令カウント・メトリック・グループは、特定の命令クラスの実行頻度をカウントします。
特徴付け解析では追加データを収集することもできます。
[GPU プログラミング API をトレース] オプションを使用して、インテル® プロセッサー・グラフィックスで実行される DPC++、OpenCL*、およびインテル® メディア SDK プログラムを解析できます。このオプションは、CPU 側でアプリケーションのパフォーマンスに影響する可能性があります。
DPC++ または OpenCL* アプリケーションでは、最もホットなカーネルを検出し、特定されたカーネルのパフォーマンス問題が検出された GPU アーキテクチャー・ブロックを識別できます。
インテル® メディア SDK プログラムでは、タイムライン上のインテル® メディア SDK タスクの実行を調査し、このデータをそれぞれの時間軸で GPU の利用状況と関連付けることができます。
サポートの制限:
OpenCL* カーネル解析は、インテル® グラフィックス上で動作する Windows* と Linux* ターゲットで利用できます。
インテル® メディア SDK プログラム解析は、インテル® グラフィックス上で動作する Windows* と Linux* ターゲットで利用できます。
[アプリケーションを起動] または [プロセスにアタッチ] ターゲットタイプのみがサポートされます。
[プロセスにアタッチ] モードでは、計算キューがすでに作成されているプロセスにアタッチすると、インテル® VTune™ プロファイラーはこのキューの OpenCL* カーネルのデータを表示しません。
[メモリー帯域幅解析] オプションを使用して、メモリー帯域幅の計算に必要なデータを収集します。このタイプの解析では、インテルのサンプリング・ドライバーをインストールする必要があります。
GPU ハードウェア・メトリック収集の GPU サンプリング間隔を指定するには、[GPU サンプリング間隔 (ミリ秒)] オプションを使用します。インテル® VTune™ プロファイラーのデフォルトのサンプリング間隔は 1 ミリ秒です。
ソース解析は、パフォーマンス・クリティカルな基本ブロックや GPU カーネルのメモリーアクセスに起因する問題を特定するのに役立ちます。
[ソース解析] ラジオボタンを選択すると、設定セクションにドロップダウン・メニューが表示され、プロファイル・モードを選択して解析する問題の種類を指定できます。
[基本ブロック・レイテンシー] または [メモリー・レイテンシー] プロファイル・モードでは、GPU 計算/メディア・ホットスポット解析は次のようなメトリックを表示します。
予測 GPU サイクル: GPU がプロファイルされた命令の実行に費やしたサイクル数。
平均レイテンシー: サイクル単位のメモリーリードと同期命令の平均レイテンシー。
インテル® VTune™ プロファイラーは解析を実行して、[GPU 計算/メディア・ホットスポット] ビューポイントでデータを開き、次のウィンドウにさまざまなプラットフォーム・データを表示します。
[サマリー] ウィンドウには、エンジン全体とエンジンごとの GPU 利用率、EU がストールまたはアイドルした時間のパーセンテージとその原因、および最もホットな GPU 計算タスクが表示されます。
[グラフィックス] ウィンドウには、スレッドごとの CPU と GPU 利用率データが表示され、さまざまなタイプの GPU メモリーへのアクセスを解析するのに役立つ GPU ハードウェア・メトリックの拡張リストが示されます。グリッドのカラムの名前にマウスオーバーするか、右クリックして [このカラムの意味は?] コンテキスト・メニューを選択すると、GPU メトリックの説明を見ることができます。