nvidia-smi 命令参数含义, nvitop
nvidia-smi 命令参数含义
GPU 的实时状态监测
解释相关参数含义:
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 表示都有。
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