Linux 常用nvidia-smi命令详解(最新推荐)

 更新时间:2023年05月05日 10:56:43   作者:双份浓缩馥芮白  
NVIDIA-smi 在 Linux 上附带 NVIDIA GPU 显示驱动程序,以及 64 位 Windows Server 2008 R2 和 Windows 7,这篇文章主要介绍了Linux 常用nvidia-smi命令详解,需要的朋友可以参考下

简介

nvidia-smi - NVIDIA System Management Interface program

nvidia smi(也称为NVSMI)为来自 Fermi 和更高体系结构系列的 nvidia Tesla、Quadro、GRID 和 GeForce 设备提供监控和管理功能。GeForce Titan系列设备支持大多数功能,为GeForce品牌的其余部分提供的信息非常有限。NVSMI是一种跨平台工具,支持所有标准NVIDIA驱动程序支持的Linux发行版,以及从Windows Server 2008 R2开始的64位版本的Windows。

详细的信息可以去手册中查找:man nvidia-smi

✨nvidia-smi

NVIDIA 系統管理介面 (nvidia-smi) 是一個命令行工具,基於 NVIDIA Management Library (NVML) 之勝,旨在協助管理和監控 NVIDIA GPU 設備。

此实用程序允许管理员查询 GPU 设备状态,并允许管理员使用适当的权限修改 GPU 设备状态。它针对Tesla, GRID, Quadro和 Titan X 产品,但其他 NVIDIA GPU 也提供有限的支持。

NVIDIA-smi 在 Linux 上附带 NVIDIA GPU 显示驱动程序,以及 64 位 Windows Server 2008 R2 和 Windows 7。Nvidia-smi 可以将查询信息报告为 XML 或人类可读的纯文本到标准输出或文件。有关更多详细信息,请参阅 nvidia-smi 文档

✨常用nvidia-smi命令显示GPU所有信息

nvidia-smi

间隔1秒刷新GPU信息

nvidia-smi -l 1

列出当前所有GPU设备

nvidia-smi -L

查看当前的 GPU 时钟速度、默认时钟速度和最大可能的时钟速度

nvidia-smi -q -d CLOCK

PS:

nvidia-smi 命令

直接在命令行输入 nvidia-smi 命令应该是各位炼丹师再熟悉不过的命令了。

注意:建议使用 watch -n 0.5 nvidia-smi 来动态地观察 GPU 的状态。

通过 nvidia-smi 命令,我们会得到这样一个信息丰富的页面:

Tue Nov  9 13:47:51 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44       Driver Version: 495.44       CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:17:00.0 Off |                  N/A |
| 62%   78C    P2   155W / 170W |  10123MiB / 12051MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:65:00.0 Off |                  N/A |
|100%   92C    P2   136W / 170W |  10121MiB / 12053MiB |     99%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  Off  | 00000000:B5:00.0 Off |                  N/A |
| 32%   34C    P8    12W / 170W |      5MiB / 12053MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce ...  Off  | 00000000:B6:00.0 Off |                  N/A |
| 30%   37C    P8    13W / 170W |      5MiB / 12053MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1258      G   /usr/lib/xorg/Xorg                  6MiB |
|    0   N/A  N/A     10426      C   ...a3/envs/JJ_env/bin/python    10111MiB |
|    1   N/A  N/A      1258      G   /usr/lib/xorg/Xorg                  4MiB |
|    1   N/A  N/A     10427      C   ...a3/envs/JJ_env/bin/python    10111MiB |
|    2   N/A  N/A      1258      G   /usr/lib/xorg/Xorg                  4MiB |
|    3   N/A  N/A      1258      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

其中显存占用和 GPU 利用率当然是我们最常来查看的参数,但是在一些情况下(比如要重点监控 GPU 的散热情况时)其他参数也很有用,笔者简单总结了一下该命令输出的各个参数的含义如下图:

可以看到其中各个位置的对应含义在输出本身中其实都已经指出了(蓝框),红框则指出了输出各个部分的含义,大部分输出的作用一目了然,这里笔者将其中几个不那么直观的参数简单整理一下:

  • Fan:从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。
  • Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
  • Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
  • Disp.A:Display Active,表示GPU的显示是否初始化。
  • Compute M:是计算模式。
  • Volatile Uncorr. ECC:是否开启 ECC 纠错。
  • type:进程类型。C 表示计算进程,G 表示图形进程,C+G 表示都有。

nvidia-smi 命令的其他参数

除了直接运行 nvidia-smi 命令之外,还可以加一些参数,来查看一些本机 Nvidia GPU 的其他一些状态。下面笔者简单介绍几个常用的参数,其他的有需要可以去手册中查找:man nvidia-smi

-L

-L 参数显示连接到系统的 GPU 列表。

nvidia-smi -L

# 输出:
GPU 0: NVIDIA GeForce RTX 3060 (UUID: GPU-55275dff-****-****-****-6408855fced9)
GPU 1: NVIDIA GeForce RTX 3060 (UUID: GPU-0a1e7f37-****-****-****-df9a8bce6d6b)
GPU 2: NVIDIA GeForce RTX 3060 (UUID: GPU-38e2771e-****-****-****-d5cbb85c58d8)
GPU 3: NVIDIA GeForce RTX 3060 (UUID: GPU-8b45b004-****-****-****-46c05975a9f0)

