GPU(三)nvidia-smi

通过前面的文章,我们对GPU和cuda有了初步的了解,并且说到可以用nvidia-smi命令来验证cuda和查看GPU信息,本文我们对该命令做个简单介绍。

1、nvidia-smi

nvidia-smi全称NVIDIA System Management Interface,是NVIDIA提供的用于监控和管理NVIDIA GPU显卡的命令行工具。直接输nvidia-smi命令可以得到如下信息:

在这里插入图片描述

为了大家更好的理解,我把输出内容分隔开来解释:

在这里插入图片描述

  • NVIDIA-SMI: nvidia-smi版本号,当前是545.29.04
  • Driver Version: 驱动版本号,当前是546.17
  • CUDA Version: CUDA版本号,当前是12.3

在这里插入图片描述

  • GPU: GPU ID,计数从0开始,0表示第一张GPU。如果有2张GPU,则第二张GPU的ID是1
  • Name: GPU名称,当前是NVIDIA GeForce RTX 4060 Ti
  • Persistence-M: 显卡的持久模式状态,当设置为启用状态(On)时,驱动程序在系统启动时就加载,并且在最后一个进程关闭时保持运行。如果设置为关闭(Off),则在最后一个GPU进程结束时,驱动程序将会卸载。这个特性在一般的使用场景中不会有显著影响。
  • Fan: 风扇转速百分比,0%表示当前风扇没有转动
  • Temp: 温度,当前为40°
  • Perf: GPU的性能状态,从P0(最大性能)-P12(最小性能)
  • Pwr:Usage/Cap: 显卡功率,显示当前功率和最大功率。当前功率为38W,最大功率为165W

在这里插入图片描述

  • Bus-Id: 显卡是插在PCIe总线槽上的,每个插在总线上的设备都有唯一id标识,这里就是指GPU在PCIe总线上的id
  • Disp.A: Display Active GPU状态,一般如果接了显示器,这里会显示On
  • Memory-Usage: 显存使用情况,显示当前显存大小和显存总大小。当前显存使用3521MiB,显存总大小为16380MiB

在这里插入图片描述

  • Volatile Uncorr. ECC: 报告 GPU 错误检查和纠正(ECC)状态。N/A 表示这个 GPU 不支持 ECC 或者没有启用 ECC
  • GPU-Util: 显示GPU的使用率,即GPU正在执行计算任务的比例,0%表示GPU目前在空闲状态,和CPU使用率类似
  • Compute M.: 表示计算模式,NVIDIA GPU有Default、Exclusive Process、Exclusive Thread、Prohibited 四种计算模式,一般就用默认的Default就可以了。在Default 模式下,多个进程可以同时共享不同的GPU
  • MIG M.: MIG模式,MIG一般用在GPU虚拟化场景,N/A表示该GPU不支持MIG

在这里插入图片描述

processes指的是当前正在使用GPU的进程,相关信息有:

  • GPU: 进程使用的GPU ID号
  • GI ID: GPU instance ID,GPU实例id
  • CI ID: Compute instance ID,计算实例id
  • PID: 进程id
  • Type: 进程类型,C表示计算进程,G表示图形进程,C+G表示都有
  • Process name: 进程名称
  • GPU Memory Usage: 进程显存使用量

如果全部总结起来,就有下图:

在这里插入图片描述

2、其它参数

除了直接使用nvidia-smi命令查看显卡GPU信息,还可以添加参数来查找更详细的信息,例如:

// 查看GPU基本信息
$ nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 4060 Ti (UUID: GPU-0d015b67-1159-32a4-1eb7-09411c85fdd0)


// 查询所有GPU详细信息
$ nvidia-smi -q
// 输出内容过多,略过


// 查询指定id的GPU详细信息,如下,通过-i参数指定id为0的GPU
$ nvidia-smi -q -i 0
// 输出内容过多,略过


// 查询指定id的GPU的显存信息
$ nvidia-smi -q -i 0 -d MEMORY

==============NVSMI LOG==============

Timestamp                                 : Tue Mar  5 22:46:39 2024
Driver Version                            : 546.17
CUDA Version                              : 12.3

