インテルのゲーム・チューニング・ツール

この記事は、インテル® デベロッパー・ゾーンに公開されている「Game Tuning with Intel」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


この記事の PDF 版はこちらからご利用になれます。

はじめに

ハードウェアの仕様が異なる複数のプラットフォームで優れたパフォーマンスを発揮するゲームを作成することは、困難な作業です。複数の要因がパフォーマンスの問題を引き起こし、満足のいくゲームプレイができない可能性があります。

このドキュメントは、ゲーム開発者がインテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) をすばやく使いこなせるようになることを目的としています。トレース、ストリーム、フレームのキャプチャーや、ゲームが GPU または CPU のどちらに依存しているかの判断などの基本を説明します。また、ツールをより深く理解するのに役立つ追加情報も提供します。

用語とツール

  • グラフィックス・モニター: インテル® GPA 解析ツールのハブツール。トレース、ストリーム、またはフレーム・キャプチャー・オプションを設定できます。
  • グラフィックス・トレース・アナライザー: GPU と CPU のリソースおよびアプリケーション・データを分配する際の問題の特定に使用します。CPU スレッド・アクティビティーから GPU 呼び出しと実行に至るまで、ゲームに関するあらゆるアクティビティーを視覚化します。
  • グラフィックス・フレーム・アナライザー: キャプチャーしたフレームを探索し、特定の API 呼び出しがレンダリング・パイプラインのさまざまなステージでパフォーマンスに与える影響を理解するのに使用します。フレーム・レンダリング時間を短縮し、ドローコールの問題を確認し、レンダリング・パイプラインの各ステージでフレーム/秒 (FPS) にどのような影響があるかを理解できます。
  • CPU 依存: CPU が常にビジー状態で、GPU にアイドルスポットがある場合、CPU に依存します。CPU がビジーであるとフレームで GPU にワークを割り当てることができないため、GPU はそれ以上作業することができません。
  • GPU 依存: 逆に、GPU が常にビジー状態で、CPU にアイドルスポットがある場合、GPU に依存します。GPU の作業を最適化し、CPU がより多くの作業を GPU に割り当てることができるようにします。
  • トレース: グラフィックス・トレース・アナライザーがトレースをキャプチャーすると、アプリケーション実行中の CPU と GPU の両方のアクティビティーが記録されます。デフォルトでは、5 秒間のデータがキャプチャーされます。
  • フレーム: 1 つのフレームとそれに関連するリソース、テクスチャー、シェーダー、バッファー、およびその他のデータ。
  • ストリーム: キャプチャーしたフレームのコレクション。

パフォーマンス解析のステップ

ステップ 1: グラフィックス・モニターでトレースをキャプチャーします。トレースには、CPU 呼び出しと GPU パケット間の依存関係などが表示されます。

ステップ 2: ゲームが GPU 依存か、CPU 依存かを判断するため、グラフィックス・トレース・アナライザーでトレースを解析します。

ステップ 3: GPU 依存の場合は、グラフィックス・モニターでストリームをキャプチャーします。これにより、フレームの詳細が得られます。

ステップ 4: キャプチャーしたストリームやフレームをグラフィックス・フレーム・アナライザーで解析します。

ステップ 5: ゲームが CPU 依存の場合は、インテル® VTune™ プロファイラーで CPU ボトルネック解析を開始します。

開発者は通常、ゲーム内のパフォーマンスが重要な領域を把握しています。不明な場合は、FPS カウンターを表示するゲーム・エンジン・ツールを使用するか、グラフィックス・モニターのキャプチャー・ウィンドウのヘッドアップ・ディスプレイ (HUD) に内蔵されている FPS カウンターを使用できます。

まず、ゲーム内でフレームレートが低下している場所や、視覚的な忠実性を向上させたい場所を特定し、グラフィックス・モニターでキャプチャーします。その後、グラフィックス・トレース・アナライザーで GPU と CPU の動作を視覚化したデータを確認します。最大の問題がどこにあるかを特定したら、グラフィックス・フレーム・アナライザーで GPU ボトルネックの詳細を掘り下げるか、インテル® VTune™ プロファイラーで CPU ボトルネックを調査します。

