インテル® VTune™ プロファイラー・ユーザーガイド

GPU オフロード解析 (プレビュー)

プラットフォーム上の各種 CPU と GPU コアのコード実行を調査し、CPU と GPU のアクティビティーを関連付けて、アプリケーションが GPU 依存か CPU 依存かを特定します。

これはプレビュー機能です。プレビュー機能は、正式リリースに含まれるかどうか未定です。皆さんが機能に対する有用性のフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com へフィードバックをお送りください。

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

このツールは、システム全体のすべてのコアクロックを自動的に調整し、同じ時間進行で GPU ベースのワークロードと CPU ベースのワークロードを解析できるようにします。

この解析は以下を可能にします。

GPU オフロード解析では、インテル® VTune™ プロファイラーは CPU と GPU の両方で実行されるコードを測定し、構成の設定に応じて GPU ハードウェアの使用効率と次の解析手順に役立つパフォーマンス・メトリックを提供します。

解析の設定と実行

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

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

GPU オフロード解析を設定して実行します。

必要条件:

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

    [解析の設定] ウィンドウが開きます。

  2. [どのように] ペインで、 [実行する解析タイプを選択] ボタンをクリックして、[プラットフォーム解析] > [GPU オフロード] を選択します。

    GPU オフロード解析は、GPU 使用データとプロセッサー・グラフィックスのハードウェア・イベントを収集するように事前設定されています (基本計算)。

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

    • [GPU プログラミング API をトレース] オプションを使用して、インテル® プロセッサー・グラフィックスで実行される DPC++、OpenCL*、およびインテル® メディア SDK プログラムを解析します。このオプションは、CPU 側でアプリケーションのパフォーマンスに影響する可能性があります。

    • [メモリー帯域幅解析] オプションを使用して、メモリー帯域幅の計算に必要なデータを収集します。このタイプの解析では、インテルのサンプリング・ドライバーをインストールする必要があります。

    • [CPU 側のスタックを収集] オプションを使用して、CPU で実行されたコールスタックを解析しクリティカル・パスを特定します。

    • [GPU パフォーマンスの詳細を表示] を使用して、ハードウェアの使用効率を推測し、次の手順を理解するのに役立つメトリック (プロセッサー・グラフィックス・イベント) を取得します。次の詳細メトリックが収集されます。

      • EU アレイメトリックは、GPU コアアレイのサイクルの内訳を示します。

        • アクティブ: すべてのコアで命令の実行に費やされたサイクルの正規化された合計。
          式:

        • ストール: すべてがストールに費やされたサイクルの正規化された合計。少なくとも 1 つのスレッドがロードされているが、コアがストールしている状態。
          式:

        • アイドル: コアにスレッドがスケジュールされなかったすべてのサイクル (すべてのコア分) の正規化された合計。
          式:

      • EU スレッド占有率メトリックは、スロットにスケジュールされたスレッドがある場合、すべてのコアとスレッドスロットのサイクルを正規化した合計サイクルを示します。
      • 計算スレッドの開始メトリックは、計算処理を行うためすべての EU で開始されたスレッドの数を示します。

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

GPU オフロード解析を実行するには、次のコマンドラインを入力します。

$ vtune -collect gpu-offload [-knob <knob_name=knob_option>] -- <target> [target_options]

下部にある [コマンドライン...] ボタンを使用して、解析設定のコマンドラインを生成できます。

関連情報