お世話になっております。
<br/>
実行中のプロジェクトにおいて、GPUメモリ(VRAM)、CPU、システムメモリ(RAM)の使用量を確認する方法についていくつの質問があります。
<br/>
1.実行中のプロジェクトのGPUメモリ(VRAM)使用量を”stat rhi”コマンドで確認する際、実際の使用量を示すのはどれでしょうか?(”stat rhi”コマンドの出力内容を添付しました)
<br/>
2.”レンダリングリソースビュア”の”総リソースサイズ”で現在実行中のプロジェクトのGPUメモリ(VRAM)使用量を確認できますか?”総リソースサイズ”と”stat rhi”コマンドの出力内容どちらを参考すべきでしょうか?
<br/>
3.パッケージ化したプロジェクトの実行中のGPUメモリ(VRAM)、CPU、メモリ使用量を確認する方法は何でしょうか?
<br/>
以上です、よろしくお願いします。
お世話になっております。
ご質問についてまとめますと、各内容は以下の場所でご確認頂くことができます。
コンソールコマンド “stat d3d12resources” の “Total” で総使用量を表示することができます。“stat d3d12memorydetails” は"stat d3d12resources" のより詳細を表示するコマンドで更に細かい単位での表示を示します。RHIスレッドでのリソース別メモリは “rhi.DumpResourceMemory all -csv” コマンドで確認が可能です。
CPUの使用量というものがどの値を想定なされているか正しく把握できているか分かりませんが、CPU使用率というものであればPCのタスクマネージャを開いて、CPUの項目からリソースモニターを開くと、アプリケーション単体でのCPU使用率を調べる事ができます。ここで示す内容はエンジン側のコンソールコマンド等では確認することができません。
コンソールコマンド “stat MemoryPlatform” の "Used Physical " でメモリ使用量を表示・確認することができます。
どうぞ、よろしくお願いします。
1.Windowsタスクマネージャーで、UEプロジェクト単体が消費しているVRAMを確認する一番正確な方法は何でしょうか?
タスクマネージャの場合は パフォーマンス->GPU->専用GPUメモリ使用量/共有GPUメモリの使用量 を確認するのが VRAMの使用量を確認する方法ですが、これはUEのプロセス以外のPC上で動作する全てのプロセスが含まれます。UEプロセスだけを確認することはできないため、他のプロセスを終了した状態で確認して頂くことになります。UEプロセスのみにフォーカスする場合は、上記で示しましたstatsの値をご確認頂くことになります。
2.プロジェクト実行中、ハードウェアのVRAM総量を超えないために、プロジェクト設計や運用で気を付けるべきポイントは何でしょうか。おすすめの監視・負荷テスト方法などがあれば教えていただきたいです。
実装する際に気を付けるべきことは、不必要に高解像度なテクスチャ(4K、8K)を避けることや、必要に応じてMipmapを活用すること、Virtual Texture(仮想テクスチャ)を利用すること、同時に読み込まれるアセット量を減らし必要なリソースのみをロードすること、LODを設定して距離に応じてポリゴン数を減らすことなどが挙げられます。
監視、負荷テストについては、現状あまり良い方法がご提案できないですが、監視については CsvProfiler を使用して GPUMem タグの情報を監視して頂くと良いかと思います。ただしこの情報は正確なVRAM情報ではなく、あくまでCPU側のRHIで検出する値のため正確ではありません。負荷テストについては上記VRAMを超えないようにするための工夫における内容の逆のことを行うと、VRAMの負荷が上昇するのでテストができるかと思います。
お世話になっております。
ご返答ありがとうございます。
以前にもVRAM確認方法についてご質問させていただきましたが、追加で具体的に教えていただきたい点があります。
1.Windowsタスクマネージャーで、UEプロジェクト単体が消費しているVRAMを確認する一番正確な方法は何でしょうか?
2.プロジェクト実行中、ハードウェアのVRAM総量を超えないために、プロジェクト設計や運用で気を付けるべきポイントは何でしょうか。おすすめの監視・負荷テスト方法などがあれば教えていただきたいです。
以上です、よろしくお願いします。