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 中选择设备的具体模式。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目