この記事は、インテル® デベロッパー・ゾーンに公開されている「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* エディターでゲームをビルドする
- Unreal Engine* エディターでゲームを開きます。
- ゲームをビルドします。[Development] ビルド構成 [Include Debug Files] オプションを選択します。
インテル® VTune™ プロファイラーを設定してホットスポット解析を実行する
- インテル® VTune™ プロファイラーを起動して、[Welcome (ようこそ)] ページで [New Project (新規プロジェクト)] をクリックします。
- プロジェクトの名前と場所を指定します。
- [Create Project (プロジェクトの作成)] をクリックします。
- [Configure Analysis (解析の設定)] ウィンドウで以下のオプションを設定します。
- [WHERE (どこを)] ペインでは、[Local Host (ローカルホスト)] ターゲット・システム・タイプを選択します。
- [WHAT (何を)] ペインの [Application (アプリケーション)] フィールドで、ゲームの実行ファイルのパスを指定します。
- [Application parameters (アプリケーションのパラメーター)] フィールドに、「-VTune」を入力します。
- (オプション) ゲームの起動/ロード段階のプロファイルをスキップする場合、以下のオプションを設定します。
- [WHAT (何を)] ペインで [Advanced (詳細)] セクションを開きます。
- [Limit collected data by: (収集データを制限)] で [Time from collection end, sec (収集終了からの時間)] に値 (秒単位) を設定します。これは、インテル® VTune™ プロファイラーが結果を保持すべき、収集終了までの時間 (秒) です。これ以前に収集されたデータは破棄されます。
- [HOW (どのように)] ペインで [Hotspots (ホットスポット)] 解析タイプを選択し、ユーザーモード・サンプリングをオンにします。
- [Start (開始)] をクリックして、解析を開始します。
注:
ステップ 5 で [Automatically resume collection after (指定時間後に収集を自動再開)] オプションを設定した場合は、[Start Paused (ポーズして開始)] ボタン () のみ利用できます。
結果を確認する
データ収集が完了すると、インテル® VTune™ プロファイラーは結果をファイナライズします。インテル® VTune™ プロファイラーはデバッグシンボルを検出して解決するため、この処理には数分かかることがあります。
結果がファイナライズされると、[Summary (サマリー)] タブに以下の情報が表示されます。
- Elapsed time (経過時間)
- Top hotspots (上位のホットスポット)
- 上位の Unreal Engine* タスク
- その他の情報とガイダンス
[Bottom-up (ボトムアップ)] ウィンドウに切り替えると、関数のリストが表示されます。デフォルトでは、CPU 時間の降順でソートされます。
グループ化を [Function/Call Stack (関数/コールスタック)] から [Task Domain/Task Type/Function/Call Stack (タスクドメイン/タスクタイプ/関数/コールスタック)] に変更し、インテル® VTune™ プロファイラーのインストルメンテーションおよびトレーシング・テクノロジー (ITT) API で識別された Unreal Engine* タスクに注目します。
この例では、Render スレッドと Game スレッドでかなりのスピン時間があります。また、全体の CPU 利用率の約半分は、スピン、つまりリソースのリターンを待機しています。
CPU 利用率ヒストグラム ([Summary (サマリー)] タブ) から重要なことが分かります。このゲームは 100 個以上のスレッドを実行していますが、実行の大部分において、1 つの CPU しか使用していないか、ほとんどアイドル状態です。
このことから、大量のスピンがパフォーマンス低下につながっているかの特定を試みることができます。また、CPU 利用率を向上する方法を検討することもできます。一般に、ゲームがハードウェア・リソースをフルに消費することはないと考えられますが、このシステムにはより多くの並列処理を行うことができます。
ホットスポットの詳細は、[Flame Graph (フレームグラフ)] ビューを開いて、トップダウンのコールスタックのグラフィック表現で確認できます。
関連情報
- フレームグラフを使用してホットなコードパスを解析する (英語)
- CPU 利用率の問題のホットスポット解析 (英語)
- インテル® VTune™ プロファイラーで CPU パフォーマンスを向上 (英語)
- インテルのゲーム・チューニング・ツール
iSUS ではインテル® VTune™ プロファイラーの日本語化パッケージを提供しています。この機会にぜひご利用ください。
インテル® VTune™ プロファイラー・パフォーマンス解析クックブックのトップに戻る
製品および性能に関する情報
1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。