多くのノードを持つクラスターで作業しており、各ノードには 2 つの gpu があります。クラスタで、「nvidia-smi」を起動してどのデバイスがビジーかを確認できません。私のコードは、機能の観点から (cudaChooseDevice を使用して) 最適なデバイスを選択しますが、クラスターが 2 つの異なるジョブに同じノードを割り当てると、同じ GPU で 2 つのタスクが実行されます。
私の質問は: デバイスがビジーかどうかを実行時に確認する方法はありますか?
ありがとう
多くのノードを持つクラスターで作業しており、各ノードには 2 つの gpu があります。クラスタで、「nvidia-smi」を起動してどのデバイスがビジーかを確認できません。私のコードは、機能の観点から (cudaChooseDevice を使用して) 最適なデバイスを選択しますが、クラスターが 2 つの異なるジョブに同じノードを割り当てると、同じ GPU で 2 つのタスクが実行されます。
私の質問は: デバイスがビジーかどうかを実行時に確認する方法はありますか?
ありがとう
クラスタ マネージャは、CPU やメモリと同様に GPU の割り当てと追跡を可能にするクラスタ管理 (ジョブ スケジューリング) ソフトウェアをインストールして使用する必要があります。これを実行できるジョブ スケジューラは多数あります。ジョブ スケジューラで明示的な GPU サポートがなくても、GPU を適切に割り当てるジョブ エントリ/終了スクリプトを作成することができます。
アプリケーションにNVMLnvidia-smi
を埋め込むことで、 と同じ機能を効果的に組み込むことができます。nvidia-smi によって報告されたクエリまたはデータ項目は、NVML を介してプログラムでアクセスできます。
を使用してビジー状態のデバイスをチェックし、ビジーでないデバイスを選択するジョブのスクリプトを起動できなかった理由も明確ではありませんnvidia-smi
。
ただし、実行する可能性のある実行時チェックは、他のアプリケーションの動作の影響を受けることに注意してください。それらのアプリケーション (あなたまたは他のユーザーによって起動されたもの) に異常な動作がある場合、実行時チェックは簡単に無効になる可能性があります。