什么是GPU?
图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。显卡作为电脑主机里的一个重要组成部分,承担输出显示图形的任务,对于从事专业图形设计的人来说显卡非常重要,同时也在深度学习领域广泛应用。
预备知识
NVIDIA系统管理界面( )是一个命令行实用程序,基于NVIDIA管理库(NVML),旨在帮助管理和监控
nvidia-smi
设备。此实用程序允许管理员查询GPU设备状态并具有相应的权限,允许管理员修改GPU设备状态。它针对的是
NVIDIA GPU
,
TeslaTM
,
GRID TM
和
QuadroTM
产品,但其他
TitanX
也提供有限的支持。
NVIDIA GPU
在Linux上配备了
NVIDIA-smi
显示驱动程序,并配有64位
NVIDIA GPU
和
WindowsServer2008R2
。
Windows7
可以将查询信息作为XML或可读的纯文本报告给标准输出或文件形式。
Nvidia-smi
示例
NVIDIA-smi
输出:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwUzNfdHLkVGepZ2XtxSZ6l2clJ3LcBnYldHL0FWby9mZvwVZnFWbp1zczV2YvJHctM3cv1Ce-AnYldnLzkTO2EjM1UmM2UDMklDOxYzX4ETNzkDM5AzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.webp)
window下如何使用nvidia-smi?
nvidia-smi是跟nvidia显卡驱动程序放在一起的,所以我们可以在驱动默认安装文件路径
C:\ProgramFiles\NVIDIACorporation\NVSMI
里找到文件
nvidia-smi.exe
,把该文件拖到CMD窗口,就可以显示关于GPU的信息,如下图所示:
上图是NVIDIA GeForce GTX 750的信息,下面解读参数。
上面的表格框中的信息与下面的四个框的信息是一一对应的:
- GPU:GPU 编号;
- Name:GPU 型号;
- Fan:风扇转速,从0到100%之间变动;
- Temp:温度,单位是摄氏度;
- Perf:性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12)。
-
:能耗;Pwr:Usage/Cap
-
:显存使用率;MemoryUsage
- Bus-Id:涉及GPU总线的东西,
;domain:bus:device.function
- Disp.A:
,表示GPU的显示是否初始化;DisplayActive
-
:浮动的GPU利用率(VolatileGPU-Util
);GPULoad
-
:Uncorr.ECC
,错误检查与纠正;ErrorCorrectingCode
-
:ComputeM
,计算模式。compute mode
- 下方的Processes表示每个进程对 GPU 的显存使用率。
Telegraf+InfluxDB+Grafana监控NVIDIA GPU
Telegraf提供nvidia-smi采集插件收集GPU性能数据
github地址:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/nvidia_smi
配置插件
1. [[inputs.nvidia_smi]]
2. ## Optional: path to nvidia-smi binary, defaults to $PATH via exec.LookPath
3. bin_path = "C:\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe"
4.
5. ## Optional: timeout for GPU polling
6. timeout = "5s"
采集度量
measurement:nvidia_smi
- tags
- name(例如GPU的类型
)GeForceGTX1070Ti
- compute_mode(例如GPU的计算模式Default)
- index(GPU连接到主板的端口索引,例如1)
- pstate(例如GPU的超频状态P0)
- uuid(例如GPU的唯一标识符,GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665)
- fields
- fanspeed (整数,百分比)
- memoryfree (整数,MiB)
- memoryused (整数,MiB)
- memorytotal (整数,MiB)
- powerdraw (浮点,W)
- temperaturegpu (整数,℃)
- utilizationgpu (整数,百分比)
- utilizationmemory (整数,百分比)
采集数据示例:
Grafana Dashboard效果