ステップ 1: グラフィックス・モニターでトレースをキャプチャーする

注: グラフィックス・モニターでメトリックデータをキャプチャーするには、Windows* で開発者モードを有効にしてください。
インテル® GPA は、すべてのサードパーティー製 GPU からすべてのメトリックを収集することはできませんが、大部分のメトリックは収集できます。

グラフィックス・モニターは、インテル® GPA 解析ツールのハブツールです。グラフィックス・モニターでは、トレース・キャプチャーとストリーム・キャプチャーのオプションと設定を選択します。

グラフィックス・モニターには、トレース、ストリーム、フレームという 3 種類のキャプチャー・オプションがあります。これらのいずれかをキャプチャーすると、グラフィックス・モニターの右側にキャプチャーとキャプチャーの種類を表すアイコンが表示されます。次の 3 つの画像は、異なる3 つの種類のキャプチャーを示しています。

図 1
図 1: トレース・キャプチャー

図 2
図 2: ストリーム・キャプチャー

図 3
図 3: フレーム・キャプチャー

グラフィックス・モニターでトレースをキャプチャーすると、グラフィックス・トレース・アナライザーでトレースを開いたときに、GPU および CPU コアの時系列の状態を視覚的に確認できます。

グラフィックス・モニターでは、キャプチャー時間を秒単位で変更可能です。

図 4
図 4: グラフィックス・モニターの [Options] ボタンを選択

[Options][Trace] タブを選択します。[Trace Duration (sec)] に秒単位で設定します。トレース・キャプチャーは大きくなる可能性があるので、キャプチャー時間はなるべく短くしておくとよいでしょう。

図 5
図 5: [Trace Duration (sec)] を秒単位で変更

トレースをキャプチャーするには、次の操作を行います。

  1. ゲームの実行ファイルを選択します。
  2. 必要に応じて、コマンドライン引数を設定します。
  3. キャプチャーの種類 (ここでは Trace) を選択します。
  4. [Start] をクリックします。

図 6
図 6: トレース・キャプチャーを開始

HUD オーバーレイ付きでゲームの実行ファイルが起動されます。HUD オーバーレイには、基本メトリックと主な指標が表示されます。遅延キャプチャーを選択した場合、トレースを開始するキーが表示されます。

図 7
図 7: HUD オーバーレイ付きでゲームを実行 (キーを押すとトレースが開始されます)

次のビデオと関連記事は、グラフィックス・トレース・アナライザーで表示するトレースのキャプチャーについて説明しています。

ステップ 2: グラフィックス・トレース・アナライザーでトレースを解析してゲームが GPU 依存か CPU 依存か判断する

パフォーマンスを解析する場所を特定し、グラフィックス・モニターでトレースの種類を指定してトレースをキャプチャーしたら、次のステップに進みます。

図 8
図 8: トレースアイコンをクリックしてグラフィックス・トレース・アナライザーを起動

グラフィックス・トレース・アナライザーを起動するには、トレースアイコンをクリックします。

注: 大量のデータを読み込むため、アプリケーションの起動には数分かかる場合があります。

グラフィックス・トレース・アナライザーは、数秒間のゲームプレイからデータを収集して、CPU の実行タスク、GPU のレンダリング・パケット、CPU と GPU のアクティビティーを視覚化します。トレース・キャプチャーでは、通常、3 ~ 5 秒間のゲームプレイがキャプチャーされます。

詳細は、次のビデオと関連記事を参照してください。

グラフィックス・トレース・アナライザーでは、キャプチャーしたデータにズームインできます。図 9 と図 10 から、ゲームはこのタイムスライスでは GPU 依存であることが分かります。CPU 実行にギャップがあり (図 9)、その間 GPU は常にビジー状態です (図 10)。

