Linux

如何禁用(然後重新啟用)我的一個 NVIDIA GPU?

  • January 31, 2022

我正在開發具有多個 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 變得更簡單。

引用自:https://unix.stackexchange.com/questions/654075