私は複数の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をより簡単に無効にする必要があります。