マルチGPUサポート

Eddy for Nukeは、システム内の複数のGPUを利用して、シミュレーションとレンダリングの両方のタスクを、単一のEddyプロセスから使用可能なGPUデバイス全体に分散できます。

必要条件

一緒に使用されるGPUデバイスは、ピア・ツー・ピア(P2P)通信に対応している必要があります。 P2Pを利用できるようにするには、いくつかの要件があります。

  • GPUは同じアーキテクチャ世代のものである必要があります。同一のGPUを使用することをお勧めします。
  • GPUは同じPCIeルートコンプレックスに接続する必要があります。これは通常、デュアルCPUソケットのマザーボードを使用している場合にのみ発生します。
  • GPU間のNVLinkブリッジは必須ではありませんが、利用できる場合は特にシミュレーションでのパフォーマンスが向上します。

Windowsの場合、追加の要件があります。

  • GPUデバイスはTCCモードになっている必要があります。 TCCモードのデバイスはディスプレイ出力には使用できず、完全に演算専用です。すべてのカードがTCCモードに対応しているわけではありません。一般に、QuadroTesla、およびGeForce Titan GPUでのみ利用可能です。

ご注意

デバイスのドライバをTCCモードに変更するには、「nvidia-smi -g 0 -dm 1」コマンドを使用します。0GPUIDに置き換えます。

 

マルチGPUサポートを有効にする

自動選択

Eddy for Nukeが起動すると、システム内で最も速いGPUを自動的に選択します。複数のGPUがある場合でも、それらは自動的には有効になりません。以下に説明するように、それらを手動で選択する必要があります。コンソールウィンドウには、どのGPUが選択されているか、そしてどのGPUが非アクティブかが表示されます。

手動でのデバイスの選択

自動選択が希望するデバイスを選択していない場合は、EDDY_DEVICE_LIST環境変数を使用して、Eddyが使用するGPUを明示的に選択できます。これは、デバイスIDのコンマ区切りリストに設定できます。たとえば、EDDY_DEVICE_LIST = 0,2を使用して、デバイス02を有効にします。利便性のために、起動中はコンソールウィンドウにデバイスIDが非アクティブデバイスのIDを含めて表示されます。

ご注意

環境変数CUDA_VISIBLE_DEVICESを使用して使用するデバイスを指定することもできます。ただし、これはEddy for Nukeだけでなく、すべてのCUDA対応アプリケーションに影響することに注意してください。また、Eddyから見るデバイスIDも変更されるため、CUDA_VISIBLE_DEVICESよりEDDY_DEVICE_LISTを使用することをお勧めします。


パフォーマンス

有効化したマルチGPUを使用すると、レンダリングパフォーマンスはほぼ直線的な割合での向上が期待できます。

シミュレーションのパフォーマンスは、一般的に、シミュレーションが十分に大きくなったときに初めて向上します。経験則として、シミュレーションに1フレームあたり数秒かかる場合は、マルチGPUでパフォーマンスが向上します。これより速いシミュレーションは、マルチGPUから利益を得られないかもしれません。