文章目录
- 一、nvidia-smi
- 顶部信息
- GPU详细信息
- GPU行
- Bus-Id行
- Volatile Uncorr. ECC行
- Fan行
- Memory-Usage行
- GPU-Util行
- MIG M.行
- Processes部分
- 总结
- 二、watch nvidia-smi
- 基本用法
- 参数解释
- 常用选项
- 改变刷新间隔
- 高亮变化的值
- 组合使用选项
- 输出解释
- 使用场景
- 示例
- 三、更美观的:nvitop
- 安装
- 基本用法
- 功能和选项
- 实时监控
在Linux系统中,监控NVIDIA GPU显卡的占用状态对于数据科学家、AI研究人员以及需要进行图形密集型计算的用户来说是非常重要的。了解GPU的实时状态不仅可以帮助优化资源使用,还能提高计算任务的效率和性能。本文将介绍几个用于监控NVIDIA GPU显卡占用状态的命令,帮助用户更好地掌握GPU的使用情况。
NVIDIA提供了一些强大而易用的工具,可以让用户在命令行界面中轻松查看GPU的状态和性能指标。以下是一些常用的监控命令:
一、nvidia-smi
nvidia-smi 是NVIDIA提供的一个命令行工具,用于监控和管理安装在系统中的NVIDIA GPU。它可以显示GPU的实时状态和性能数据,包括GPU利用率、显存使用情况、温度、电源状态等详细信息。nvidia-smi是每个使用NVIDIA GPU的开发者和系统管理员的必备工具。下面是对nvidia-smi的详细介绍。
首先,确保系统中已经安装了NVIDIA驱动程序和CUDA工具包。nvidia-smi通常随驱动程序一起安装。如果你已经安装了NVIDIA驱动程序,可以通过以下命令检查nvidia-smi是否可用:
nvidia-smi
执行该命令后,你将看到类似于以下的输出:
root@06697c6452a8:~/workspace/wangzk# nvidia-smi
Mon May 20 18:21:21 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 2080 Ti Off | 00000000:02:00.0 Off | N/A |
| 33% 26C P8 13W / 250W | 2242MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce RTX 2080 Ti Off | 00000000:03:00.0 Off | N/A |
| 35% 26C P8 4W / 250W | 10MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 2 NVIDIA GeForce RTX 2080 Ti Off | 00000000:82:00.0 Off | N/A |
| 35% 26C P8 8W / 250W | 10MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 3 NVIDIA GeForce RTX 2080 Ti Off | 00000000:83:00.0 Off | N/A |
| 35% 26C P8 10W / 250W | 10MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
nvidia-smi
的输出信息可以分为几个部分,每个部分提供了关于GPU的详细信息。下面是对每一列的详细解释。
顶部信息
NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3
- NVIDIA-SMI: 显示
nvidia-smi
工具的版本号。 - Driver Version: 显示当前安装的NVIDIA驱动程序版本号。
- CUDA Version: 显示当前支持的CUDA版本号。
GPU详细信息
每个GPU的信息列被划分为几个部分。以第一个GPU为例:
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 2080 Ti Off | 00000000:02:00.0 Off | N/A |
| 33% 26C P8 13W / 250W | 2242MiB / 11264MiB | 0% Default |
| | | N/A |
GPU行
- GPU: GPU编号,从0开始。
- Name: GPU的名称。
- Persistence-M: 持久模式状态,
On
表示开启,Off
表示关闭。
Bus-Id行
- Bus-Id: GPU所在的PCI总线ID。
- Disp.A: GPU是否用于显示,
On
表示用于显示,Off
表示不用于显示。
Volatile Uncorr. ECC行
- Volatile Uncorr. ECC: 挥发性不可纠正错误率。如果GPU支持ECC(错误纠正码),这里会显示具体数据。
Fan行
- Fan: 风扇速度,以百分比表示。
- Temp: GPU温度,以摄氏度表示。
- Perf: 性能状态,
P0
到P12
表示不同的性能级别,P0
是最高性能,P12
是最低性能。 - Pwr:Usage/Cap: 当前功耗和最大功耗,以瓦特(W)为单位。
Memory-Usage行
- Memory-Usage: 显存使用情况,显示为“已用显存 / 总显存”,单位为MiB。
GPU-Util行
- GPU-Util: GPU利用率,以百分比表示。
- Compute M.: 计算模式,
Default
表示默认模式。
MIG M.行
- MIG M.: 多实例GPU模式状态。如果GPU支持MIG,这里会显示相关信息。
Processes部分
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
- GPU: 进程所在的GPU编号。
- GI ID: GPU实例ID(仅适用于支持MIG的GPU)。
- CI ID: 计算实例ID(仅适用于支持MIG的GPU)。
- PID: 进程ID。
- Type: 进程类型,如图形(Graphics)或计算(Compute)。
- Process name: 进程名称。
- GPU Memory Usage: 进程使用的GPU显存量。
总结
通过nvidia-smi
的输出信息,可以全面了解系统中所有NVIDIA GPU的实时状态,包括硬件信息、使用情况、温度、功耗等。这对于监控GPU性能、优化资源使用、排查性能瓶颈等非常有用。
二、watch nvidia-smi
结合watch命令,可以定期刷新并显示GPU状态,便于实时监控。
watch
是一个常用的 Linux 命令,用于定期执行指定的命令并刷新输出。结合 nvidia-smi
命令使用,可以实时监控 NVIDIA GPU 的状态。以下是对 watch nvidia-smi
的详细介绍。
基本用法
在命令行中运行以下命令:
watch nvidia-smi
这将每隔两秒刷新一次 nvidia-smi
的输出,默认情况下,刷新间隔是两秒。
参数解释
-
watch
: 用于定期运行指定命令的工具。 -
nvidia-smi
: NVIDIA 提供的用于显示 GPU 状态的命令行工具。
常用选项
改变刷新间隔
默认情况下,watch
每两秒刷新一次。可以使用 -n
选项来指定自定义的刷新间隔,例如每五秒刷新一次:
watch -n 5 nvidia-smi
高亮变化的值
使用 -d
选项可以高亮显示自上次刷新以来发生变化的值,这对于监控变化特别有用:
watch -d nvidia-smi
组合使用选项
可以组合使用 -n
和 -d
选项,例如每五秒刷新一次并高亮显示变化的值:
watch -n 5 -d nvidia-smi
输出解释
watch nvidia-smi
的输出与单独运行 nvidia-smi
的输出相同,只是它会定期刷新。下面是一个示例输出:
使用场景
watch nvidia-smi
特别适用于以下场景:
- 实时监控 GPU 使用情况:
- 可以持续监控 GPU 的利用率、显存使用、温度和功耗等参数,便于及时发现性能瓶颈和潜在问题。
- 调试和优化 GPU 应用:
- 在运行深度学习训练或其他计算密集型任务时,可以实时观察 GPU 资源的使用情况,优化代码和配置以提高效率。
- 系统维护和故障排除:
- 在进行系统维护或排除 GPU 相关故障时,可以实时获取 GPU 状态信息,快速定位问题。
示例
- 每秒刷新一次 GPU 状态并高亮变化:
watch -n 1 -d nvidia-smi
- 每十秒刷新一次 GPU 状态:
watch -n 10 nvidia-smi
通过使用 watch nvidia-smi
,用户可以方便地实时监控和管理 NVIDIA GPU 的状态,有助于提高计算任务的效率和性能。
三、更美观的:nvitop
nvitop
是一个用于监控 NVIDIA GPU 使用情况的命令行工具,它提供了一个类似于 top
命令的实时视图,显示 GPU 的利用率、显存使用情况、温度、功耗等信息,以及在 GPU 上运行的进程。nvitop
旨在为用户提供一个简洁且易于使用的界面来监控多个 GPU 的状态。
安装
在安装 nvitop
之前,确保你的系统已经安装了 pip
。你可以使用以下命令来安装 nvitop
:
pip install nvitop
基本用法
安装完成后,只需在命令行中运行以下命令即可启动 nvitop
:
nvitop
功能和选项
nvitop
提供了许多功能和选项,帮助用户更好地监控和管理 GPU 资源。
实时监控
nvitop
启动后,会显示所有检测到的 GPU 的实时状态。默认界面如下: