Linux
如何禁用(然後重新啟用)我的一個 NVIDIA GPU?
我正在開發具有多個 NVIDIA GPU 的系統。我想禁用/使我的其中一個 GPU 消失,而不是其他的;無需重啟;以便我以後可以重新啟用它。
這可能嗎?
筆記:
- 假設我有 root(儘管對於擁有設備文件權限的使用者來說,非 root 解決方案更好)。
- 萬一重要,發行版是 SLES 12 或 SLES 15,而且 - 不要問我為什麼 :-(
禁用:
以下禁用 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
該設備現在應該可見
這種方法的問題
- 如果您不是 root,這可能無法正常工作;或者在某些情況下我還無法表徵。
- 尚未檢查在您執行此操作時正在積極使用 GPU 的程序會發生什麼。
- 語法是巴洛克式的和令人困惑的。NVIDIA - 不好意思,您需要讓禁用 GPU 變得更簡單。