NVIDIA GPUのいずれかを無効にしてから再度有効にするにはどうすればよいですか?

NVIDIA GPUのいずれかを無効にしてから再度有効にするにはどうすればよいですか?

私は複数のNVIDIA GPUを使用するシステムを開発しています。後で再度有効にするために、GPUの1つを無効/消去したいと思います。

可能ですか?

メモ:

  • rootアクセス権があるとします(デバイスファイル特権を持つユーザーにとっては、rootではなく解決策が優れていますが)。
  • 重要な場合、ディストリビューションは SLES 12 または SLES 15 です。理由は聞かないでください。 :-(

答え1

障害がある:

次のコードはGPUを無効にして、見つかったCUDAデバイスのリストに含まれないように見えないようにします(そしてデバイスインデックスも占有しません)。

nvidia-smi -i 0000:xx:00.0 -pm 0
nvidia-smi drain -p 0000:xx:00.0 -m 1

ここで、xx は GPU の PCI デバイス ID です。またはを使用してlspci | grep NVIDIAを決定できますnvidia-smi

lspci上記のコマンドを実行した後も、デバイスは引き続き表示されます。

再起動:

nvidia-smi drain -p 0000:xx:00.0 -m 0

これでデバイスが表示されます。

このアプローチの問題

  • ルートでない場合、またはまだ説明できない場合は失敗する可能性があります。
  • これを行うときに、GPUを積極的に使用するプロセスに何が起こるのかは調査されていません。
  • 文法はバロックで混乱しています。 NVIDIA - 残念ながら、GPUをより簡単に無効にする必要があります。

関連情報