インテル® VTune™ Amplifier 2018 ヘルプ

GPU ホットスポット解析

レンダリング、ビデオ処理、およびインテル® Media SDK と OpenCL* ソフトウェア・テクノロジーによってサポートされる計算においてグラフィックス処理ユニット (GPU) を使用するアプリケーションの GPU ホットスポット解析を実行します。

GPU ホットスポット

CPU/GPU ホットスポット解析を使用して以下を行います。

必要条件: Linux* ターゲットの場合、GPU 上でインテル® HD グラフィックスおよびインテル® Iris® グラフィックス (以下、インテル® グラフィックスと表記) のハードウェア・イベントを解析するには、インテル® Media Server Studio 2015 R5 以降をインストールし、導入ガイド (英語) に従ってカーネルドライバーをビルドします。

インテル® VTune™ Amplifier は、CPU ベースのワークロードと GPU ベースのワークロードを同じ時間内で同時に解析できるよう、システム全体のすべてのコアのクロックを自動的に整合させます。

GPU ホットスポット解析を実行して以下を調査します。

設定オプション

[Analyze GPU usage (GPU 使用率を解析)] オプションを有効にして、インテル® VTune™ Amplifier を GPU の利用状況を調査するように設定し、アプリケーションが CPU もしくは GPU のどちらに依存しているかを確認します。この解析設定の結果から [Graphics (グラフィックス)] ウィンドウの [Timeline (タイムライン)] 表示を調査し、GPU が頻繁にビジーになり、ビジーとなっている間隔のアイドル時間が非常に短く GPU ソフトウェアのキューがほとんどゼロにならないことを示す状況では、理論的にはアプリケーションは GPU に依存しています。ビジー状態の間のギャップが長い場合、このギャップの間 CPU がビジーとなり、アプリケーションは CPU 依存であると言えます。しかし、このような明確な状況は稀であるため、詳細を解析してすべての依存関係を明らかにする必要があります。例えば、GPU エンジンがシリアル化されている場合 (GPU エンジンがビデオ処理とレンダリング処理を交互に実行するなど)、誤って GPU 依存を見なしてしまう可能性があります。このケースでは、GPU 上での非効率なスケジューリングは、CPU で実行されるアプリケーションから生じています。

Windows* システム上で一般的な GPU の使用状況を監視するには、管理者としてインテル® VTune™ Amplifier を実行します。

GPU が時間の経過とともにビジーになる場合、GPU が効率良く利用されているか、また改善の余地があるかを理解する必要があります。そのような解析では、GPU ホットスポットが提供される追加の設定オプションが利用できます。

GPU ホットスポット解析を設定して実行するには:

