nvitop命令查看GPU使用情况
一、引言
在使用NVIDIA GPU训练网络模型时,许多用户习惯通过nvidia-smi
命令查看GPU的使用情况,以便选择空闲的GPU进行训练。然而,nvitop
是一款功能更全面、展示更直观的NVIDIA GPU实时监控工具,它集成了GPU利用率、显存占比、卡号使用者、CPU利用率、进程使用时间、命令行等多种信息,并通过差异化颜色和个性化展示,让用户能够更高效地管理GPU资源。
nvitop 的优势:
相比传统的 nvidia-smi
命令,nvitop
在GPU设备资源和性能监控方面具有以下全方位优势:
-
直观的可视化展示
- 使用美观的颜色和进度条实时显示每块GPU卡的GPU和CPU内存占用率及利用率。
- 以直观的方式展示GPU的使用者、使用时间、使用命令行以及GPU和CPU的占用率记录。
-
丰富的监控功能
- 提供树状视图、环境变量查看、进程过滤和进程指标检测等功能。
- 能够追踪单个进程在GPU和CPU上的内存和利用率历史记录,并通过柱状图直观展示。
-
强大的自定义能力
- 提供API接口,用户可以基于此搭建自定义的监控工具,满足个性化需求。
推荐使用:
nvitop
的安装过程非常简单,使用它可以让管理服务器的工作变得更加高效。强烈推荐大家使用nvitop
,让 GPU资源管理事半功倍。
完整API说明文档请查看官方手册:https://nvitop.readthedocs.io
二、特性
监控信息丰富且展示直观,显示比nvidia-smi
更全面的资源监控信息,和更直观的表现形式监控模式。可以作为资源监控器一直运行,而不是只能单独查看一次结果。
- 支持条形图和历史图
- 监控信息排序 & 监控信息过滤
- 可通过键盘向进程发送信号
- GPU进程及其父进程的树视图屏幕享受
- 提供环境变量屏幕,帮助信息屏幕,并支持鼠标点击的交互式操作
三、部署安装
因为nvitop
采用纯Python
编写,所以推荐采用pip
命令进行安装,官方安装说明文档中提供了几种安装方式如下:
- 使用pip3进行安装
1 2 |
|
- 使用conda进行安装
1 |
|
- 从Github拉取最新版本进行安装
1 |
|
- clone项目并手动安装
1 2 3 |
|
「注意」 如果在安装后遇到nvitop: command not found
错误,请检查你是否将Python
控制台脚本路径(例如,${HOME}/.local/bin
)添加到您的PATH
环境变量中。或者,你可以直接使用python3 -m nvitop
命令
四、常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
五、显示信息含义
5.1 顶部信息栏
- 当前时间:显示当前的系统时间
- 提示信息:提示可以按 h 键获取帮助或按 q 键退出
- nvitop 版本:NVITOP 1.5.0
- 驱动版本:Driver Version: 550.54.14
- CUDA 驱动版本: 最高能支持到的CUDA版本:CUDA Driver Version: 12.0
5.2 GPU信息区域
- GPU:显示 GPU 的编号(如 0,1, 2, 3, 4)。
- Fan (风扇速度):显示风扇的转速(如 30%,N/A 表示不可用或未启用)。
- Temp (温度):显示每个 GPU 的当前温度(例如,37C,41C)。
- Perf (性能状态):显示 GPU 的性能状态(如 P0 表示最大性能模式,P2 表示降级模式)。
- Pwr: Usage/Cap (功率:使用量/容量):显示当前的功耗及最大容量(例如,202W / 700W )。
- Memory-Usage (内存使用):显示 GPU 的内存使用情况和总内存(例如,39.35GiB / 79.65GiB)。
- GPU-Util (GPU 利用率):显示 GPU 的使用率百分比(例如,25%,100%)。
- Compute M. (计算模式):显示 GPU 的计算模式(如 Default)。
- MEM / UTL:图形化显示内存和利用率的百分比条形图。
5.3 系统负载信息
- Load Average (平均负载):显示系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载(例如,2.96 2.97 2.86)。
- CPU:显示 CPU 当前的使用率(例如,5.1%)。
5.4 图表区域
- 内存使用情况:显示系统内存的使用量( 68.98 GiB (3.8%))。
- 交换分区使用情况:显示交换分区的使用量( 0.0% )。
- GPU 利用率时间图:显示 GPU 使用率随时间的变化。
5.5 进程信息区域
列出了使用 GPU 的所有进程及其详细信息:
- GPU:显示每个进程使用的 GPU 编号。
- PID:进程 ID。
- USER:进程所有者的用户名。
- GPU-MEM:进程使用的 GPU 内存量。
- %SM:**流式多处理器 (Streaming Multiprocessor) 的使用率。
- %CPU:**进程的 CPU 使用率。
- %MEM:**进程的系统内存使用率。
- TIME:进程的运行时间。
- COMMAND:执行的命令或程序(如 python main.py、xorg 等)。
六、基于以下 API 监控 GPU 的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
nvitop_monitor_gpu.py脚本运行结果如下:
参考资料
- Nvitop官方文档:https://github.com/XuehaiPan/nvitop
- API使用手册:https://nvitop.readthedocs.io/
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))