nvidia-smi
nvidia-smi
NVIDIA System Management Interface (nvidia-smi):是 NVIDIA 提供的命令行工具,用于监控和管理 NVIDIA GPU 的状态和性能。通过nvidia-smi,你可以查看 GPU 的使用情况、温度、功率、显存占用、驱动版本等信息。
常用命令
开启持久模式
开启 GPU 的持久模式(Persistence Mode)可以让 GPU 驱动在系统空闲时保持加载状态,从而减少初始化延迟并提高 GPU 的响应速度1
2
3
4
5
6
7
8
9
10
11
12
13# 开启持久模式,“0”为关闭
nvidia-smi -pm 1
# 可以通过守护进程的方式开启持久化
# 安装了GPU驱动后,进入到/usr/share/doc/NVIDIA_GLX-1.0/samples/目录
cd /usr/share/doc/NVIDIA_GLX-1.0/samples/
tar -xjf nvidia-persistenced-init.tar.bz2
cd nvidia-persistenced-init
./install.sh
systemctl enable nvidia-persistenced.service
systemctl is-enabled nvidia-persistenced.service
systemctl status nvidia-persistenced
# 开启后可以通过nvidia-smi查看Persistence-M是否开启ECC
ECC(Error Correction Code)是一种用于检测和纠正内存中数据错误的机制。在 NVIDIA GPU 中,你可以通过 nvidia-smi 命令来启用或禁用 ECC 功能1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#使用nvidia-smi -q查看ECC相关信息
ECC Mode
# 显示当前 ECC 模式。
Current : Enabled
# Enabled 表示下次启动时 ECC 功能会启用
Pending : Enabled
ECC Errors
#Volatile(易失性错误),这些错误是临时的,通常由瞬时干扰或环境因素引起,易失性错误计数会在 GPU 重启或驱动重新加载时自动清零
Volatile
#Correctable表示可纠正错误,Correctable表示不可纠正错误
SRAM Correctable : 0
SRAM Uncorrectable : 0
DRAM Correctable : 0
DRAM Uncorrectable : 0
#Aggregate(累积性错误),这些错误是在 GPU 生命周期内累积的,累积性错误计数不会在 GPU 重启或驱动重新加载时自动清零。
Aggregate
SRAM Correctable : 0
SRAM Uncorrectable : 0
DRAM Correctable : 0
DRAM Uncorrectable : 0
#重置ECC错误计数器
nvidia-smi -p 0 # 重置Volatile临时错误,通常由瞬时干扰引起。
nvidia-smi -p 1 # 重置 Aggregate 错误计数,GPU 生命周期内累积的所有错误
nvidia-smi -r # 重置所有错误计数器,包括 Volatile 和 Aggregate 错误。查看GPU拓扑结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35~]# nvidia-smi topo -m
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 NIC0 NIC1 NIC2 CPU Affinity NUMA Affinity GPU NUMA ID
GPU0 X PIX PXB PXB SYS SYS SYS SYS NODE NODE PXB 0-31 0 N/A
GPU1 PIX X PXB PXB SYS SYS SYS SYS NODE NODE PXB 0-31 0 N/A
GPU2 PXB PXB X PXB SYS SYS SYS SYS NODE NODE PXB 0-31 0 N/A
GPU3 PXB PXB PXB X SYS SYS SYS SYS NODE NODE PIX 0-31 0 N/A
GPU4 SYS SYS SYS SYS X PIX PXB PXB SYS SYS SYS 32-63 1 N/A
GPU5 SYS SYS SYS SYS PIX X PXB PXB SYS SYS SYS 32-63 1 N/A
GPU6 SYS SYS SYS SYS PXB PXB X PXB SYS SYS SYS 32-63 1 N/A
GPU7 SYS SYS SYS SYS PXB PXB PXB X SYS SYS SYS 32-63 1 N/A
NIC0 NODE NODE NODE NODE SYS SYS SYS SYS X PIX NODE
NIC1 NODE NODE NODE NODE SYS SYS SYS SYS PIX X NODE
NIC2 PXB PXB PXB PIX SYS SYS SYS SYS NODE NODE X
Legend:
# 设备自身
X = Self
# 跨 NUMA 节点的设备之间,通信路径较长,可能涉及 CPU 和高速互联(如 Intel 的 QPI 或 AMD 的 UPI)
SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
# PCIe 以及 同一 NUMA 节点内 PCIe 主机桥(PHB)之间的互连,同一 NUMA 节点内的设备之间,通信路径较短,性能优于 SYS
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
# 通过 PCIe 以及 一个 PCIe 主机桥(PHB)
PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
# 通过 多个 PCIe 桥,但 不经过 PCIe 主机桥(PHB)
PXB = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
# 连接最多通过 一个 PCIe 桥,性能最佳,因为通信路径最短
PIX = Connection traversing at most a single PCIe bridge
# 通过 一组绑定的 NVLink,“#”表示绑定的 NVLink 数量
NV# = Connection traversing a bonded set of # NVLinks
NIC Legend:
NIC0: mlx5_0
NIC1: mlx5_1
NIC2: mlx5_2