必要条件: プロジェクトを作成し、解析ターゲットを指定します。

  1. [New Analysis (新規解析)] ツールバーボタン、 (スタンドアロン GUI)/ (Visual Studio* IDE) をクリックします。

    [Analysis Type (解析タイプ)] ウィンドウが開きます。

  2. 左ペインから [Platform Analysis (プラットフォーム解析)] > [GPU Hotspots (GPU ホットスポット)] を選択します。

    この解析向けの編集可能で事前定義された収集オプションを表示する [GPU Hotspots] 設定ペインが右側に開きます。

    GPU ホットスポット解析は、GPU 使用データを収集し、GPU タスクのスケジュールを解析して、アプリケーションが CPU 依存か GPU 依存かを特定するように事前設定されています。

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

    • GPU ハードウェア・メトリック収集の GPU サンプル間隔 (ミリ秒単位) を指定するには、[GPU sampling interval, ms (GPU サンプリング間隔、ミリ秒)] オプションを使用します。デフォルトでは、インテル® VTune™ Amplifier は、ハードウェア・イベントベース・サンプリング収集には 1 ミリ秒の間隔を、ユーザーモード・サンプリングとトレース収集には 1000 ミリ秒を使用します。

    • [Analyze Processor Graphics hardware events (プロセッサー・グラフィックスのハードウェア・イベントを解析)] オプションを使用して、レンダーと GPGPU エンジンの使用 (インテル® グラフィックスのみ) をモニターし、エンジンのどの部分がロードされたかを特定して GPU と CPU データに関連付けます。このオプションを使用するには root/管理者権限が必要であり、Windows*、Linux* (前述の必要条件をご覧ください)、および Android* ターゲットで利用できます。

      インテル® VTune™ Amplifier は、ハードウェア・メトリックのプラットフォーム固有設定を提供します。実行ユニット (EU) のアクティビティーには、すべての事前定義収集データが設定されています: EU Array Active (EU 配列アクティブ)、EU Array Stalled (EU 配列ストール)、EU Array Idle (EU 配列アイドル)、Computing Threads Started (開始された計算スレッド)、および Core Frequency (コア周波数)。

      • [Overview (概要)] イベントグループには、Memory Read/Write Bandwidth (メモリーリード/ライト帯域幅)、GPU L3 Misses (GPU L3 ミス)、Sampler Busy (サンプラービジー)、Sampler Is Bottleneck (サンプラー・ボトルネック)、および GPU Memory Texture Read Bandwidth (GPU メモリーのテクスチャー・リード/ライト帯域幅) などの一般的な GPU メモリーアクセスに関するメトリックが含まれます。これらのメトリックは、グラフィックスと計算主体の両方のアプリケーションに役立ちます。

      • [Compute Basic (計算の基本情報)] (グローバル/ローカルメモリー・アクセス含む) イベントグループには、Untyped Memory Read/Write Bandwidth (タイプで分類されないリード/ライト帯域幅)、Typed Memory Read/Write Transactions (タイプで分類されたリード/ライト・トランザクション)、SLM Read/Write Bandwidth (SLM リード/ライト帯域幅)、Render/GPGPU Command Streamer Loaded (レンダラー/GPGPU コマンド・ストリーマーのロード)、および GPU EU Array Usage (GPU EU 配列使用率) などの GPU 上の異なるタイプのデータアクセスを区別するメトリックが含まれます。これらのメトリックは、GPU 上の計算主体のワークロードに役立ちます。

      • [Compute Extended (計算の追加情報)] イベントグループには、インテル® プロセッサー開発コード名 Broadwell 以降の GPU 解析のみをターゲットとするメトリックが含まれます。その他のシステム向けの事前定義はありません。

      • [Full Compute (計算の完全な情報)] イベントグループは、[Overview][Compute Basic] イベントセットを組み合わせたものです。

    • ランタイムの実行時間を調査して、GPU メトリックごとの各プログラムのパフォーマンスをモニターし、ホットスポットを特定するには、[Trace OpenCL and Intel Media SDK programs (OpenCL* とインテル(R) Media SDK プログラムをトレース)] オプションを使用します。

      OpenCL* アプリケーションでは、最もホットな OpenCL* カーネルを特定し、GPU 上で実行するためカーネルにより転送されたものを示す [Graphics (グラフィックス)] ウィンドウで計算キューを調査し、このデータをハードウェア・メトリックと関連付けて、特定のカーネルでパフォーマンスの問題が検出された GPU アーキテクチャー・ブロックを特定します。

      インテル® Media SDK プログラムでは、タイムラインでインテル® Media SDK タスクの実行を調査し、このデータをそれぞれの時間軸で GPU の利用状況と関連付けることができます。

      制限事項:

      • OpenCL* カーネル解析は、インテル® グラフィックス上で実行される Windows* および Linux* ターゲットで利用できます。

      • インテル® Media SDK プログラムの解析は、インテル® グラフィックス上で実行される Linux* ターゲットで利用できます。

      • [Launch Application (アプリケーションを起動)] または [Attach to Process (プロセスにアタッチ)] ターゲットタイプのみがサポートされます。

      [Attach to Process] モードでは、計算キューがすでに作成されているプロセスをアタッチすると、インテル® VTune™ Amplifier はこのキューの OpenCL* カーネルのデータを表示しません。

  4. 実行パスごとのパフォーマンスと並列性を解析するには、[Collect stacks (スタックを収集)] オプションを選択します。

  5. [Start (開始)] をクリックして解析を実行します。

