简介

nvidia-smi全称是NVIDIA System Management Interface ,它是一个基于NVIDIA Management Library(NVML)构建的命令行实用工具,旨在帮助管理和监控NVIDIA GPU设备。

详解nvidia-smi命令

接下来我介绍一下,用nvidia-smi命令来查询机器GPU使用情况的相关内容。​

nvidia-smi

我以上图的查询内容为例,已经复制出来了,如下,

(myconda) root@8dbdc324be74:~# nvidia-smi
Tue Jul 20 14:35:11 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 Tesla P100-SXM2... On | 00000000:1C:00.0 Off | 0 |
| N/A 27C P0 31W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... On | 00000000:1D:00.0 Off | 0 |
| N/A 25C P0 32W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

我们来拆分一下

NVIDIA-SMI 460.32.03          #
Driver Version: 460.32.03 # 英伟达驱动版本
CUDA Version: 11.2 # CUDA版本
|-------------------------------+----------------------+----------------------+
| 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 Tesla P100-SXM2... On | 00000000:1C:00.0 Off | 0 |
| N/A 27C P0 31W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... On | 00000000:1D:00.0 Off | 0 |
| N/A 25C P0 32W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+ GPU: # GPU的编号,0代表第一张显卡,1代表第二张,依次类推 Fan: # 风扇转速(0%–100%),N/A表示没有风扇 Name: # GPU的型号,以此处为例是P100 Temp: # GPU温度(GPU温度过高会导致GPU频率下降) Perf: # 性能状态,从P0(最大性能)到P12(最小性能) Pwr: # GPU功耗 Persistence-M: # 持续模式的状态(持续模式耗能大,但在新的GPU应用启动时花费时间更少) Bus-Id: # GPU总线,domain:bus:device.function Disp.A: # Display Active,表示GPU的显示是否初始化 Memory-Usage: # 显存使用率(显示显存占用情况) Volatile GPU-Util: # 浮动的GPU利用率 ECC: # 是否开启错误检查和纠正技术,0/DISABLED, 1/ENABLED Compute M.: # 计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED

Memory-Usage和Volatile GPU-Util的两个不一样的东西,显卡由GPU和显存等部分所构成,GPU相当于显卡上的CPU,显存相当于显卡上的内存。在跑任务的过程中可以通过优化代码来提高这两者的使用率。​

nvcc和nvidia-smi显示的CUDA版本不同?

(myconda) root@8dbdc324be74:~# nvidia-smi
Tue Jul 20 14:35:11 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 Tesla P100-SXM2... On | 00000000:1C:00.0 Off | 0 |
| N/A 27C P0 31W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 Tesla P100-SXM2... On | 00000000:1D:00.0 Off | 0 |
| N/A 25C P0 32W / 300W | 0MiB / 16280MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
(myconda) root@8dbdc324be74:~# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0

可以看到nvcc的CUDA版本是11.1,而nvidia-smi的CUDA版本是11.2。这对运行任务是没有影响的,绝大多数代码都是可以正常跑起来的,引起这个的主要是因为CUDA两个主要的API,runtime API和driver API。神奇的是这两个API都有自己对应的CUDA版本(如图上的11.1和11.2)。在StackOverflow有一个解释,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。在矩池云上的表现可以解释为driver API来自于物理机器的驱动版本,runtime API是来自于矩池云镜像环境内的CUDA Toolkit版本。

实时显示显存使用情况

nvidia-smi -l 5  #5秒刷新一次

动态刷新信息(默认5s刷新一次),按Ctrl+C停止,可指定刷新频率,以秒为单位

#每隔一秒刷新一次,刷新频率改中间数字即可
watch -n 1 -d nvidia-smi

在这里不建议使用watch查看nvidia-smi,watch每个时间周期开启一个进程(PID),查看后关闭进程,可能会影响到其他进程。

最新文章

  1. MyBatis3.2从入门到精通第一章
  2. sql常用语句(1)
  3. slide效果
  4. mybatis——延迟加载
  5. 08JAVA多态
  6. 使用Aspose.Cells 设置chart的y坐标轴显示值
  7. ubuntu打不开图形界面,显示run in low_graphic mode
  8. Android网络通信之WiFi Direct
  9. 利用Jersey构建REST之入门实例
  10. SPOJ 1108 Card Trick 暴力模拟
  11. C++中变量自动初始化的问题
  12. Oracle AWR报告自动生成并ftp脚本
  13. C++下写的MD5类,简单易用
  14. Delphi 调试Dll报错 通过GetLastError显示错误信息。
  15. window.opener和window.open
  16. 安装MongoDB报错
  17. [CI]CodeIgniter特性 & 结构
  18. 【CSS】Sass理解
  19. PHP中单引号与双引号的区别分析
  20. 简单的js动态显示当前时间

热门文章

  1. HTML图片轮播
  2. Android中ActionBar和ToolBar添加返回箭头
  3. Ansible playbook实现apache批量部署,并对不同主机提供以各自IP地址为内容的index.html
  4. Fiddler监听Https请求响应
  5. 如何综合运用对称加密技术、非对称加密技术(公钥密码体制)和Hash函数 保证信息的保密性、完整性、可用性和不可否认性?
  6. VMware15.5虚拟机安装及LInux系统安装前 准备工作
  7. Element-UI整合VUE下拉选项无法选中的一个小问题
  8. CSS代码示例-背景属性(background)
  9. nginx加大缓存
  10. .Net Core AOP之IExceptionFilter