図 9
図 9: CPU 実行

図 10
図 10: GPU 実行

グラフィックス・トレース・アナライザーについては、以下を参照してください。

ステップ 3: GPU 依存の場合はグラフィックス・モニターでストリームをキャプチャーする

ストリームは、1 つまたは複数のフレームからデータ (テクスチャー、バッファー、シェーダー呼び出し、ハードウェア・カウンター) をキャプチャーします。これを解析してレンダリング・パイプラインのボトルネックを見つけ、ゲームの最適化に役立てることができます。

ストリーム (またはシングルフレーム) をキャプチャーするには、グラフィックス・モニターを開きます。テクスチャー、ピクセル履歴、その他のリソースなどの詳細な GPU アクティビティーを解析するキャプチャーの種類として、ストリーム (またはフレーム) を選択します。

ゲームプレイの任意の時点で複数のストリームをキャプチャーするため、遅延ストリーム・キャプチャーを有効にしてください。そうしないと、ゲームが始まってからキャプチャー・ウィンドウを閉じるまで、キャプチャーが強制的に行われます。グラフィックス・モニターの [Options] セクションで [Defer stream capture] をオンにします。

図 11
図 11: 遅延ストリーム・キャプチャーをオンにするため [Options] をクリック

図 12
図 12: [Stream] タブを選択して [Defer stream capture] をオンにする

次のビデオと関連記事は、グラフィックス・トレース・アナライザーでフレームの詳細を表示するため、ストリームをキャプチャーする方法について説明しています。

シングルフレームのキャプチャー

ストリームのキャプチャー (推奨)

グラフィックス・モニターでストリームをキャプチャーすると、グラフィックス・フレーム・アナライザーでそれを開いてストリームの解析を開始できます。グラフィックス・フレーム・アナライザーを起動するには、グラフィックス・モニターでストリームをダブルクリックします。

図 13
図 13: キャプチャーしたストリームをグラフィックス・トレース・アナライザーのマルチフレーム・ビューで表示

ステップ 4: キャプチャーしたストリームやフレームをグラフィックス・フレーム・アナライザーで解析する

グラフィックス・モニターでストリームをキャプチャーした後、グラフィックス・フレーム・アナライザーで解析を開始します。

グラフィックス・フレーム・アナライザーでは、ストリームをマルチフレーム・ビューで開き、マルチフレーム・ストリームを視覚化できます。ここで、注目するシングルフレームを特定します。フレームを選択して開き、ドローコール・レベルまでプロファイルします。

次のビデオと記事は、グラフィックス・フレーム・アナライザーの UIに慣れるのに役立ちます。

詳細は、次のビデオの Hotspot セクションを参照してください。

Hotspot 解析では、呼び出しをタイプ別に集計できるため、最も影響が大きい、時間のかかる、または問題のある呼び出しタイプを最適化できます。タイプ別に修正することで、ゲームの複数のセクションを最適化できる場合があります。

高度なプロファイル (Hotspot) モード解析の動作は、ビデオ「『The Lost Legends of Redwall*』とインテル® グラフィックス・パフォーマンス・アナライザー」 (英語) を参照してください。ビデオでは、高度なプロファイル (Hotspot) モードでこのゲームの問題を発見し、問題に対処した結果、ゲームのパフォーマンスが 3 倍以上向上したことを紹介しています。

グラフィックス・フレーム・アナライザーの詳細は、次のリソースを参照してください。

ステップ 5: CPU 依存の場合はインテル® VTune™ プロファイラーで CPU ボトルネックを解析する

CPU 依存解析の詳細は、インテル® VTune™ プロファイラーのページ (英語) を参照してください。

関連情報

ゲームの最適化手法 (英語)
インテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) ユーザーガイド (英語)
インテル® グラフィックス・パフォーマンス・アナライザー・クックブック (英語)


製品および性能に関する情報

1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。

関連記事