anderskm/gputil

A Python module for getting the GPU status from NVIDA GPUs using nvidia-smi programmically in Python

解決的問題

GPUtil 解決了在機器上程式化識別與選擇可用 NVIDIA GPU 的問題。這對於深度學習任務尤其有用,使用者需要將工作負載指派給尚未過載或記憶體不足的 GPU,以避免資源衝突與當機。

工作原理

該模組作為 nvidia-smi 命令列工具的 Python 封裝。它查詢系統中所有可用的 NVIDIA GPU,並取得其目前狀態,包括記憶體使用量與負載。然後根據使用者定義的最大負載與記憶體使用閾值,對這些 GPU 進行過濾,以判斷哪些裝置是「可用」的。

適用對象

專為使用深度學習庫(如 TensorFlow 或 Caffe)的開發人員與研究人員設計,他們需要在多個裝置之間動態分配 GPU 資源。

特色亮點

  • 靈活選擇:支援依 GPU ID、負載或記憶體使用量排序,或隨機選擇 GPU。
  • 資源監控:提供 showUtilization() 函數,可快速列印所有 GPU 的目前狀態。
  • GPU 元資料:可存取包括 UUID、序列號、驅動程式版本與顯示狀態在內的詳細硬體資訊。
  • 整合範例:包含使用 CUDA_VISIBLE_DEVICES 在 TensorFlow 中遮蔽 GPU,以及在 Caffe 中選擇裝置的具體模式。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案