文章目录

  • 一、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: 性能状态,P0P12表示不同的性能级别,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 的输出相同,只是它会定期刷新。下面是一个示例输出:

linux怎样查看GPU设备文件 linux查看gpu状态_人工智能

使用场景

watch nvidia-smi 特别适用于以下场景:

  1. 实时监控 GPU 使用情况
  • 可以持续监控 GPU 的利用率、显存使用、温度和功耗等参数,便于及时发现性能瓶颈和潜在问题。
  1. 调试和优化 GPU 应用
  • 在运行深度学习训练或其他计算密集型任务时,可以实时观察 GPU 资源的使用情况,优化代码和配置以提高效率。
  1. 系统维护和故障排除
  • 在进行系统维护或排除 GPU 相关故障时,可以实时获取 GPU 状态信息,快速定位问题。

示例

  1. 每秒刷新一次 GPU 状态并高亮变化
watch -n 1 -d nvidia-smi
  1. 每十秒刷新一次 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

linux怎样查看GPU设备文件 linux查看gpu状态_运维_02

基本用法

安装完成后,只需在命令行中运行以下命令即可启动 nvitop

nvitop

功能和选项

nvitop 提供了许多功能和选项,帮助用户更好地监控和管理 GPU 资源。

实时监控

nvitop 启动后,会显示所有检测到的 GPU 的实时状态。默认界面如下:

linux怎样查看GPU设备文件 linux查看gpu状态_linux怎样查看GPU设备文件_03