NVIDIA GPU 常用操作
参考:https://blog.csdn.net/masound/article/details/81909323
1. nvidia-smi
watch -n 2 nvidia-smi (间隔2秒查询一次任务)
nvidia-smi 使用注意点:
1. nvidia-smi 默认是只统计 sm 的加权平均使用量,也就是GPU-Util的统计,
nvidia-smi采集粒度偏大
2. ffmpeg 在使用编解码的时候,也会少量的使用到sm资源, 单sm使用率100%后会影响编解码的性能,
如果sm使用率不高的情况,对硬转码没有影响; codec和sm共用时钟源和电源
- 指定板卡id,查看gpu状态,nvidia-smi -i 0
root@n19-045-100:~# nvidia-smi -i 0
Fri Oct 22 16:01:31 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.116.00 Driver Version: 418.116.00 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla P4 On | 00000000:1A:00.0 Off | 0 |
| N/A 56C P0 30W / 75W | 140MiB / 7611MiB | 0% Default |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 588727 C ...ffmpeg_build/gpu/static/bin/ffmpeg 130MiB |
+-----------------------------------------------------------------------------+
- 查看gpu 的详细状态信息
nvidia-smi -q
nvidia-smi -i 0 -q
root@n19-045-200:~# nvidia-smi -i 0 -q
==============NVSMI LOG==============
Timestamp : Fri Oct 22 16:48:35 2021
Driver Version : 418.116.00
CUDA Version : 10.1Attached GPUs : 7
GPU 00000000:1A:00.0Product Name : Tesla P4Product Brand : TeslaDisplay Mode : EnabledDisplay Active : DisabledPersistence Mode : EnabledAccounting Mode : DisabledAccounting Mode Buffer Size : 4000Driver ModelCurrent : N/APending : N/ASerial Number : 0325017003772GPU UUID : GPU-b1fc4bf1-cc9b-2add-586c-b39397c1eaadMinor Number : 0VBIOS Version : 86.04.55.00.01MultiGPU Board : NoBoard ID : 0x1a00GPU Part Number : 900-2G414-0000-000Inforom VersionImage Version : G414.0200.00.03OEM Object : 1.1ECC Object : 4.1Power Management Object : N/AGPU Operation ModeCurrent : N/APending : N/AGPU Virtualization ModeVirtualization mode : NoneIBMNPURelaxed Ordering Mode : N/APCIBus : 0x1ADevice : 0x00Domain : 0x0000Device Id : 0x1BB310DEBus Id : 00000000:1A:00.0Sub System Id : 0x11D810DEGPU Link InfoPCIe GenerationMax : 3Current : 3Link WidthMax : 16xCurrent : 16xBridge ChipType : N/AFirmware : N/AReplays Since Reset : 0Replay Number Rollovers : 0Tx Throughput : 0 KB/sRx Throughput : 0 KB/sFan Speed : N/APerformance State : P0Clocks Throttle ReasonsIdle : Not ActiveApplications Clocks Setting : Not ActiveSW Power Cap : Not ActiveHW Slowdown : Not ActiveHW Thermal Slowdown : Not ActiveHW Power Brake Slowdown : Not ActiveSync Boost : Not ActiveSW Thermal Slowdown : Not ActiveDisplay Clock Setting : Not ActiveFB Memory UsageTotal : 7611 MiBUsed : 140 MiBFree : 7471 MiBBAR1 Memory UsageTotal : 256 MiBUsed : 2 MiBFree : 254 MiBCompute Mode : DefaultUtilizationGpu : 0 %Memory : 0 %Encoder : 0 %Decoder : 0 %Encoder StatsActive Sessions : 0Average FPS : 0Average Latency : 0FBC StatsActive Sessions : 0Average FPS : 0Average Latency : 0Ecc ModeCurrent : EnabledPending : EnabledECC ErrorsVolatileSingle BitDevice Memory : 0Register File : N/AL1 Cache : N/AL2 Cache : N/ATexture Memory : N/ATexture Shared : N/ACBU : N/ATotal : 0Double BitDevice Memory : 0Register File : N/AL1 Cache : N/AL2 Cache : N/ATexture Memory : N/ATexture Shared : N/ACBU : N/ATotal : 0AggregateSingle BitDevice Memory : 0Register File : N/AL1 Cache : N/AL2 Cache : N/ATexture Memory : N/ATexture Shared : N/ACBU : N/ATotal : 0Double BitDevice Memory : 0Register File : N/AL1 Cache : N/AL2 Cache : N/ATexture Memory : N/ATexture Shared : N/ACBU : N/ATotal : 0Retired PagesSingle Bit ECC : 0Double Bit ECC : 0Pending Page Blacklist : NoTemperatureGPU Current Temp : 56 CGPU Shutdown Temp : 94 CGPU Slowdown Temp : 91 CGPU Max Operating Temp : N/AMemory Current Temp : N/AMemory Max Operating Temp : N/APower ReadingsPower Management : SupportedPower Draw : 30.26 WPower Limit : 75.00 WDefault Power Limit : 75.00 WEnforced Power Limit : 75.00 WMin Power Limit : 60.00 WMax Power Limit : 75.00 WClocksGraphics : 1531 MHzSM : 1531 MHzMemory : 2999 MHzVideo : 1366 MHzApplications ClocksGraphics : 1531 MHzMemory : 3003 MHzDefault Applications ClocksGraphics : 885 MHzMemory : 3003 MHzMax ClocksGraphics : 1531 MHzSM : 1531 MHzMemory : 3003 MHzVideo : 1379 MHzMax Customer Boost ClocksGraphics : 1113 MHzClock PolicyAuto Boost : N/AAuto Boost Default : N/AProcessesProcess ID : 588727Type : CName : /opt/ffmpeg_build/gpu/static/bin/ffmpegUsed GPU Memory : 130 MiB
- 查看gpu 的编码器状态
nvidia-smi -q | grep -i enc
nvidia-smi -i 0 -q | grep -i enc
root@n19-045-200:~# nvidia-smi -i 0 -q | grep -i encPersistence Mode : EnabledEncoder : 0 %Encoder StatsAverage Latency : 0Average Latency : 0
- 设备监控命令,以滚动条形式显示GPU设备统计信息
nvidia-smi dmon
GPU统计信息以一行的滚动格式显示,要监控的指标可以基于终端窗口的宽度进行调整。 监控所有的GPU
附加选项:
nvidia-smi dmon -i xxx
用逗号分隔GPU索引,PCI总线ID或UUID
nvidia-smi dmon -d xxx
指定刷新时间(默认为1秒)
nvidia-smi dmon -c xxx
显示指定数目的统计信息并退出
nvidia-smi dmon -s xxx
指定显示哪些监控指标(默认为puc),其中:
p:电源使用情况和温度(pwr:功耗,temp:温度)
u:GPU使用率(sm:流处理器,mem:显存,enc:编码资源,dec:解码资源)
c:GPU处理器和GPU内存时钟频率(mclk:显存频率,pclk:处理器频率)
v:电源和热力异常
m:FB内存和Bar1内存
e:ECC错误和PCIe重显错误个数
t:PCIe读写带宽
nvidia-smi dmon –o D/T
指定显示的时间格式D:YYYYMMDD,THH:MM:SS
nvidia-smi dmon –f xxx
将查询的信息输出到具体的文件中,不在终端显示
- 进程监控命令,以滚动条形式显示GPU进程状态信息。
nvidia-smi pmon
GPU进程统计信息以一行的滚动格式显示,此工具列出了GPU所有进程的统计信息。要监控的指标可以基于终端窗口的宽度进行调整。
附加选项:
nvidia-smi pmon -i xxx
用逗号分隔GPU索引,PCI总线ID或UUID
nvidia-smi pmon -d xxx
指定刷新时间(默认为1秒,最大为10秒)
nvidia-smi pmon -c xxx
显示指定数目的统计信息并退出
nvidia-smi pmon -s xxx
指定显示哪些监控指标(默认为u),其中:
u:GPU使用率
m:FB内存使用情况
nvidia-smi pmon -o D/T
指定显示的时间格式D:YYYYMMDD,THH:MM:SS
nvidia-smi pmon -f xxx
将查询的信息输出到具体的文件中,不在终端显示
nvidia-smi pmon -i 3 -d 1 -c 1 -s um
2. nvml监控模块
- 通过CUDA的Nvml库获取GPU的使用率
- python实现 https://pypi.org/project/pynvml/
>>> from pynvml import *
>>> nvmlInit()
>>> print("Driver Version:", nvmlSystemGetDriverVersion())
Driver Version: b'418.116.00'
>>> deviceCount = nvmlDeviceGetCount()
>>> for i in range(deviceCount):
... handle = nvmlDeviceGetHandleByIndex(i)
... print("Device", i, ":", nvmlDeviceGetName(handle))
...
Device 0 : b'Tesla P4'
Device 1 : b'Tesla P4'
Device 2 : b'Tesla P4'
Device 3 : b'Tesla P4'
Device 4 : b'Tesla P4'
Device 5 : b'Tesla P4'
Device 6 : b'Tesla P4'
>>> from pynvml.smi import nvidia_smi
>>> nvsmi = nvidia_smi.getInstance()
>>> nvsmi.DeviceQuery('memory.free, memory.total')
{'gpu': [{'fb_memory_usage': {'total': 7611.9375, 'free': 7471.8125, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}, {'fb_memory_usage': {'total': 7611.9375, 'free': 7601.9375, 'unit': 'MiB'}}]}
3. DCMG监控
感兴趣可以了解一下:
https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-user-guide/getting-started.html
4. NV GPU API 接口
https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/annotated.html
NVIDIA GPU 常用操作相关推荐
- NVIDIA GPU常用命令及设置汇总
翻译 https://www.microway.com/hpc-tech-tips/nvidia-smi_control-your-gpus/ 内容收录 https://www.cnblogs.com ...
- 【认识 NVIDIA GPU】GPU相关基础概念介绍
系列文章目录 文章目录 系列文章目录 前言 基本概念 CUDA(Compute Unified Device Architecture) SP(Stream Processor) SM(Streami ...
- NVIDIA GPU SM和CUDA编程理解
SM硬件架构基础 不同架构的变化可以参考: 从AI系统角度回顾GPU架构变迁--从Fermi到Ampere(V1.2) - 知乎 英伟达GPU架构演进近十年,从费米到安培 - 知乎 Vol ...
- NVIDIA GPU的快速傅立叶变换
NVIDIA GPU的快速傅立叶变换 cuFFT库提供GPU加速的FFT实现,其执行速度比仅CPU的替代方案快10倍.cuFFT用于构建跨学科的商业和研究应用程序,例如深度学习,计算机视觉,计算物理, ...
- NVIDIA GPU上的Tensor线性代数
NVIDIA GPU上的Tensor线性代数 cuTENSOR库是同类中第一个GPU加速的张量线性代数库,提供张量收缩,归约和逐元素运算.cuTENSOR用于加速在深度学习训练和推理,计算机视觉,量子 ...
- NVIDIA GPU卷积网络的自动调谐
NVIDIA GPU卷积网络的自动调谐 针对特定设备和工作负载的自动调整对于获得最佳性能至关重要.这是关于如何为NVIDIA GPU调整整个卷积网络. NVIDIA GPU在TVM中的操作实现是以模板 ...
- NVIDIA GPU持久模式是什么?(驱动程序持久性 Driver Persistence Daemon 守护程序)
文章目录 驱动程序持久性 1.概述 1.1. windows系统 1.2. Linux 2.数据持久性 2.1. GPU初始化生命周期 2.2. 内核驱动程序生命周期 2.3. GPU开发板生命周期 ...
- Nvidia GPU如何在Kubernetes 里工作
Nvidia GPU如何在Kubernetes 里工作 本文介绍Nvidia GPU设备如何在Kubernetes中管理调度. 整个工作流程分为以下两个方面: 如何在容器中使用GPU Kubernet ...
- 基于 NVIDIA GPU 和 RAPIDS 加速 Spark 3.0
导读:今天给大家分享的主题是基于NVIDIA GPU和RAPIDS加速Apache Spark 3.0,首先会介绍Apache Spark的RAPIDS加速器及工作原理,然后分享我们对于Shuffle ...
最新文章
- gdb 查看 stl容器 zz
- Qt 事件系统的解读
- 字符串-拆分和拼接字符串
- javascript数组中数字和非数字下标的区别
- [蓝桥杯2017初赛]包子凑数-模拟+巧妙枚举
- c语言 字符转int型,C语言—类型之间的转换
- 系统架构师学习笔记-基于构件的开发
- 最便宜的鸿蒙手机,今年不再推出鸿蒙手机,却让老旗舰占据优势,降价后变真香...
- java volatile有什么用_深入解析Java中volatile关键字的作用
- jvm入门到详解-1
- PHP cURL上传图片
- dongle 工具 蓝牙_CC2540 USB Dongle 蓝牙抓包分析仪使用教程
- mfc调取摄像头显示并截图_用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频...
- flash如何同时访问本地文件系统和网络文件
- vs2010学习版安装与激活
- 深入理解socket中的recv函数和send函数
- 妖精的尾巴手游快速升级辅助 爱蜂窝自动新手挂机升级
- phpmailer发送邮件(QQ企业邮箱和163邮箱)
- 基于thinkphp校园二手交易网站#毕业设计
- 微信视频号的10大引流技巧