コンピューターにCUDAツールキットをインストールし、GPUでBOINCプロジェクトを開始しました。 BOINCではGPUで実行されていることがわかりますが、GPUで実行されているものの詳細を示すツールはありますか-GPU使用量とメモリ使用量?
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 |
+-----------------------------------------------------------------------------+
Linuxの場合、nvidia-smi -l 1
を使用すると、1秒の更新間隔で、gpuの使用情報が継続的に提供されます。
最近、私は gpustat
(nvidia-smi
のラッパーである)と呼ばれる簡単なコマンドラインユーティリティを作成しました:ご覧ください https:// github.com/wookayin/gpustat 。
Intel GPUの場合、intel-gpu-tools
from 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
を使用できます(これは、マットケルシーがpythonスクリプトで使用したものでもあります)。
nvidia-settings -q GPUUtilization -q useddedicatedgpumemory
次のものも使用できます。
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
継続的な監視のため。
Linuxの場合、自分で作成したこのHTOPライクなツールを使用します。 GPUの温度と、コア/ VRAM/PCI-Eおよびメモリバスの使用状況の監視と概要を提供します。ただし、GPUで実行されているものは監視しません。
完全を期すために、AMDには2つのオプションがあります。
fglrx(クローズドソースドライバー)。
$ aticonfig --odgc --odgt
mesa(オープンソースドライバー)、 RadeonTop を使用できます。
総アクティビティパーセントと個別のブロックの両方について、GPU使用率を表示します。
GeForce 1060 GTXビデオカードを使用していますが、次のコマンドでカードの使用率、温度、ファン速度、電力消費量に関する情報が得られます。
$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu
あなたはすべてのクエリオプションのリストを見ることができます:
$ nvidia-smi --help-query-gpu
プロセスを終了させ(おそらく強制終了またはクラッシュ)、リソースを使い続けましたが、nvidia-smi
にリストされていませんでした。通常、これらのプロセスは単にGPUメモリを使用していました。
GPU上のリソースを使用するプロセスがあり、それがnvidia-smi
に表示されていないと思われる場合は、このコマンドを実行して再確認してください。 GPUを使用しているプロセスが表示されます。
Sudo fuser -v /dev/nvidia*
これはEL7、Ubuntu、またはその他のディストリビューションで動作し、nvidiaデバイスが別の名前/場所でリストされる場合があります。
nvtop
を使用できます。これはhtop
に似ていますが、NVIDIA GPU用です。リンク: https://github.com/Syllo/nvtop
GPU関連の機能をサポートするatMonitorの最後のバージョンはatMonitor 2.7.1です。
– 2.7.1へのリンクは2.7bを提供します。
アプリの最新バージョンについては、 atMonitor-FAQ で説明されています。
AtMonitorをMacOS 10.8と互換にするために、GPU関連の機能をすべて削除しました。
マウンテンライオンで2.7b別名2.7.1を、MacBookPro5,2とNVIDIA GeForce 9600M GTで実験しました。アプリは終了する前に数秒間実行され、温度は表示されましたが使用状況は表示されませんでした:
Glancesには、GPU使用率とメモリ使用量を表示するプラグインがあります。
http://glances.readthedocs.io/en/stable/aoa/gpu.html
Nvidia-ml-py3ライブラリを使用します: https://pypi.python.org/pypi/nvidia-ml-py
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}
次の関数は、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
使用できます
nvidia-smi pmon -i 0
gPU 0のすべてのプロセスを監視します。計算/グラフィックモード、SMの使用、メモリの使用、エンコーダの使用、デコーダの使用を含みます。
このスクリプトはより読みやすく、簡単な改造や拡張のために設計されています。
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
利用可能な回答には(おそらくコメントを除いて)表示されなかったので、より良いリフレッシュを取得できると付け加えたいと思いましたnvidia-smi
with watch
。これにより、常にスクロールするのではなく、更新のたびに画面が更新されます。
watch -n 1 nvidia-smi
1秒間隔で更新します。 1
小数秒を含む、あなたが望むもので:
watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi