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