nvidia-smi命令详解

nvidia-smi(NVIDIA System Management Interface)是一种命令行实用程序,用于监控和管理 NVIDIA GPU(图形处理器)的状态和性能。它提供了一种简单而强大的方式来获取有关 GPU 的实时信息,并且可以用于诊断、优化和管理 GPU 资源。

详细的信息可以去手册中查找:man nvidia-smi

在大多数情况下,nvidia-smi 是与 NVIDIA GPU 驱动程序一起安装的,当安装 NVIDIA GPU 驱动程序时,nvidia-smi 工具通常会自动包含在驱动程序软件包中,并在安装过程中将其放置在适当的位置。

目录

1. nvidia-smi 面板解析

2. nvidia-smi 常用选项

3. 显存与GPU的区别


1. nvidia-smi 面板解析

  • GPU:本机中的GPU编号,从0开始,上图为0,1,2,3四块GPU
  • Fan:风扇转速(0%-100%),N/A表示没有风扇
  • Name:GPU名字/类型,上图四块均为NVIDIA GeForce RTX 3080
  • Temp:GPU温度(GPU温度过高会导致GPU频率下降)
  • Perf:性能状态,从P0(最大性能)到P12(最小性能),上图均为P2
  • Pwr:Usager/Cap:GPU功耗,Usage表示用了多少,Cap表示总共多少
  • Persistence-M:持续模式状态,持续模式耗能大,但在新的GPU应用启动时花费时间更少,上图均为On
  • Bus-Id:GPU总线
  • Disp.A:Display Active,表示GPU是否初始化
  • Memory-Usage:显存使用率
  • Volatile GPU-UTil:GPU使用率,与显存使用率的区别可参考显存与GPU
  • Uncorr. ECC:是否开启错误检查和纠错技术,0/DISABLED,1/ENABLED,上图均为N/A
  • Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED,上图均为Default
  • Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU

Reference:Adenialzz

补充:ECC纠错

ECC(Error Correction Code)纠错码,是一种在数据传输或存储过程中用于检测和纠正错误的技术。在数据传输过程中,由于噪声、干扰或设备故障等原因,数据可能会发生错误。ECC纠错码被设计用来检测这些错误,并尽可能地纠正它们,以确保数据的完整性和准确性。

ECC纠错码使用一系列算法和技术,将原始数据编码为一组冗余数据,称为校验码。这些校验码根据数据的特定规则计算得出,并随着数据一起传输或存储。接收方在接收到数据后,会使用相同的算法和技术对接收到的数据进行校验码的计算。然后,接收方会比对原始数据和校验码,如果发现错误,则会尝试通过纠正算法自动修复错误,恢复原始数据的准确性。

ECC纠错码的使用可以提高数据传输和存储系统的可靠性。它常用于存储介质(如硬盘、闪存)和通信渠道(如网络传输)中,以确保数据的完整性和可靠性。ECC纠错码的应用领域包括计算机存储系统、无线通信、数字广播等。不同类型的ECC纠错码有不同的纠错能力,可以根据特定的需求选择适当的纠错码。

2. nvidia-smi 常用选项

注意⚠️:命令的可用选项和输出可能会因 NVIDIA 驱动程序版本和 GPU 型号而有所不同,可以通过 nvidia-smi --help 命令查看完整的选项列表和用法说明。

  • -h 查看帮助手册:nvidia-smi -h 
  • 动态地观察 GPU 的状态:watch -n 0.5 nvidia-smi 
  • -i 查看指定GPU:nvidia-smi -i 0
  • -L 查看GPU列表及其UUID:nvidia-smi -L
  • -l 指定动态刷新时间,默认5秒刷新一次,通过Ctrl+C停止:nvidia-smi -l 5
  • -q 查询GPU详细信息:nvidia-smi -q
  • 只列出某一GPU的详细信息,可使用 -i 选项指定:nvidia-smi -q -i 0
  • 在所有 GPU 上启用持久性模式:nvidia-smi -pm 1
  • 指定开启某个显卡的持久模式:nvidia-smi -pm 1 -i 0
  • 以 1 秒的更新间隔监控整体 GPU 使用情况:nvidia-smi dmon
  • 以 1 秒的更新间隔监控每个进程的 GPU 使用情况:nvidia-smi pmon

补充:UUID

GPU的UUID(Universally Unique Identifier)是一个用于唯一标识GPU设备的字符串。它是一个由一串字符和数字组成的标识符,用于区分不同的GPU设备。

每个GPU设备都有一个唯一的UUID,它通常由硬件制造商或驱动程序分配,并在系统中进行记录。UUID的生成方式可能因GPU设备的制造商和操作系统而有所不同。UUID在计算机系统中具有广泛应用。在GPU计算中,UUID可以用于标识和管理不同的GPU设备。它可以被用作系统中的设备索引,使软件能够明确地与特定的GPU设备进行交互和通信。

3. 显存与GPU的区别

显存(Video RAM,VRAM)GPU(Graphics Processing Unit)是计算机图形处理中的两个不同概念。

  • 显存(VRAM):显存是一种特殊类型的内存,用于存储图形数据和纹理等与图像显示相关的数据。它通常位于独立的显卡(或显卡集成在主板上的集成图形处理器)中,也被称为图形存储器。显存具有高带宽和低延迟的特点,可用于快速读取和写入图像数据,以供 GPU 进行图形渲染和处理。显存的容量通常以兆字节(MB)或千兆字节(GB)为单位。
  • GPU(图形处理单元):GPU 是一种专门设计用于处理图形和图像数据的处理器。它是计算机图形渲染和加速的关键组件。GPU 负责执行图形渲染管线中的各个阶段,包括几何计算、光栅化、像素处理等,以生成最终的图像。GPU 还能执行通用计算任务,因此在许多领域,如科学计算、机器学习和密码破解等,GPU 也被广泛应用。显存是 GPU 的一部分,用于存储 GPU 处理所需的图形数据。

总结起来,显存是一种专门用于存储图形数据的内存,而 GPU 是一种专门用于处理图形和图像数据的处理器。显存和 GPU 是紧密相关的,GPU 使用显存来存储和处理图形数据,以实现高性能的图形渲染和处理能力。