Unreal Engine* でビルドしたゲームのプロファイル

インテル® VTune™ プロファイラーゲーム

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


バージョン: 2023
更新日: 2022年12月16日

このレシピでは、Unreal Engine* でビルドしたゲームをプロファイルする方法を紹介します。Unreal Engine* 環境でインテル® VTune™ プロファイラーを実行し、ゲームをプロファイルします。

多くの場合、ゲームのパフォーマンスに影響を与える最も重要な要因は、フレームレートです。フレームレートとは、GPU がゲーム・グラフィックスをレンダリングする速度のことです。しかし、CPU もまた、以下のような要因により、ゲームのパフォーマンスに影響を与えることがあります。

  • GPU へのデータ転送が遅い
  • コストがかかるまたは不要な演算
  • 並列性の欠如

Unreal Engine* (UE) を使用するゲームでは、最適化の多くは Unreal* エディターで行われます。そのため、Unreal Engine* で定義されたタスクのパフォーマンスを理解することが重要です。Unreal Engine* 4.19 以降では、インテル® VTune™ プロファイラーのインストルメンテーションおよびトレーシング・テクノロジー (ITT) API (英語) が Unreal* エディターに組み込まれています。このレシピでは、インテル® VTune™ プロファイラーを実行して、Unreal* エディターで Unreal Engine* タスクに注目する方法を説明します。

コンテンツ・エキスパート: Jennifer Dimatteo (英語)

使用するもの

以下は、このパフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。

  • アプリケーション: Unreal Engine* 4.25.4。このバージョンの Unreal Engine* のサンプルゲームは Action RPG Game (英語) です。
  • ツール: インテル® VTune™ プロファイラー 2022 – ホットスポット解析 (ユーザーモード・サンプリングを使用)。

    注:
    • バージョン 2020 から、インテル® VTune™ Amplifier の名称がインテル® VTune™ プロファイラーに変わりました。
    • インテル® VTune™ プロファイラー・パフォーマンス解析クックブックの大部分のレシピは、異なるバージョンのインテル® VTune™ プロファイラーにも適用できます。バージョンにより、調整が必要になる場合があります。
    • 最新バージョンのインテル® VTune™ プロファイラーは以下から入手できます。
  • CPU/GPU: インテル® Iris® Xe MAX グラフィックス搭載第 11 世代インテル® Core™ i7-1165G7 CPU @ 2.80GHz
  • オペレーティング・システム: Windows* 11 Enterprise (Pro 版との違い)

Unreal Engine* エディターでゲームをビルドする

  1. Unreal Engine* エディターでゲームを開きます。

    Unreal Engine* エディターでゲームをビルドする

  2. ゲームをビルドします。[Development] ビルド構成 [Include Debug Files] オプションを選択します。

    Unreal Engine* の設定オプション

インテル® VTune™ プロファイラーを設定してホットスポット解析を実行する

  1. インテル® VTune™ プロファイラーを起動して、[Welcome (ようこそ)] ページで [New Project (新規プロジェクト)] をクリックします。
  2. プロジェクトの名前と場所を指定します。
  3. [Create Project (プロジェクトの作成)] をクリックします。
  4. [Configure Analysis (解析の設定)] ウィンドウで以下のオプションを設定します。
    • [WHERE (どこを)] ペインでは、[Local Host (ローカルホスト)] ターゲット・システム・タイプを選択します。
    • [WHAT (何を)] ペインの [Application (アプリケーション)] フィールドで、ゲームの実行ファイルのパスを指定します。
    • [Application parameters (アプリケーションのパラメーター)] フィールドに、「-VTune」を入力します。

    [Advanced (詳細)] オプションを設定する

  5. (オプション) ゲームの起動/ロード段階のプロファイルをスキップする場合、以下のオプションを設定します。
    • [WHAT (何を)] ペインで [Advanced (詳細)] セクションを開きます。
    • [Limit collected data by: (収集データを制限)][Time from collection end, sec (収集終了からの時間)] に値 (秒単位) を設定します。これは、インテル® VTune™ プロファイラーが結果を保持すべき、収集終了までの時間 (秒) です。これ以前に収集されたデータは破棄されます。

    [Advanced (詳細)] 設定オプション

  6. [HOW (どのように)] ペインで [Hotspots (ホットスポット)] 解析タイプを選択し、ユーザーモード・サンプリングをオンにします。
  7. [Start (開始)] をクリックして、解析を開始します。

ホットスポット解析を設定する

注:
ステップ 5 で [Automatically resume collection after (指定時間後に収集を自動再開)] オプションを設定した場合は、[Start Paused (ポーズして開始)] ボタン () のみ利用できます。

結果を確認する

データ収集が完了すると、インテル® VTune™ プロファイラーは結果をファイナライズします。インテル® VTune™ プロファイラーはデバッグシンボルを検出して解決するため、この処理には数分かかることがあります。

結果がファイナライズされると、[Summary (サマリー)] タブに以下の情報が表示されます。

  • Elapsed time (経過時間)
  • Top hotspots (上位のホットスポット)
  • 上位の Unreal Engine* タスク
  • その他の情報とガイダンス

Unreal Engine* ゲームのホットスポットの [Summary (サマリー)] タブ

[Bottom-up (ボトムアップ)] ウィンドウに切り替えると、関数のリストが表示されます。デフォルトでは、CPU 時間の降順でソートされます。

グループ化を [Function/Call Stack (関数/コールスタック)] から [Task Domain/Task Type/Function/Call Stack (タスクドメイン/タスクタイプ/関数/コールスタック)] に変更し、インテル® VTune™ プロファイラーのインストルメンテーションおよびトレーシング・テクノロジー (ITT) API で識別された Unreal Engine* タスクに注目します。

[Task Domain/Task Type/Function/Call Stack (タスクドメイン/タスクタイプ/関数/コールスタック)] でグループ化された Unreal Engine* タスク

この例では、Render スレッドと Game スレッドでかなりのスピン時間があります。また、全体の CPU 利用率の約半分は、スピン、つまりリソースのリターンを待機しています。

CPU 利用率ヒストグラム ([Summary (サマリー)] タブ) から重要なことが分かります。このゲームは 100 個以上のスレッドを実行していますが、実行の大部分において、1 つの CPU しか使用していないか、ほとんどアイドル状態です。

このことから、大量のスピンがパフォーマンス低下につながっているかの特定を試みることができます。また、CPU 利用率を向上する方法を検討することもできます。一般に、ゲームがハードウェア・リソースをフルに消費することはないと考えられますが、このシステムにはより多くの並列処理を行うことができます。

ホットスポットの詳細は、[Flame Graph (フレームグラフ)] ビューを開いて、トップダウンのコールスタックのグラフィック表現で確認できます。

[Flame Graph (フレームグラフ)] ビュー

関連情報

iSUS ではインテル® VTune™ プロファイラーの日本語化パッケージを提供しています。この機会にぜひご利用ください。

インテル® VTune™ プロファイラー・パフォーマンス解析クックブックのトップに戻る


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

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

タイトルとURLをコピーしました