简介

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的型号,以此处为例是P100Temp:               # GPU温度(GPU温度过高会导致GPU频率下降)Perf:               # 性能状态,从P0(最大性能)到P12(最小性能)Pwr:                # GPU功耗Persistence-M:      #  持续模式的状态(持续模式耗能大,但在新的GPU应用启动时花费时间更少)Bus-Id:             # GPU总线,domain:bus:device.functionDisp.A:             # Display Active,表示GPU的显示是否初始化Memory-Usage:       # 显存使用率(显示显存占用情况)Volatile GPU-Util:  # 浮动的GPU利用率ECC:                # 是否开启错误检查和纠正技术,0/DISABLED, 1/ENABLEDCompute 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),查看后关闭进程,可能会影响到其他进程。

矩池云上使用nvidia-smi命令教程相关推荐

  1. 矩池云上安装CUDA头文件教程

    简介 CUDA头文件(cuda header files)在进行CUDA编程的时候会经常遇到.下面我介绍了一些常用的CUDA头文件及其安装. 英伟达官方源 矩池云cuda10及以上 https://d ...

  2. 矩池云上安装ikatago及链接教程

    https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ...

  3. 矩池云上安装及使用Milvus教程

    选择cuda10.1的镜像 更新源及拷贝文件到本地 apt-get update cp -r /public/database/milvus/ / cd /milvus/ cp ./lib/* /us ...

  4. 矩池云上CUDA、nvcc、cuDNN相关操作汇总

    本文汇总整理如何在矩池云上安装.使用CUDA .nvcc.cudnn的教程,后续还将不断补充,也欢迎大家在评论区提相关问题. 优质提问和反馈,将有机会获得矩池云算力豆激励- CUDA相关文章 CUDA ...

  5. 在矩池云上使用A6000/3090跑ikatago说明

    因为英伟达30系和a系列对cuda版本的要求是cuda11及以上. https://github.com/kinfkong/ikatago-resources/tree/master/dockerfi ...

  6. 在矩池云上复现 CVPR 2018 LearningToCompare_FSL 环境

    这是 CVPR 2018 的一篇少样本学习论文:Learning to Compare: Relation Network for Few-Shot Learning 源码地址:https://git ...

  7. 如何在矩池云上安装java

    在矩池云上安装java其实非常简单,按照下面的办法安装即可 安装 OpenJDK 11 apt update apt install openjdk-11-jdk java -version 安装 O ...

  8. 矩池云上复现论文 Neural Graph Collaborative Filtering 环境复现

    矩池云上复现论文 Neural Graph Collaborative Filtering 环境复现 Neural Graph Collaborative Filtering (NGCF) is a ...

  9. 如何更省钱的在矩池云上使用pycharm

    如果使用的话可以看一下这个教程<PyCharm 使用矩池云机器教程>. 第一步.要了解pycharm同步的逻辑 是因为pycharm官方限制,必须每次都要同步数据的,不管你在矩池云上有没有 ...

最新文章

  1. 深入剖析ISAServer 网页缓存及配置
  2. [**经典**] 电脑故障检查不完全流程图
  3. boost::parameter::aux::unwrap_cv_reference相关的测试程序
  4. 运行时报错RuntimeError: expected device cpu but got device cuda:0
  5. cocos2d-x 旅程開始--(实现单击与长按)
  6. 微信小程序之弹框modal
  7. 计算机工程与应用3天外审,200629计算机工程与应用.pdf
  8. php gzip 关闭,php能否在当前脚本页关闭nginx的gzip输出
  9. 修改Docker镜像源地址为网易镜像源地址
  10. 在Windows上将Ctrl+C信号发送到Python subprocess子进程
  11. 量化交易 第八课 多因子策略流程
  12. php实现微信小程序登陆功能
  13. RabbitMQ使用规范
  14. c语言 实现推箱子小游戏
  15. 巨潮网站爬虫程序修改
  16. css样式表的作用和意义,什么是CSS?
  17. mysql改为sql_sql - 将MySQL列更改为AUTO_INCREMENT
  18. Android 显示软键盘输入法和强制隐藏软键盘输入法
  19. 03_跳转sucess方法和error方法
  20. 金三银四,中高级测试面经,我不信你能看完!

热门文章

  1. hbase 和 zookeeper建立连接_我对Hbase的一些理解——HMaster与Zookeeper之间的交互机制...
  2. PyTorch 学习笔记(三):transforms的二十二个方法
  3. Machine Learning课程中的常见符号的含义
  4. Python中如何查看(打印输出)变量的数据类型
  5. 【实用】Pyinstaller UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xce in position解决方案
  6. 给你出道题---N个数字的静态决策区分问题
  7. Python面向对象几个知识点
  8. 【Qt教程】1.10 - Qt5模态与非模态对话框( QDialog)
  9. leetcode880.DecodedStringatIndex
  10. Spring Boot加载指定属性文件