コマンドラインから GPU ホットスポット解析を実行するには、以下を入力します。

$ amplxe-cl -collect gpu-hotspots [-knob <knob_name=knob_option>] -- <target> [target_options]

  • Windows* のみ: インテル® VTune™ Amplifier が、必要な GPU ドライバーのバージョンを検出できない場合、PATH 環境変数に igdmd32.dll または igdmd64.dll へのパスを設定します。これらは通常、%SystemRoot% にあります。例えば、C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_5b7983371eebfcc4 に設定します。

  • 下にある [Command Line... (コマンドライン...)] ボタンを使用して、この設定のコマンドラインを生成できます。

インテル® グラフィックスのレンダーエンジンとハードウェア・メトリック

GPU とは、小さなコアの配列 (実行ユニット (EU)) でグラフィックスや計算処理を行う高度な並列マシンです。各 EU は、複数の軽量なスレッドを同時に実行します。スレッドの 1 つが実行されると、ほかのスレッドがメモリーなどからのデータを待機するためストールしていても、そのストールを隠蔽することができます。

GPU の性能を最大限に利用するため、アプリケーションはできるだけ多くのスレッドをスケジュールして、アイドルサイクルを最小限に抑えようとします。グラフィックスと汎用計算 GPU アプリケーションでは、ストールを最小限にすることも非常に重要です。

インテル® VTune™ Amplifier は、インテル® GPU のハードウェア・イベントをモニターし、サンプリング期間の GPU リソースの使用状況に関するメトリックを表示する、[Analyze Processor Graphics hardware events (プロセッサー・グラフィックスのハードウェア・イベントを解析)] オプションを提供します。例えば、EU がアイドル状態、ストール状態、アクティブ状態であったサイクルの比率や、メモリーアクセスとほかの機能ユニットに関する統計情報などが分かります。インテル® VTune™ Amplifier で GPU の OpenCL* カーネル実行をトレースすると、各カーネルに GPU メトリックをアノテート (注釈) できます。

以下のスキームは、インテル® グラフィックスのさまざまな処理をインテル® VTune™ Amplifier で収集したメトリックを表示します。

GPU メトリックは、GPU ハードウェアがどれくらい効率良く利用されているか、そしてパフォーマンス向上のため改善の余地があるか判断するのに役立ちます。メトリックの多くは、サンプリング中のすべてのサイクルに対して GPU 機能ユニットが特定の状態であったサイクルの比率で表されます。メトリックの計算に使用される式を確認するには、グリッドの対応する列にマウスカーソルを移動します。例えば、インテル® VTune™ Amplifier は、次のような基本的な GPU ハードウェア・メトリックを収集します。

メトリック

EU Array Active (EU 配列アクティブ)

EU Array Stalled (EU 配列ストール)

EU Array Idle (EU 配列アイドル)

リモート・デスクトップ接続経由で GPU 解析を実行する場合、ソフトウェアが次の要件を満たしていることを確認してください。

  • インテル® VTune™ Amplifier XE 2015 Update 2 以降

  • インテル® Graphics Driver バージョン 15.36.14.64.4080 以降

  • RDC 経由で実行可能なターゲット解析アプリケーション

または、ターゲット・コンピューターのコンソールからインテル® VTune™ Amplifier を実行するか、VNC を介してコンピューターにアクセスします。

ビューポイント

インテル® VTune™ Amplifier は解析を実行し、[GPU Hotspots] ビューポイントにデータを表示して、次のウィンドウで各種プラットフォーム・データを提供します。

関連情報