ヒント: VRAM に関する問題が発生した場合は、まずコンピュータを再起動し、他のアプリケーションを起動せずにレンダリングを再実行してください。ブラウザや After Effects など、一部のアプリケーションは VRAM を「予約」してしまい、Redshift が利用できなくなる場合があります。また、同じ GPU(レンダリングに使用する GPU)に複数のモニターを接続している場合は、モニターを 1 台のみにしてテストするか、可能であればモニターを別の GPU(レンダリングに使用しない GPU)に接続してみてください。
DCC のレンダリング環境設定パネルにある 「COMPUTE DEVICES」 セクション(以下の Cinema 4D の例を参照)では、レンダリングに使用する GPU を選択できます。ここには CPU のチェックボックスもあり、CPU をレンダリングに参加させることも可能です。(ヒント: CPU レンダリングは GPU より遅いため、無効化した方が効率的な場合があります。高速な GPU が、CPU バケットの処理完了を待たされることで全体のレンダリングが遅くなるケースがあるためです。)
複数の GPU を搭載している場合、1 枚を無効化すれば、その GPU はレンダリングに参加せず、システムの他の VRAM 要求処理に専念できます。(ヒント: 複数 GPU を利用している場合、1 枚のみを有効化してレンダリングを行い、他の GPU をシステム用に割り当てた方が、すべての GPU を同時に使用するよりも高速に処理できる場合があります。)
Level 1 - 利用可能な VRAM(ハードウェアレベル)
Redshift のログファイル冒頭にある “Initializing GPUComputing Module (CUDA)” セクションには、GPU の総 VRAM 容量(ハードウェアレベル)と、OS が予約した分を差し引いた残りの VRAM が表示されます。
(Redshift のログファイルの確認方法については以下を参照してください:
https://support.maxon.net/hc/en-us/articles/16868674965788-Step-by-Step-Finding-Your-Redshift-Log-File )
以下の例では、GPU の総 VRAM は 8181MB で、OS による予約を差し引いた結果、利用可能な VRAM は 7171MB となっています。
このマシンには 2 枚の GPU が搭載されているため、GPU 1(赤字の A)および GPU 2(赤字の B)の両方が表示されています。
Level 2 - 残りの VRAM
(ソフトウェアやモニターによる使用分を差し引いた値)
ここでの残りの VRAM とは、現在の 3D アプリケーション、他のアプリケーション、モニター等による使用分を差し引いた後の値を指します
“Rendering blocks …” セクションには、さらに詳細な VRAM 情報が記録されています。
7171MB の VRAM のうち、Redshift が実際に利用できるのはその全てではありません。3D アプリケーションやモニターなどに割り当てられる分があるためです。CUDA(GPU ドライバ)が Redshift に対し「利用可能」と報告する値がここで使用されます。
ログファイルには必ず “Redshift can use up to …” という記載が含まれています。
以下の例では、レンダリングエンジンは GTX 1070 と GTX 1050 Ti の 2 枚の GPU を使用しています。
1 枚目の GPU では最大 6056 MB の VRAM を使用可能
2 枚目の GPU では最大 2283 MB の VRAM を使用可能
これらの数値は、ドライバが報告した利用可能 VRAM であり、すでにアプリケーションやモニターによる使用分が差し引かれています。
したがって、このログから Redshift が 1 枚目の GPU で最大 6056 MB、2 枚目の GPU で最大 2283 MB を使用できることがわかります。
Level 3 - Redshift が確保・使用する VRAM
(デフォルトでは利用可能 VRAM の 90%)
利用可能と報告された VRAM のうち、Redshift はデフォルトで最大 90% を確保してレンダリングに使用し、残りをシステム用に残します。上記の例では、1 枚目の GPU で 695 MB、2 枚目の GPU で 317 MB がシステムに残されます。これは CUDA が報告した利用可能 VRAM の 90% を Redshift が確保した後に残った容量です。
メモリ使用率はデフォルトで 90% に設定されていますが、レンダリング設定で変更可能です。
VRAM に関する問題が発生する場合は、この設定を 90% から 70% に下げることを推奨します。以下の図に設定箇所が示されています。
アウト・オブ・コア(Out of Core)
レンダリングに必要な VRAM が Redshift で使用可能な容量を超える場合、処理は Out of Core(アウト・オブ・コア) モードに移行し、システム RAM を利用して継続されます。処理は可能ですが、速度は低下します。
ログファイルの “statistics” セクションには GPU メモリの情報が常に記録されます。
以下の例では、A > B の場合、レンダリングタスクが Out of Core に移行したことを示します。
例 1:Out of Core ではないケース
例 2:Out of Core に移行したケース(ログで A > B)
まとめ: VRAM が不足すると、Redshift はデータをシステム RAM にスワップし、処理を続行します。速度は低下しますがレンダリングは可能です。これを Out of Core(OoC)と呼びます。ただし、VDB ボリュームなど一部のデータは OoC に対応していません。このような場合、ログに VRAM エラーが出力されます。
ヒント: テクスチャが原因で OoC になる場合は、16K テクスチャの代わりに 4K テクスチャを使用することを検討してください。特に UDIM を使用する場合、テクスチャ数が急速に増えるため注意が必要です。
オブジェクトは一度テッセレーション(細分化)されるとキャッシュに保持されます。ただし画面ベースの細分化ではフレームごとに再計算されます。この場合、そのフレーム内でキャッシュされますが毎回再構築されます。RV ではテッセレーションを固定できますが、最終レンダリングでは固定できません。
また、8bit テクスチャを 32bit で保存しても画質が向上することはありません。
可能な限りインスタンスを使用してください。プロキシの場合、コピーは元のプロキシと同じ量の VRAM を消費しますが、インスタンスであればほとんど VRAM を消費しません。
VRAM エラー
以下のような VRAM エラーが表示される場合があります:
Redshift cannot operate with less than 256MB of free VRAM. Frame rendering aborted.
There is less than 128MB of free VRAM once fixed data and minimal ray memory are considered.
Redshift は Out of Core レンダリングをサポートしていますが、動作に必要な最低限の VRAM は確保されている必要があります。上記のメッセージは、必要最小限の VRAM が確保できなかったためにレンダリングが中止されたことを意味します。
これらの VRAM 不足エラーは、主に VRAM 容量が少ない GPU で発生します。
前述のとおり、ジオメトリやテクスチャのように OoC に移行できないデータも存在します。VDB ボリューム、Irradiance Cache(IC)、Irradiance ポイントクラウドデータは OoC に対応していません。これらに十分な VRAM がない場合、Redshift はエラーを返します。
ただし、Irradiance Cache および Irradiance ポイントクラウドデータについては、レンダリング設定のメモリセクションで Redshift により多くの VRAM を予約させることが可能です。
NVLink
同一モデルの GPU を 2 枚使用している場合、NVLink を利用することで利用可能な VRAM を倍増できます。
参考情報
VRAM 不足に関する詳細については、以下を参照してください:
https://help.maxon.net/r3d/cinema/en-us/#html/Dealing+with+Out-Of-VRAM+situations.html#DealingwithOutOfVRAMsituations-SLI
コメント
0件のコメント
サインインしてコメントを残してください。