GPU Monitor是一款实时监控显卡性能的软件工具,它让用户能够即时查看GPU的各项性能指标。适用于游戏玩家、图形设计师以及需要密切关注显卡状态的专业人士,帮助他们优化系统运行效率。

image-7-1

该软件提供了包括温度、利用率、时钟速度和风扇速度在内的多种监控选项。借助这些数据,用户可以了解显卡在各种工作负载下的表现,预防过热和性能瓶颈。GPU Monitor还能够实时展示显存使用情况,让用户掌握系统资源分配情况。

GPU Monitor的用户界面设计直观,易于操作,即使是没有技术背景的用户也能轻松上手。它支持多种显卡品牌和型号,无论是NVIDIA还是AMD的显卡,都能够被有效监测。这使得GPU Monitor成为一款多功能且广受欢迎的计算机性能监控工具。

安装

nvidia-smi 通常在 NVIDIA 驱动程序安装过程中安装,尽管它是一个单独的软件包。

 用法

使用 nvidia-smi 就像在终端提示符下键入 nvidia-smi 一样简单,您应该看到类似以下内容的输出:

image

默认输出提供了 GPU 状态的有用摘要,一目了然。这对于快速了解正在发生的情况非常有用,但您可以使用 nvidia-smi 做更多事情。

人们通常希望随着时间的推移关注 GPU 利用率。 nvidia-smi 有选项 -l 在给定的时间间隔内重复显示 GPU 信息。但是,我发现将它与 watch 命令结合使用可以提供更好的输出:

watch -n 0.1 nvidia-smi