Attached GPUs                             : 1
GPU 00000000:01:00.0
    FB Memory Usage
        Total                             : 16380 MiB
        Reserved                          : 257 MiB
        Used                              : 3618 MiB
        Free                              : 12504 MiB
    BAR1 Memory Usage
        Total                             : 16384 MiB
        Used                              : 1 MiB
        Free                              : 16383 MiB
    Conf Compute Protected Memory Usage
        Total                             : N/A
        Used                              : N/A
        Free                              : N/A


// 查看GPU系统的拓扑连接信息
$ nvidia-smi topo -m
        GPU0    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X                              N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

更详细的参数可以使用nvidia-smi --help查看,或者查看NVIDIA官方文档:https://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf

3、NVML

通过上面的内容我们可以知道,nvidia-smi可以用于查看显卡GPU相关信息,这些信息在显卡监控GPU性能监控等场景是非常有用的。其实nvidia-smi底层是调用NVIDIA封装好的NVML(NVIDIA Management Library)动态库获取到这些数据的,代码层面也可以通过调用NVML库函数来获取相关数据上报到业务监控数据库中。也有一些其它语言基于NVML封装的SDK,例如go语言的SDK:https://github.com/NVIDIA/go-nvml

NVML也可以参考官方文档获取更详细信息:https://docs.nvidia.com/deploy/nvml-api/index.html

微信公众号卡巴斯同步发布,欢迎大家关注。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: zabbix-nvidia-smi-multi-gpu是一个用于监控多个NVIDIA GPU的Zabbix插件。它通过NVIDIA System Management Interface(nvidia-smi)来获取GPU的相关信息,并将这些信息发送到Zabbix服务器进行监控和分析。 这个插件在多GPU环境中非常有用,特别是在服务器集群或大规模GPU集群中。它可以帮助管理员实时监控每个GPU的使用情况、温度、功耗以及其他性能指标,以便更好地管理和优化GPU集群的资源。 使用zabbix-nvidia-smi-multi-gpu插件,管理员可以轻松配置Zabbix服务器来监控和收集GPU的数据。插件会定期执行nvidia-smi命令以获取GPU的信息,并将这些数据发送到Zabbix服务器上的特定主机。 在Zabbix服务器上,管理员可以设置触发器和报警规则,当GPU的使用率或温度超过设定的阈值时,会触发报警通知。这样管理员就可以及时采取措施来解决GPU过热或过载的问题,确保系统的稳定性和可靠性。 总而言之,zabbix-nvidia-smi-multi-gpu是一个强大的插件,为管理员提供了实时监控和管理多个GPU的功能。通过使用该插件,管理员可以更好地优化GPU集群的性能,确保系统的正常运行。 ### 回答2: zabbix-nvidia-smi-multi-gpu是一个用于监控多个GPU设备的Zabbix插件。在服务器上安装了多个显卡设备,该插件可以帮助我们实时监控各个GPU的性能和使用情况。 该插件基于NVIDIASMI(System Management Interface)工具开发,通过查询SMI的API来获取GPU的信息。它可以监测GPU的温度、利用率、电源使用情况、显存使用情况等指标,并将这些信息传递给Zabbix监控系统。 使用zabbix-nvidia-smi-multi-gpu插件,我们可以在Zabbix的监控面板上实时查看多个GPU的状态。我们可以了解每个GPU的温度是否正常,以及其负载情况。如果某个GPU的温度过高或负载过载,我们可以及时采取措施,如调整风扇速度或优化算法,以保证GPU的稳定性和性能。 此外,zabbix-nvidia-smi-multi-gpu还具有告警功能,当GPU的某些参数超过预设的阈值时,它会发出警报通知管理员。这样,我们可以在GPU出现故障或异常情况时快速采取措施,避免系统崩溃或性能下降。 总之,zabbix-nvidia-smi-multi-gpu是一个方便实用的插件,可用于监控多个GPU设备的性能和状态。它可以帮助我们追踪GPU的使用情况,提供有价值的数据,以优化系统性能和提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值