Answers:
对于Nvidia GPU,有一个工具nvidia-smi
可以显示内存使用情况,GPU利用率和GPU温度。还有一个计算过程列表和更多选项,但是我的图形卡(GeForce 9600 GT)不受完全支持。
Sun May 13 20:02:49 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.40 Driver Version: 295.40 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/A N/A |
| 0% 51 C N/A N/A / N/A | 90% 459MB / 511MB | N/A Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. Not Supported |
+-----------------------------------------------------------------------------+
watch -n 0.5 nvidia-smi
,将使输出保持更新,而不会在终端上填充输出。
watch -d -n 0.5 nvidia-smi
会更好。
-d
国旗的作用
man watch
告诉我们该-d
标志突出显示输出之间的差异,因此它可以帮助突出显示随时间变化的指标。
最近,我编写了一个简单的命令行实用程序,名为gpustat
(是的包装nvidia-smi
):请查看https://github.com/wookayin/gpustat。
对于Intel GPU的存在着intel-gpu-tools
从http://intellinuxgraphics.org/项目,该项目带来的指令intel_gpu_top
(除其他事项外)。它与top
和相似htop
,但专门用于Intel GPU。
render busy: 18%: ███▋ render space: 39/131072
bitstream busy: 0%: bitstream space: 0/131072
blitter busy: 28%: █████▋ blitter space: 28/131072
task percent busy
GAM: 33%: ██████▋ vert fetch: 0 (0/sec)
GAFS: 3%: ▋ prim fetch: 0 (0/sec)
VS: 0%: VS invocations: 559188 (150/sec)
SF: 0%: GS invocations: 0 (0/sec)
VF: 0%: GS prims: 0 (0/sec)
DS: 0%: CL invocations: 186396 (50/sec)
CL: 0%: CL prims: 186396 (50/sec)
SOL: 0%: PS invocations: 8191776208 (38576436/sec)
GS: 0%: PS depth pass: 8158502721 (38487525/sec)
HS: 0%:
TE: 0%:
GAFM: 0%:
SVG: 0%:
nvidia-smi
在某些Linux机器上不起作用(许多属性返回N / A)。您可以nvidia-settings
改用(这也是mat kelcey在他的python脚本中使用的内容)。
nvidia-settings -q GPUUtilization -q useddedicatedgpumemory
您还可以使用:
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
进行连续监控。
nvidia-settings -q all
查看要监视的其他参数。我正在监视GPUCurrentProcessorClockFreqs
和GPUCurrentClockFreqs
。
nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t
我有一个GeForce 1060 GTX视频卡,我发现以下命令为我提供了有关卡利用率,温度,风扇速度和功耗的信息:
$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu
您可以通过以下方式查看所有查询选项的列表:
$ nvidia-smi --help-query-gpu
memory.used
或(memory.free
)。
支持GPU相关功能的atMonitor的最新版本是atMonitor 2.7.1。
–和2.7.1的链接提供2.7b。
对于该应用程序的最新版本,atMonitor-常见问题解答说明:
为了使atMonitor与MacOS 10.8兼容,我们删除了所有与GPU相关的功能。
我在装有NVIDIA GeForce 9600M GT的MacBookPro5,2上在Mountain Lion上进行了2.7b aka 2.7.1的实验。该应用程序在退出前运行了几秒钟,显示温度但没有显示使用情况:
Glances有一个插件,可以显示GPU使用率和内存使用率。
http://glances.readthedocs.io/en/stable/aoa/gpu.html
使用nvidia-ml-py3库:https ://pypi.python.org/pypi/nvidia-ml-py3
对于Linux上的nvidia,我使用以下python脚本,该脚本使用可选的延迟并像iostat和vmstat一样重复
https://gist.github.com/matpalm/9c0c7c6a6f3681a0d39d
$ gpu_stat.py 1 2
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"11"}, "used_mem":"161", "time": 1424839016}
{"util":{"PCIe":"0", "memory":"10", "video":"0", "graphics":"9"}, "used_mem":"161", "time":1424839018}
您可以使用nvtop
,类似于htop
NVIDIA GPU。链接:https://github.com/Syllo/nvtop
以下函数将信息(例如PID,用户名,CPU使用率,内存使用率,GPU内存使用率,程序参数和正在GPU上运行的进程的运行时间)附加到以下输出nvidia-smi
:
function better-nvidia-smi () {
nvidia-smi
join -1 1 -2 3 \
<(nvidia-smi --query-compute-apps=pid,used_memory \
--format=csv \
| sed "s/ //g" | sed "s/,/ /g" \
| awk 'NR<=1 {print toupper($0)} NR>1 {print $0}' \
| sed "/\[NotSupported\]/d" \
| awk 'NR<=1{print $0;next}{print $0| "sort -k1"}') \
<(ps -a -o user,pgrp,pid,pcpu,pmem,time,command \
| awk 'NR<=1{print $0;next}{print $0| "sort -k3"}') \
| column -t
}
输出示例:
$ better-nvidia-smi
Fri Sep 29 16:52:58 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 378.13 Driver Version: 378.13 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 730 Off | 0000:01:00.0 N/A | N/A |
| 32% 49C P8 N/A / N/A | 872MiB / 976MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
| 1 Graphics Device Off | 0000:06:00.0 Off | N/A |
| 23% 35C P8 17W / 250W | 199MiB / 11172MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
| 1 5113 C python 187MiB |
+-----------------------------------------------------------------------------+
PID USED_GPU_MEMORY[MIB] USER PGRP %CPU %MEM TIME COMMAND
9178 187MiB tmborn 9175 129 2.6 04:32:19 ../path/to/python script.py args 42
该脚本更具可读性,旨在用于简单的mod和扩展。
您可以使用自己喜欢的终端窗口程序替换gnome-terminal。
#! /bin/bash
if [ "$1" = "--guts" ]; then
echo; echo " ctrl-c to gracefully close"
f "$a"
f "$b"
exit 0; fi
# easy to customize here using "nvidia-smi --help-query-gpu" as a guide
a='--query-gpu=pstate,memory.used,utilization.memory,utilization.gpu,encoder.stats.sessionCount'
b='--query-gpu=encoder.stats.averageFps,encoder.stats.averageLatency,temperature.gpu,power.draw'
p=0.5 # refresh period in seconds
s=110x9 # view port as width_in_chars x line_count
c="s/^/ /; s/, +/\t/g"
t="`echo '' |tr '\n' '\t'`"
function f() { echo; nvidia-smi --format=csv "$1" |sed -r "$c" |column -t "-s$t" "-o "; }
export c t a b; export -f f
gnome-terminal --hide-menubar --geometry=$s -- watch -t -n$p "`readlink -f \"$0\"`" --guts
#
许可证:GNU GPLv2,TranSeed Research