メモリ構成(これは高度なユーザーのためのものです。誤った設定は、パフォーマンスの低下につながります。03:43メモリ構成(これは高度なユーザーのためのものです。誤った設定は、パフォーマンスの低下につながります。)■GeneralRedshiftは、ポイントベースのGI、柔軟なシェーダーグラフ、アウトオブコアテクスチャリングやアウトオブコアジオメトリなどの市場の他のGPUレンダラーがサポートしていない機能をサポートします。これらの機能がほとんどのCPUバイアスレンダラーでサポートされているいますが、それらを効率的かつ予測可能にGPUで動作させることは重要な課題でした。GPUプログラムの課題の1つは、メモリ管理です。手元には主に2つの問題があります。GPUにはメモリリソースが限られています。第2に、GPUメモリを動的に割り当てるための堅牢な方法はありません。このため、Redshiftは、各フレームの始めに定義されている既知の制限内で動作するように、異なるモジュール間で空きGPUメモリを分割する必要があります。多くのCPUレンダラも同様の種類のメモリパーティショニングを行います。他のレンダラーが「ダイナミックジオメトリメモリ」や「テクスチャキャッシュ」などを参照しているのを見たことがあります。最初のものはシーンのポリゴンを保持し、2番目のものはテクスチャを保持します。Redshiftは、それぞれポリゴンとテクスチャに「ジオメトリメモリ」と「テクスチャキャッシュ」も使用します。従来、Redshiftはレイのメモリを割り当てる必要がありました。GPUは大規模並列プロセッサなので、Redshiftは常にレイリスト(「ワークロード」)を作成し、GPUにディスパッチします。GPUに送る光線が増えるほど、性能は向上します。GIを使用する1920×1080のシーンでは、最低21億本の光線を放出する必要があります。アンチエイリアシング、シャドウ、被写界深度などに必要な余分な光線も含まれていません。これらの光線をすべてメモリに保存することは、あまりにも多くのメモリを必要とするため不可能です。これらのパーツを個別に提出することができます。この方法では、単一のパーツでGPUに十分なメモリが必要です。Pointクラウドなどの特定の手法では、中間点を格納するための計算ステージで余分なメモリが必要です。これらのステージで生成されるポイント数は事前に分かっていないため、メモリの予算を確保する必要があります。Redshiftの現在のバージョンではこれらのメモリバッファが自動的に調整されないため、これらのステージで発生するポイントが多すぎるとレンダリングが中止され、メモリオプションに移動してこれらの制限を増やす必要があります。将来、Redshiftはこれらの状況で自動的にメモリを再構成し、そうする必要はありません。■メモリーはどのように分割されるのか高レベルの観点から、レンダラーがメモリを割り当てるために必要なステップは次のとおりです。■フィードバックディスプレイRedshiftでフレームをレンダーする時に、ウィンドウはどのくらいのメモリが各モジュールに割り当てられるのかという情報が含まれるウィンドウをポップアップすることができます。ウィンドウはMayaでこのような感じです。下は、それぞれの数字が何を意味しているか説明します。Free「空き」メモリは、フレーム開始時にRedshiftがレンダリングに利用可能なGPUメモリの量をレポート。この数字はビデオカードの全利用可能なメモリに近いはずです。Redshiftは、ビデオカードの実際の空きメモリの90%を使用しようとします。したがって、この数字は、既知のVRAMサイズよりも低くなります。Windowsと3Dモデリングパッケージでは、そのメモリの一部も使用しています。ジオメトリアクセス用のPCIe転送する必要があるメモリを報告します。角括弧内の数字はジオメトリキャッシュの合計サイズです。Texturesアウトオブコアテクスチャクセス用のPCIe転送する必要があるメモリを報告します。角括弧内の数字はテクスチャキャッ巣の合計サイズです。Matricesシーン内の各オブジェクトには、インスタンス化、モーションブラー、テクスチャ変換などのさまざまな操作に使用できる変換行列があります。この数値は、これらの行列のメモリサイズをレポートします。シーンに非常に多数のオブジェクト(数十万または数百万)が含まれている場合や、モーションブラーの変換ステップを多数使用している場合は、この数値が大きくなる可能性があります。Spritesスプライトノードによって使用されるテクスチャデータは別々に格納され、コア内にあります。この数値は、スプライトノードテクスチャに使用されるサイズを報告します。Raysレイトレーシングに必要なメモリ(レイキュー)。Pointsシーンでサブサーフェーススキャッタリングシェーダーを使用している場合、この数字はサブサーフェーススキャッタリングポイントとその加速階層構造に使用されたメモリをレポート下の章では、このウィンドウに含まれる数字からいくつかの使用例を説明します。■メモリオプションRedshiftレンダリングオプションには、「Memory」タブがあり、GPUメモリ関連オプションを全て含みます。計算中に「作業中の」メモリです。既定64MBは数十万ポイントを保持することが可能です。cache計算中に「作業中の」メモリです。既定64MBは数十万ポイントを保持することが可能です。Size予約されたメモリとレイが空きメモリから差し引かれると、残りはジオメトリ(ポリゴン)とテクスチャキャッシュ(テクスチャ)に分割されます。「Percentage」パラメータは、テクスチャリングに使用できる空きメモリの割合をレンダラに示します。例:2GBのビデオカードを使用していて、予約済みのバッファとレイの後に1.7GB残っているとします。テクスチャキャッシュ用既定15%は、その1.7GBの最大で15%、すなわち、約255MBを使用可能なことを意味します。言い換えると1GBのビデオカードを使用していて、バッファとレイを予約後に700MB残っていると、テクスチャキャッシュは最大105MB(700MBの15%0)になるかも知れません。Siz」オプションを使用して更に数字を制限することができます。これは空きメモリの多いビデオカードで便利です。6GBのQuadroを使用していると、バッファとレイで予約されたあと、5.7GBが空きです。この15%は855MBになります。Size」オプションがないと、いつも使用しているビデオカードに依存している「Percentage」オプションを修正しなければいけません。“Maximum”)を使うと、多くの空きメモリがあるビデオカードにメモリを浪費することなく、意味のあるパーセンテージを指定できます。やって/いつこのパラメータを修正すべきを後ほど説明します。Memoryこの設定を0のままにする場合、Redshiftはシェーダー構成に依存した数のMBを既定で使用するかもしれません。シーンにポリゴンという点で非常に軽いか、または、空き容量が多いビデオカードを使用している場合は、レイの予算を指定してレンダリングのパフォーマンスを向上させることができます。これについては以下のセクションで説明します。Cache予約メモリこれらの数値を変更する必要があるのは、次のようなメッセージが表示された場合のみです。options(IrradianceキャッシュポイントがVRAMに収まりません。フレームが中止されました。VRAMに収まりません。フレームが中止されました。メモリの予算を増やしてください。qualityパラメータをを変更することができない(または望ましくない)場合は、メモリを64MBから100MBに増やすことができます。GIを使用することをお勧めします。Display」ウィンドウがポップアップするはずです。このウィンドウには、個々のモジュールに割り当てられるメモリの量に関する有益な情報が含まれています。これらのエントリの1つが「テクスチャ」です。この数字は、テクスチャリングのためにCPUがPCIeバス経由でGPUに送信しなければならなかったMBを報告します。KB[128MB]”のようなものかもしれません。これは、「あなたのテクスチャキャッシュは128MBで、それまではデータをアップロードしていません」ということです。Redshiftは、ギガバイトのテクスチャデータを含むシーンを正常にレンダリングできます。これは、テクスチャキャッシュをリサイクルすることで達成できます(この場合128MB)。テクスチャ全体の代わりに必要なテクスチャの部分だけをアップロードします。そのため、テクスチャが遠く離れている場合は、より低い解像度のテクスチャ(これらは「MIPマップ」と呼ばれます)とそのMIPマップの特定のタイルのみが使用されます。メモリをリサイクルするこの方法のおかげで、PCIeで転送された図形がテクスチャキャッシュのサイズよりも大きくなることがあります(大括弧で示されています)。ほとんどの場合は大丈夫です。ここで数メガバイトを再アップロードすると、通常は問題はありません。「アップロード済み」の数が非常に高速になり、数百メガバイトまたはギガバイトにすばやく移行する場合は、テクスチャキャッシュが小さすぎて増加する必要があるかもしれません。そのような場合は、1つまたは2つのことをする必要があります:最初に「最大テクスチャキャッシュサイズ」を増やしてみてください。デフォルトは128MBです。テストとして256MBを試してみてください。実行して、フィードバックウィンドウに表示された数値が256MBにならない場合は、「テクスチャキャッシュに使用される空きメモリの割合」を増やす必要があります。平均して、Redshiftは、60MBのメモリにつき約1百万の三角形に適合することができます(単一UVチャネルと頂点あたりの接線空間を含むメッシュの典型的な例)。これは、数百万の三角形を持つシーンでさえ、いくらかのメモリを空けたままにすることができることを意味します(ジオメトリには使用されません)。そのメモリは、前に説明したように、RedshiftがGPUに提供する作業の数を減らし、場合によってはパフォーマンスを向上させるのに役立ちます。シーンのジオメトリがGPUメモリを十分に活用していないかどうかを判断するのは簡単です。“ジオメトリ”エントリを見るだけです。テクスチャキャッシュと同様に、ジオメトリのメモリはリサイクルされます。シーンがシンプルであれば(フレームをレンダリングした後で)、PCIe転送されたメモリがジオメトリキャッシュサイズ(角カッコで示されている)よりも大幅に低くなることがわかります。[400MB]“のようになります。この例では、300MBを使用してRaysに割り当て直すことができます。“Rays”に表示されます。「Rays:300MB」のようなものがあります。Memory(レイ予約済みメモリ)」を作ることができます。レイが使用している300MBに対して、ジオメトリが使用していない300MBを追加してください。サポートまでお問い合わせ下さい。