nvidia-smi 命令参数含义, nvitop

nvidia-smi 命令参数含义

GPU 的实时状态监测

image

解释相关参数含义:

    GPU:本机中的GPU编号

    Name:GPU 类型

    Persistence-M:

    Fan:风扇转速

    Temp:温度,单位摄氏度

    Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能

    Pwr:Usage/Cap:能耗表示

    Bus-Id:涉及GPU总线的相关信息;

    Disp.A:Display Active,表示GPU的显示是否初始化

    Memory-Usage:显存使用率

    Volatile GPU-Util:浮动的GPU利用率

    Uncorr. ECC:关于ECC的东西

    Compute M.:计算模式

    Processes 显示每块GPU上每个进程所使用的显存情况。

表格参数详解:

GPU 本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0
Fan:风扇转速(0%-100%),N/A表示没有风扇,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。
Name:GPU类型,图上GPU的类型是:GeForce MX250/RTX 2080Ti
Temp:GPU的温度(GPU温度过高会导致GPU的频率下降)
Perf:GPU的性能状态,从P0(最大性能)到P12(最小性能),图上是:P0
Persistence-M:持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时花费的时间更少,图上显示的是:off
Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap总共多少
Bus-Id:GPU总线相关显示,domain:bus:device.function
Disp.A:Display Active ,表示GPU的显示是否初始化
Memory-Usage:显存使用率
Volatile GPU-Util:GPU使用率
Uncorr. ECC:关于ECC的东西,是否开启错误检查和纠正技术,0/disabled,1/enabled
Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU
type: 进程类型。C 表示计算进程,G 表示图形进程,C+G 表示都有。

image
image

watch命令实时监测显卡

watch的基本用法是:
watch [options]  command最常用的参数是 -n, 后面指定是每多少秒来执行一次命令。
Nvidia自带了一个nvidia-smi的命令行工具,会显示显存使用情况:
nvidia-smi设置一个每 10s 显示一次显存的情况:watch -n 10 nvidia-smi  # n=1时,就可以实时监测显卡使用情况。这样,只要开着这个命令行窗口,就可以每n秒刷新一次。

隔几秒刷新一下显存状态:nvidia-smi -l 秒数

隔两秒刷新一下GPU的状态:
nvidia-smi -l 2

将监控结果写入文件,并且指定写入文件的监控字段

nvidia-smi -l 1 --format=csv --filename=report.csv --query-gpu=timestamp,name,index,utilization.gpu,memory.total,memory.used,power.draw

-l:隔多久记录一次,命令中写的是1
–format:结果记录文件格式是csv
–filename: 结果记录文件的名字
–query-gpu:记录哪些数据到csv文件
timestamp:时间戳
memory.total:显存大小
memory.total:显存使用了多少
utilization.gpu:GPU使用率
power.draw:显存功耗,对应Pwr:Usage


nvitop

https://pypi.org/project/nvitop/

python 脚本指定用哪块GPU

一般情况:
import os 
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"  #(保证程序cuda序号与实际cuda序号对应)
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"  #(代表仅使用第0,1号GPU)

单GPU:
os.environ["CUDA_VISIBLE_DEVICES"] = "2"  #代表只使用第3个gpu

改变系统变量

#添加系统变量, 这里是要使用的GPU编号
export CUDA_VISIBLE_DEVICES=0

# 在程序开头设置
os.environ["CUDA_VISIBLE_DEVICES"] = '0,1,2,3'

# 运行程序时使用命令行,来设置该程序可见的gpu:
CUDA_VISIBLE_DEVICES=0,1,2,3 python xxx.py

使用nvidia相关命令

nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持Linux以及从Windows系统。

nvidia-smi
watch -n 1 -d nvidia-smi # 每隔一秒刷新一次

参考文档:
https://bgbiao.top/post/manager-your-gpus/
https://blog.csdn.net/C_chuxin/article/details/82993350

https://blog.csdn.net/C_chuxin/article/details/82993350
https://www.cnblogs.com/carle-09/p/12420321.html
https://itcn.blog/p/0048359132.html

posted @ 2022-09-05 11:34  michaelchengjl  阅读(4645)  评论(0编辑  收藏  举报