ITADN
wookayin/gpustat
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

gpustat

pypi license

只是比 nvidia-smi 一点?

Screenshot: gpustat -cp

注意:此功能仅适用于 NVIDIA 显卡设备,目前不支持 AMD。欢迎提交贡献!

自我推广:gpustat 的 Web 界面现已可用(测试版)!请查看 gpustat-web

快速安装

PyPI 安装:

pip install gpustat

如果您没有 root (sudo) 权限,请尝试在用户命名空间中安装 gpustatpip install --user gpustat

要通过 pip 安装最新版本(master 分支):

pip install git+https://github.com/wookayin/gpustat.git@master

NVIDIA 驱动程序和 pynvml 要求

[!IMPORTANT] 请勿: pip install pynvml,也不要在你的 Python 项目中将 pynvml 作为依赖项。这样做行不通。

相反:pip install nvidia-ml-pynvidia-ml-py 是 NVIDIA 官方的 NVML Python 绑定。

  • gpustat 1.2+:需要 nvidia-ml-py >= 12.535.108#161
  • gpustat 1.0+:需要 NVIDIA 驱动程序 450.00 或更高版本以及 nvidia-ml-py >= 11.450.129
  • 如果你的 NVIDIA 驱动程序版本过旧,可以使用较旧的 gpustat 版本(pip install gpustat<1.0)。更多详情请参见 #107

Python 要求

  • gpustat<1.0: Compatible with python 2.7 and >=3.4
  • gpustat 1.0:Python >= 3.4
  • gpustat 1.1:Python >= 3.6

用法

$ gpustat

选项(详情请参见 gpustat --help):

  • --color : 强制彩色输出(即使 stdout 不是 tty)
  • --no-color : 抑制彩色输出
  • -u, --show-user : 显示进程所有者的用户名
  • -c, --show-cmd : 显示进程名称
  • -f, --show-full-cmd : 显示运行中进程的完整命令和 CPU 统计信息
  • -p, --show-pid : 显示进程的 PID
  • -F, --show-fan : 显示 GPU 风扇转速
  • -e, --show-codec : 显示编码器和/或解码器的利用率
  • -P, --show-power : 显示 GPU 功耗和/或限制(drawdraw,limit
  • -a, --show-all : 显示上述所有 GPU 属性
  • --id : 仅针对和查询具有指定索引的特定 GPU(例如 --id 0,1,2
  • --no-processes : 不显示进程信息(用户、内存)(#133
  • --watch, -i, --interval : 如果提供,则以监视模式运行(等效于 watch gpustat)。表示更新之间的间隔。
  • --json : JSON 输出(#10
  • --print-completion (bash|zsh|tcsh) : 打印 shell 补全脚本。用法请参见 #131

提示

  • 如果出现问题,请尝试 gpustat --debug
  • 若要定期监控,请尝试 gpustat --watchgpustat -i#41)。
    • 对于较旧版本,可以使用 watch --color -n1.0 gpustat --color
  • 运行 nvidia-smi daemon(需要 root 权限)将使查询 GPU 的速度更快并减少 CPU 使用(#54)。
  • gpustat(以及 nvidia-smi)显示的 GPU ID(索引)是 PCI BUS ID, 而 CUDA 默认使用不同的排序方式(将最快的 GPU 分配最低 ID)。 因此,为了确保 CUDA 和 gpustat 使用相同的 GPU 索引, 请将 CUDA_DEVICE_ORDER 环境变量配置为 PCI_BUS_ID (在为你的 CUDA 程序设置 CUDA_VISIBLE_DEVICES 之前): export CUDA_DEVICE_ORDER=PCI_BUS_ID

Python API

gpustat 也可以作为库使用,以便从你自己的代码中查询 GPU:

import gpustat

stats = gpustat.new_query()   # a GPUStatCollection
stats.print_formatted()       # same output as the `gpustat` command

data = stats.jsonify()        # query result as a dict (same as `gpustat --json`)

默认显示

[0] GeForce GTX Titan X | 77°C,  96 % | 11848 / 12287 MB | python/52046(11821M)
  • [0]: 作为 PCI_BUS_ID 的 GPU 索引(从 0 开始)
  • GeForce GTX Titan X: GPU 名称
  • 77°C: GPU 温度(摄氏度)
  • 96 %: GPU 利用率
  • 11848 / 12287 MB: GPU 内存使用量(已用 / 总量)
  • python/...: GPU 上运行的进程,所有者/命令行/PID(及其 GPU 内存使用量)

Changelog

See CHANGELOG.md

License

MIT License