2017年5月2日

NVIDIA Aftermath と アンリアル エンジン 4.15.2 で GPU のクラッシュを追跡する

作成 Marcus Wassmer

アンリアル エンジンのクラッシュ レポーターはクラッシュ時に貴重な情報を与えてくれます。中でも重要なのはソース コードのどの箇所でクラッシュが発生したかという情報です。このデータを使って広範囲の問題を追跡し、修正することで全体的な安定性を高めます。

GPU のクラッシュの追跡ははるかに難しいものです。これまで、グラフィック ドライバーはクラッシュ発生時にグラフィック カードが何を行っていたかを示すことはありませんでした。これは、クラッシュがソース コードのどの箇所で起きたかという CPU クラッシュ時の追跡に非常に役立つ情報に相当しますが、こうした情報がありませんでした。Direct3D デバッグ レイヤー (-d3ddebug) の有効化をユーザーに求めることもあります。GPU のクラッシュにつながる一部のバグが見つかることがあるからです。ただし、すべての問題に対応するわけではありません。

NVIDIA Aftermath は、クラッシュ時に GPU が何を行っていたかという一部の重要な情報を示します。ソース コード内の正確な場所はまだわかりませんが、例えば特定のポスト プロセス パスなど、フレーム内のどの場所でクラッシュが発生したかはわかります。

どこが問題か

4.14 Preview 1 (10 月) 頃、特定の D3D クラッシュについて沢山のレポートが届き始めましたが、対処するための適切な情報は得られませんでした。この問題はチケット、UE-42280 で追跡していました。

ここ数か月というもの問題が解決できず、何とかしなくてはという思いがありました。そこで、NVIDIA と密接に連携し、問題の把握に努めました。最近、NVIDIA は Aftermath という新技術を開発しました。これは、こうしたクラッシュの原因を追跡するのに役立つ追加情報を与えてくれます。

UnrealEngine%2Fblog%2Fhelping-us-track-down-gpu-hangs-with-nvidia-aftermath-and-4-15-2%2FAftermath_Logging-734x163-2a27ee017b7f80fea937a3d5fe08483501815f93

アンリアル エンジン 4.15.2 から NVIDIA Aftermath を統合し、GPU のクラッシュで何が起きているかを追跡するための適切な情報が得られるようになりました。エンジンのバグを修正する際に、クラッシュ レポートは非常に役立ちます。今後もクラッシュ レポートを是非サブミットしてください。クラッシュ レポートをサブミットする際は、ログ ファイルを含めるチェック ボックスを必ず有効にしてください。現在、バージョン 4.15 で作業している場合は、4.15.2 にアップグレードし、NVIDIA ドライバーを 381.89 に更新して、こうしたバグに迅速に対処できるようにしていただけたらと思います。

NVIDIA Aftermath の詳細については、https://developer.nvidia.com/nvidia-aftermath をご覧ください。