nvidia-smi 还允许您查询有关 GPU 的信息,并提供一种可配置的方式来设置要显示的参数,然后以机器可读的 csv 格式记录它们(使用 -f

nvidia-smi --query-gpu=timestamp,name,pci.bus_id,temperature.gpu,utilization.gpu,utilization.memory --format=csv -l 1
image-1-2

还有 dmon 和 pmon 子命令提供有关设备或在这些设备上运行的进程的信息。这些对于查看 GPU 利用率如何随时间变化非常有用,特别是如果您想将这些导出到文件以供以后分析。但是,如果您想要更直观地了解正在发生的情况,则此列表中的其他工具可能会更好。

nvidia-smi -q -d TEMPERATURE,PERFORMANCE 显示根据 GPU 温度以及当前系统是否遇到热节流来减慢/关闭 GPU 的预设阈值。通常,如果您经常看到硬件减速被激活,您可能需要改善机器的冷却。这可以通过间隔 GPU、为 CPU 配备更强的风扇或水冷器或升级机箱来实现。测试系统热性能的一个有用工具是使用 gpu-burn 等工具对所有 GPU 进行压力测试,并在 nvidia-smi 的帮助下查看系统是否遇到热节流。

nvidia-smi topo -m 是检查“GPU 拓扑”的有用命令,它描述了系统中的 GPU 如何相互连接以及如何连接到 CPU 等主机设备。拓扑对于了解 GPU 之间的数据传输是通过直接内存访问 (DMA) 还是通过主机设备进行非常重要。

最后,nvidia-smi 可以帮助您调试 GPU、系统或功耗、执行模式等设置的错误。完整列表请参见 nvidia-smi --help 。

 图形处理器统计

如果您对 nvidia-smi 的更简洁、更漂亮、更简单的替代方案感兴趣,名为 gpustat 的 Python 库是一个不错的选择。默认情况下,它为每个 GPU 打印一行,仅包含最重要的信息,并清晰突出显示以便于阅读。

 安装

pip install --user gpustat

请注意,我们在此处安装时使用了用户标志,仅为当前用户安装此 Python 包。但是,您可能更喜欢使用 pipx 等工具在隔离环境中安装 Python 应用程序。

 用法

只需输入 gpustat 即可获得当前 GPU 状态的简洁、可读的摘要:

image-2-2

Gpustat 有一些可配置的选项来显示要显示的信息。例如, gpustat -cup 将附加不同 GPU 上进程的命令、用户和 PID,如果您尝试在多个用户之间共享 GPU 资源而不希望深入使用更复杂的调度工具,这将非常有用。

Gpustat 还附带有用的 --watch 命令,它将按给定的时间间隔运行 gpustat。这相当于运行 Linux watch 命令,但您不必添加额外的命令来保留输出颜色。

nvtop

如果您熟悉 Linux 命令行工具,您可能也熟悉工具 top 和 htop。这些工具为您提供系统负载的实时仪表板。 nvtop 本质上做同样的事情,但是对于 NVIDIA GPU。有了它,您可以随着训练工作的进展,观看来自 GPU 的关键信息的实时图表。

 安装

sudo apt install nvtop

对于其他系统或从源代码构建,请参阅文档页面。

 用法

输入 nvtop 将打开基于终端的界面,其中包含更新图表以及 GPU 上正在运行的进程的摘要:

image-3-1

nvtop 允许您自定义显示:从图表中显示的信息到进程的排序方式以及更新的频率。这些可以交互配置,甚至可以保存到磁盘,以便您的设置在会话之间保持不变。

nvtop 还带来了与 htop 类似的功能:能够从 GUI 交互地终止进程。如果您编写了一些已挂起的有问题的 PyTorch DDP 代码,或者如果您不太热衷于共享这些 GPU 资源,这会很方便!

 恩维托普

nvitop 是一个将 nvidia-smi 的信息内容与 gpustat 的良好终端着色以及 nvtop 的交互式监控相结合的工具。其结果是一个功能强大、信息丰富且美观的工具,用于监控 GPU。

 安装

pip install --user nvitop

 用法

默认情况下,输入 nvitop 会将其启动到监视模式,该模式会显示持久的、自动更新的 GPU 信息屏幕。

image-4-1
 nvitop输出

但是,如果您想显示更像 nvidi-smi 的一次性输出,只需传递 -1 标志 nvitop -1 。

尽管能够显示大量有用的信息,nvitop 也足够智能,可以根据终端的可用大小自行扩展,从而根据需要将显示的信息量减少到仅显示必需的内容。与交互模式下的 nvtop 非常相似,它允许您自定义显示并以交互方式排序和终止进程,同时突出显示任何选定进程的相关 GPU。

image-5-2

更进一步,nvitop 提供了一个 Python API,您可以使用它轻松地在自己的代码中查询所有这些 GPU 信息,并与两个流行的高级机器学习框架完美集成:Keras 和 PyTorch Lightning!

jupyterlab-nvdashboard

如果您喜欢在 Jupyter 环境而不是命令行中工作,那么下一个工具可能是满足您的 GPU 监控需求的正确解决方案。 jupyterlab-nvdashboard是rapidsai团队开发的Jupyter Lab插件,为Jupyter添加GPU监控信息。

 安装

pip install --user jupyterlab_nvdashboard

 用法

image-6
jupyter nv仪表板显示

该插件添加了一个新选项卡,直接在浏览器中以交互式图表显示基本 GPU 统计信息。当我们测试时,我们遇到了一些间歇性错误,但该项目正在积极开发中,我们期望它发展成为一个有用的工具。

 其他的

除了上面列出的工具之外,还有许多其他选项可用于监控 GPU 使用情况。如果您已经在使用像 Weights & Biases 这样的日志记录库,那么默认情况下通常会内置一些 GPU 监控统计信息。如需更深入的了解,请参阅这篇关于使用权重和偏差跟踪系统资源的博客文章。

如果您已经熟悉 Grafana 进行监控,那么您可能会对 nvidia-smi 的 nvidia_gpu_exporter 感兴趣,它允许您通过 Grafana 仪表板收集和可视化 GPU 统计信息。

image-7-1

如果您确实想深入了解 GPU 中发生的情况,还有成熟的 GPU 分析工具,例如最近升级的 PyTorch Profiler 和 NVIDIA 的 Visual Profiler。这些通常会影响代码的执行速度,因此不是您想要一直使用的东西。但是,它们对于准确了解模型执行和训练期间花费的时间非常有用。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。