如何监控NVIDIA GPU 的运行状态和使用情况

设备跟踪和管理正成为机器学习工程的中心焦点。这个任务的核心是在模型训练过程中跟踪和报告gpu的使用效率。

有效的GPU监控可以帮助我们配置一些非常重要的超参数,例如批大小,还可以有效的识别训练中的瓶颈,比如CPU活动(通常是预处理图像)占用的时间很长,导致GPU需要等待下一批数据的交付,从而处于空闲状态。

什么是利用率?

过去的一个采样周期内GPU 内核执行时间的百分比,就称作GPU的利用率。

如果这个值很低,则意味着您的 GPU 并没有全速的工作,可能是受到 CPU或者IO 操作的瓶颈,如果你使用的按小时付费的云服务器,那么就是在浪费时间和金钱!

使用终端命令监控

nvidia-smi

显示如下:

  • 第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。 
  • 第二栏的Temp:是温度,单位摄氏度。 
  • 第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。 
  • 第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。 
  • 第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function 
  • 第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。 
  • 第五第六栏下方的Memory Usage是显存使用率。 
  • 第七栏是浮动的GPU利用率。 
  • 第八栏上方是关于ECC的东西。 
  • 第八栏下方Compute M是计算模式。  

nvidia-smi 命令的其他参数

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

-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 参数指定某个 GPU,多用于查看 GPU 信息时指定其中一个 GPU。-q 参数查看 GPU 的全部信息。可通过 -i 参数指定查看某个 GPU 的参数。如:
nvidia-smi -i 0 -q

topo

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程和线程的本质和区别

进程是什么? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程…

HBase学习笔记——概念及原理

1.什么是HBase HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBas…

.bat是什么语言_简单说说当我们打开网页时,浏览器到底做了什么?

前言:为什么我们需要掌握浏览器的原理作为一名前端研发,平日里打交道最多的,就是各式各样的客户端。不论你是针对pc端还是移动端,甚至是专门在微信端做前端研发,都需要跟一样东西接触——浏览器。不知道你有没有留意过…

花书《深度学习》代码实现:02 概率部分:概率密度函数+期望+常见概率分布代码实现

1 概率 1.1 概率与随机变量 频率学派概率 (Frequentist Probability):认为概率和事件发⽣的频率相关。贝叶斯学派概率 (Bayesian Probability):认为概率是对某件事发⽣的确定程度,可以理解成是确信的程度。随机变量 (Random Variable)&…

内存泄露Lowmemorykiller分析

01 前言 最近疫苗事情非常火热,这件事情让我对刘强东有点刮目相看,我们需要更多的人关注曝光此类问题 02 正文 Android Kernel 会定时执行一次检查,杀死一些进程,释放掉内存。Low memory killer 是定时进行检查。Low memory killer 主要是通过进程的oom_adj 来判定进程的…

腾讯官网生成qq在线客服代码

http://jingyan.baidu.com/article/e2284b2b42ce8ce2e6118ddd.html转载于:https://www.cnblogs.com/diyunpeng/p/6576696.html

TabError: inconsistent use of tabs and spaces in indentation

本文使用PyCharm的格式化代码功能解决TabError: inconsistent use of tabs and spaces in indentation。 1、提出问题: 当把代码从别处复制进来PyCharm,然后运行报错:TabError: inconsistent use of tabs and spaces in indentation 2、 分…

python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。

本文字数:1575 字阅读本文大概需要:4 分钟写在之前Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预想的结果大相径庭,这个对于初学者来…

Linux内核模块编译

Linux内核模块是一种可被动态加载和卸载的可执行程序。通过内核模块可以扩展内核功能,内核模块通常用于设备驱动、文件系统等。如果没有内核模块,需要向内核添加功能就需要自发代码、重新编译内核、安装新内核等步骤。 内核空间中不止一个程序试图访问驱动程序模块,导致一个…

AI-无损检测方向速读:基于深度学习的表面缺陷检测方法综述

1 表面缺陷检测的概念 表面缺陷检测是机器视觉领域中非常重要的一项研究内容, 也称为 AOI (Automated optical inspection) 或 ASI (Automated surface inspection),它是利用机器视觉设备获取图像来判断采集图像中是否存在缺陷的技术。 1.1 传统检测的缺陷(非CNN)…

1016. 部分A+B (15)

1016. 部分AB (15) 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A 3862767,DA 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA…

【完美解决】RuntimeError: one of the variables needed for gradient computation has been modified by an inp

正文在后面,往下拉即可~~~~~~~~~~~~ 欢迎各位深度学习的小伙伴订阅的我的专栏 Pytorch深度学习理论篇实战篇(2023版)专栏地址: 💛Pytorch深度学习理论篇(2023版)https://blog.csdn.net/qq_39237205/category_12077968.html 💚Pyt…

python正则表达式入门_Python中的正则表达式教程

本文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 正则表达式经常被用到,而自己总是记不全,转载一份完整的以备不时之需。 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具&am…

_0_web_基础

创:18_3_2017修:20_3_2017 什么是前端?  --在浏览器中展示内容以及处理请求 什么是浏览器?   --一款能将网页内容展现给用户查看,并且让用户与网页交互的软件 什么是内核?   --渲染引擎,规…

解决ImportError: cannot import name ‘NoReturn‘报错

1、问题描述: 复现论文时,报错:ImportError: cannot import name ‘NoReturn‘ 尝试 pip install 安装 发现并没有这么简单 2、导致问题的原因 Python版本(3.6.1)与pip版本(21.2.3)不匹配。…

码农,你的35岁?

码农的35岁 最近经常听到关于这个话题的讨论 从深圳没有房到深圳4套房的同事 很突然 大家意识到自己在慢慢变老 好了 先放个图上来 当你老了的时候 更多的人敢对你提意见了 包括HR,包括老板,包括同事 然而 在年轻的时候,老板叫我们往东&#xff0…

Pytorch报错:AttributeError: ‘version_info‘ object has no attribute ‘__version__‘

代码莫名报错:AttributeError: version_info object has no attribute __version__ 解决:pip install pyparsing2.4.7

测试人员要了解的知识

写代码  测试需要学会编程吗?  我比较建议学,不用学太深,因为测试的对象就是软件,那么它们是如何构成的还是需要做一些基本的了解。有了程序员的思维,在与开发的沟通过程中也能更好的相互理解。学哪门语言&#xf…

删除win7多余的系统还原点_【Win7封装教程2019版】系列(二)必要的系统调整

这个系列更新就来说下必要的系统调整,因为在优化和清理之前,需要先对系统做一些必要的调整,以便让接下来的封装工作开展的更顺畅。本教程所有系列所有步骤都是连续连贯的,都有先后顺序的,请按照顺序来做。为了防止出现…

Bootloader传参数到Kernel

01 前言 这几天一直在考虑准备写点什么东西,本来想介绍下文件系统,不过文件系统是概念性的东西比较多,我自己也是看书摘抄的多,Bootloader传参数到Kernel,这个在我们开发中会经常遇到。 bootloader有什么用? 我突然想到,小时候去河里炸鱼,我们要自制鱼雷,把烟花里面…