nvidia-smi 是 NVIDIA 提供的 GPU 管理工具,用于监控 GPU 使用情况和调整 GPU 状态。它支持 Linux 和 Windows 系统,安装 NVIDIA 驱动后即可使用。
我们可以通过nvidia-smi -h命令查看所有命令和参数,今天我们就介绍下常用的命令
1.基本命令
-i, --id= : 仅针对指定设备ID的GPU查询,e.g. nvidia-smi -q -i 0 查看设备ID为0的GPU信息
-u, --unit : 查询Unit属性,不使用该参量默认查询GPU属性
-f, --filename= : 将查询结果保存到文件,屏蔽终端输出
-x, --xml-format : 生成xml格式的结果
-d, --display= : 有选择性地查询某些字段,支持的字段包括:memory, utilization, ecc, temperature, power, clock, compute, pids, performance, supported_clocks, page_retirement, accounting, encoder stats
-l, --loop= : 持续查询除非在指定秒间隔内检测到Ctrl+C中断2.自定义查询
英伟达GPU自定义命令使用--query-gpu=参数,可以查询以下字段
timestamp : 查询时间,以"YYYY/MM/DD HH:MM:SS.msec"格式给出
driver_version : 以字符串格式给出当前安装的Nvidia显卡驱动版本
count : 显卡个数
name 或 gpu_name : 官方给定的显卡名称
serial 或 gpu_serial : 产品序列号,应与板载序列识别号一致,全球唯一
uuid 或 gpu_uuid : 全球唯一设备编号,与板载识别号无关
pci.bus_id 或 gpu_bus_id : 十六进制PCI总线编号 “domain:bus:device.function”
pci.domain : 十六进制PCI域(domain number)
pci.bus :十六进制PCI总线 (bus number)
pci.device : 十六进制PCI设备 (device number)
pci.device_id : PCI 设备供应商标识(以十六进制形式)
pci.sub_device_id : PCI 子系统标识(以十六进制表示)
pcie.link.gen.current : 当前的 PCIE 通信链路生成方式,在图形处理器未使用时可能会被关闭。
pcie.link.gen.max : 使用此显卡及系统配置所能实现的最大 PCIe 传输链路数量
pcie.link.width.current : 当前的 PCIE 传输带宽在图形处理器未使用时可能会降低。
pcie.link.width.max : 此显卡及系统配置所能支持的 PCIe 网络带宽
index : GPU索引值,其实编号为0
display_mode :显卡是否连接显示器指示位,Enabled 表示有外接显示设备,其他情况 Disabled
display_active : 显示器是否经由GPU处理显示内容指示位,Enabled 表示GPU正负责某显示任务,Disabled表示其他情况。注意:即使显卡没有外接物理显示设备,该指示位依然可能是Enabled
persistence_mode : 是否出于persistence mode 指示位,Enabled 表示开启,Disabled 表示关闭。开启该模式后显卡驱动将常驻显存,降低显卡响应延时,仅Linux平台有效。
accounting.mode : 统计模式是否开启标识位,Enabled 或 Disabled。开启统计模式,占用显卡进程的信息将被统计便于进程执行期间查询或进程结束后查询。进程的总执行时间在进程结束之前保持为0,进程结束后更新为进程实际占用GPU时间。
accounting.buffer_size : 进程循环缓冲区大小,表示被统计进程的最大数量。缓存区中保持着当前被统计的进程,缓冲区满后新进程会覆盖旧进程。
driver_mode.current : 当前使用的驱动模式,在linux平台上该值为 N/A。 Windows平台支持TCC和WDDM两种模式,可通过 -dm 或 -fdm 指定显卡驱动模式。TCC模式专为高性能计算优化,WDDM模式专为图形应用优化,高性能运算不建议使用WDDM模式。
driver_mode.pending : 预设驱动模式,下次设备重启后应用。linux平台总是为N/A
vbios_version : 板载BIOS版本
inforom.img 或 inforom.image : 信息ROM映像的全球版本。该映像版本与VBIOS版本类似,能够唯一地描述板上所闪存的信息ROM的确切版本,而信息ROM对象版本则只是对支持功能的一种指示。
inforom.oem : 适用于原始设备制造商配置数据的版本
inforom.ecc : 用于电子证书记录数据的版本
inforom.pwr : 电源管理数据版本
gom.pending : 预设的GOM模式,设备下次重启时应用
fan.speed : 该值指示风扇应以多大功率运行并不是实际检测量,0表示不运行,100%表示全功率运行。如果风扇损坏或不能控制,则实际运行功率与该值可能不匹配。
pstate : 当前显卡性能状态等级,P0表示满级状态,P12表示最差等级状态
memory.total : 显卡总共可用内存
memory.used :显卡已消耗内存
memory.free :显卡闲置内存
compute_mode :计算模式标志表明在 GPU 上是否可以运行单个或多个计算应用程序
utilization.gpu : 指示在上一个采样间隔中GPU的繁忙程度,占用比。采样间隔根据产品不同,有的是1s,有的是1/6s
utilization.memory : 指示在上一个采样间隔中GPU繁忙程度,读写时间占比。
temperature.gpu : GPU核心温度3.时钟查询
英伟达GPU始终查询使用--query-supported-clocks=参数,有以下字段可供查询
timestamps : 查询时间,按照标准时间格式输出,见上文
gpu_name : 设备的官方名称
gpu_bus_id : 设备PCI 总线ID,格式见上文
gpu_serial :设备序列识别号,应与机身标定设备唯一序列识别号一致
gpu_uuid :设备唯一识别ID,与机身标识无关
memory 或 mem : 支持的Memory Clock
graphics 或 gr : 支持的Graphics Clock4.进程查询
查看使用GPU设备的进程,可以使用--query-compute-apps=参数,有以下字段可供查询
timestamps : 查询时间,按照标准时间格式输出
gpu_name : 设备的官方名称
gpu_bus_id : 设备PCI 总线ID,格式见上文
gpu_serial :设备序列识别号,应与机身标定设备唯一序列识别号一致
gpu_uuid :设备唯一识别ID,与机身标识无关
pid : 进程ID
progress_name 或 name : 进程名称
used_gpu_memory 或 used_memory : 进程占用的内存,在windows平台上当设备运行在WDDM模式下时该值不可用,因为显存由Windows KMD接管而非Nvidia驱动程序5.进程统计
查看被设备统计的进程,即在统计循环缓冲区中的进程,使用--query-accounted-apps=参数,有以下字段可供查询
timestamps : 查询时间,按照标准时间格式输出,见上文
gpu_name : 设备的官方名称
gpu_bus_id : 设备PCI 总线ID,格式见上文
gpu_serial :设备序列识别号,应与机身标定设备唯一序列识别号一致
gpu_uuid :设备唯一识别ID,与机身标识无关
pid : 进程ID
gpu_utilization or gpu_util :GPU使用
mem_utilization or mem_util :进程显存使用占比
max_memory_usage :进程最大内存占用量
time :进程活动时常,单位ms6.格式输出
GPU查询上述信息可通过 --format=参数指定查询信息以哪个格式输出,支持的格式类型有:
csv : 逗号分隔值
noheader : 跳过包含列标题或字段名称的那一行
nounits : 不要为数值数据打印单位
- 标签
- gpu
- nvidia-smi
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1156
评论列表