nvitop:强大而全面的NVIDIA GPU监控工具
nvitop是一款功能强大的NVIDIA GPU监控工具,为用户提供了丰富的GPU资源管理功能。它不仅可以实时显示GPU的使用情况,还能交互式地管理GPU进程,是深度学习研究人员和系统管理员的得力助手。
主要特性
nvitop具有以下几个突出特点:
-
信息丰富且界面美观:相比nvidia-smi,nvitop能够显示更多的信息,并采用彩色和精美的框图来展示,让用户一目了然。
-
监控模式:可以作为资源监控器持续运行,而不是像nvidia-smi那样只打印一次结果。在监控模式下,nvitop提供了柱状图和历史曲线图,支持进程排序和过滤,可以通过快捷键向进程发送信号,还有树状视图和环境变量查看等功能。
-
交互性强:在监控模式下,nvitop能够及时响应用户的键盘和鼠标输入,操作灵活。
-
高效:nvitop直接使用NVML Python绑定查询设备状态,而不是解析nvidia-smi的输出。它还支持稀疏查询和缓存结果,使用curses库而不是print来显示信息,并通过多线程异步收集信息,响应更快。
-
可移植:nvitop同时支持Linux和Windows系统,使用跨平台的psutil库获取主机进程信息。
-
易集成:作为纯Python实现的工具,nvitop很容易集成到其他应用中,不仅限于监控功能。
安装和使用
nvitop的安装非常简单,推荐使用pipx进行安装:
pipx run nvitop
也可以通过pip安装:
pip3 install --upgrade nvitop
安装完成后,可以通过以下命令启动nvitop:
nvitop
nvitop提供了多种运行模式和选项:
- 查询模式:
nvitop -1
- 监控模式:
nvitop -m auto/full/compact
- 指定设备:
nvitop -o 0 1
- 只显示计算进程:
nvitop -c
在监控模式下,用户可以通过快捷键进行各种操作,如中断/终止/杀死进程、切换显示模式、排序等。按h键可以查看帮助信息。
高级功能
除了基本的监控功能,nvitop还提供了一些高级特性:
- CUDA设备选择工具nvisel
- 机器学习框架的回调函数,支持TensorFlow和PyTorch Lightning
- TensorBoard集成
- 低级API,可用于开发自定义监控工具
这些功能使nvitop不仅仅是一个监控工具,还可以成为GPU资源管理的重要组成部分。
结语
nvitop凭借其丰富的功能、友好的界面和强大的可扩展性,成为了NVIDIA GPU监控和管理的首选工具之一。无论是深度学习研究人员还是系统管理员,都能从nvitop中获得所需的GPU资源信息和管理能力。随着持续的更新和完善,相信nvitop会为更多用户带来便利,助力GPU资源的高效利用。
nvitop项目地址: https://github.com/XuehaiPan/nvitop