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
面板解析
- 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 使用显存来存储和处理图形数据,以实现高性能的图形渲染和处理能力。