GPU UUID:此值是GPU的全球唯一不可变字母数字标识符。它与主板上的物理标签无关。

-i

-i 参数指定某个 GPU,多用于查看 GPU 信息时指定其中一个 GPU。

-q

-q 参数查看 GPU 的全部信息。可通过 -i 参数指定查看某个 GPU 的参数。

如:

nvidia-smi -i 0 -q

输出太长了,笔者这里就不列了,大家可以自己试一下,是很完整的信息。

topo

topo 展示多GPU系统的拓扑连接信息,通常配合 -m 参数即 nvidia-smi topo -m,其他参数可自行查阅。

输出如下,这里用代码块没法对齐,就直接贴图了:

这里只介绍了几个笔者常用的参数,其他参数请自行查阅手册吧。

扩展:Linux | nvidia-smi 命令使用记录 

简介

nvidia smi(也称为NVSMI)为来自 Fermi 和更高体系结构系列的 nvidia Tesla、Quadro、GRID 和 GeForce 设备提供监控和管理功能。GeForce Titan系列设备支持大多数功能,为GeForce品牌的其余部分提供的信息非常有限。NVSMI是一种跨平台工具,支持所有标准NVIDIA驱动程序支持的Linux发行版,以及从Windows Server 2008 R2开始的64位版本的Windows。

详细的信息可以去手册中查找:man nvidia-smi。

nvidia-smi 命令

直接在命令行输入nvidia-smi,得到下图结果

蓝框指出了在输出本身中各个位置的对应含义,红框指出了输出各个部分的含义。

Fan:从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。
Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
Disp.A:Display Active,表示GPU的显示是否初始化。
Compute M:是计算模式。
Volatile Uncorr. ECC:是否开启 ECC 纠错。
type:进程类型。C 表示计算进程,G 表示图形进程,C+G 表示都有。

nvidia-smi 命令的参数

一些常用的参数,查看状态

nvidia-smi -L

-L 参数显示连接到系统的 GPU 列表。

nvidia-smi -L
# 输出:
GPU 0: NVIDIA GeForce RTX 3060 (UUID: GPU-55275dff-****-****-****-6408855fced9)
GPU 1: NVIDIA GeForce RTX 3060 (UUID: GPU-0a1e7f37-****-****-****-df9a8bce6d6b)
GPU 2: NVIDIA GeForce RTX 3060 (UUID: GPU-38e2771e-****-****-****-d5cbb85c58d8)
GPU 3: NVIDIA GeForce RTX 3060 (UUID: GPU-8b45b004-****-****-****-46c05975a9f0)

GPU UUID:此值是GPU的全球唯一不可变字母数字标识符。它与主板上的物理标签无关。

nvidia-smi -i

-i 参数指定某个 GPU,多用于查看 GPU 信息时指定其中一个 GPU。

nvidia-smi -q

-q 参数查看 GPU 的全部信息。可通过 -i 参数指定查看某个 GPU 的参数

到此这篇关于Linux 常用nvidia-smi命令详解的文章就介绍到这了,更多相关Linux nvidia-smi命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法

    linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法

    本文给大家介绍linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法,原因分析及解决办法给大家讲解的非常明白,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • shell 脚本中的 '-f' 和 '-d' 是什么意思

    shell 脚本中的 '-f' 和 '-d&apo

    本文讲解如何使用'-f'和'-d'条件表达式来测试文件和目录,在实际脚本中,这样的条件判断常用于根据不同的情况执行不同的操作,感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • shell产生随机数七种方法的实现

    shell产生随机数七种方法的实现

    这篇文章主要介绍了shell产生随机数七种方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用Bash Shell获取文件名和目录名的简单方法

    使用Bash Shell获取文件名和目录名的简单方法

    这篇文章主要介绍了使用Bash Shell获取文件名和目录名的简单方法,解析路径是通常用Shell来实现的基本功能之一,需要的朋友可以参考下
    2015-07-07
  • 检查Linux系统中文件大小的方法总结

    检查Linux系统中文件大小的方法总结

    在Linux操作系统中,掌握如何高效检查文件大小是每位开发者和系统管理员的必备技能,本文详细介绍了四种检查Linux文件大小的方法,感兴趣的朋友可以参考下
    2024-03-03
  • Linux 中awk 提取包含某个关键字的段落

    Linux 中awk 提取包含某个关键字的段落

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具。这篇文章主要介绍了Linux 中awk 提取包含某个关键字的段落实例代码,需要的朋友可以参考下
    2020-01-01
  • bash if条件判断的使用

    bash if条件判断的使用

    本文主要介绍了bash if条件判断的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 浅谈CI脚本异常退出问题定位

    浅谈CI脚本异常退出问题定位

    下面小编就为大家带来一篇浅谈CI脚本异常退出问题定位。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • linux shell实现守护进程脚本

    linux shell实现守护进程脚本

    这篇文章主要介绍了linux shell实现守护进程脚本,非常简单实用的代码,这里推荐给小伙伴。希望大家能够喜欢。
    2015-03-03
  • Centos下查看网卡的实时流量命令

    Centos下查看网卡的实时流量命令

    本文介绍了linux下查看网卡流量的六种方法,linux系统中使用nload、iftop、iostat等工具查看网卡流量,这里我们先来详细讲解下 iptraf 方法,需要的朋友参考下。
    2015-05-05

最新评论