Jawaban:
Untuk Nvidia GPU ada alat nvidia-smi
yang dapat menunjukkan penggunaan memori, pemanfaatan GPU dan suhu GPU. Ada juga daftar proses komputasi dan beberapa opsi lagi tetapi kartu grafis saya (GeForce 9600 GT) tidak sepenuhnya didukung.
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
, akan menjaga output diperbarui tanpa mengisi terminal Anda dengan output.
watch -d -n 0.5 nvidia-smi
akan lebih baik lagi.
-d
bendera
man watch
memberi tahu kami bahwa -d
flag menyoroti perbedaan antara output, sehingga dapat membantu dalam menyoroti metrik mana yang berubah seiring waktu.
Untuk linux, gunakan nvidia-smi -l 1
akan terus memberikan Anda informasi penggunaan GPU, dengan interval penyegaran 1 detik.
watch -n 1 nvidia-smi
untuk mendapatkan pembaruan terus menerus tanpa mengisi terminal dengan output
Baru-baru ini saya telah menulis sebuah utilitas baris perintah sederhana yang disebut gpustat
(yang merupakan pembungkus nvidia-smi
): silakan lihat di https://github.com/wookayin/gpustat .
Untuk Intel GPU terdapat proyek intel-gpu-tools
dari http://intellinuxgraphics.org/ , yang membawa perintah intel_gpu_top
(antara lain). Ini mirip dengan top
dan htop
, tetapi khusus untuk GPU Intel.
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
tidak bekerja pada beberapa mesin linux (mengembalikan N / A untuk banyak properti). Anda dapat menggunakan nvidia-settings
sebagai gantinya (ini juga yang digunakan oleh mat kelcey dalam skrip python-nya).
nvidia-settings -q GPUUtilization -q useddedicatedgpumemory
Anda juga bisa menggunakan:
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
untuk pemantauan berkelanjutan.
nvidia-settings -q all
untuk melihat parameter apa yang bisa Anda pantau. Saya sedang memantau GPUCurrentProcessorClockFreqs
dan GPUCurrentClockFreqs
.
nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t
Untuk Linux, saya menggunakan alat seperti HTOP ini yang saya tulis sendiri. Ini memantau dan memberikan gambaran umum tentang suhu GPU serta penggunaan bus inti / VRAM / PCI-E & memori. Itu tidak memonitor apa yang berjalan pada GPU.
nvidia-settings
membutuhkan X11 yang berjalan, yang tidak selalu demikian.
Saya memiliki kartu video GeForce 1060 GTX dan saya menemukan bahwa perintah berikut memberi saya info tentang pemanfaatan kartu, suhu, kecepatan kipas, dan konsumsi daya:
$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu
Anda dapat melihat daftar semua opsi permintaan dengan:
$ nvidia-smi --help-query-gpu
memory.used
atau ( memory.free
) juga.
Versi terakhir atMonitor untuk mendukung fitur terkait GPU adalah atMonitor 2.7.1.
- dan tautan ke 2.7.1 menghasilkan 2.7b.
Untuk versi aplikasi yang lebih baru, atMonitor - FAQ menjelaskan:
Untuk membuat atMonitor kompatibel dengan MacOS 10.8 kami telah menghapus semua fitur terkait GPU.
Saya bereksperimen dengan 2.7b alias 2.7.1 di Mountain Lion dengan MacBookPro5,2 dengan NVIDIA GeForce 9600M GT. Aplikasi berjalan selama beberapa detik sebelum berhenti, itu menunjukkan suhu tetapi tidak digunakan:
Saya sudah menghentikan proses (mungkin terbunuh atau macet) dan terus menggunakan sumber daya, tetapi tidak terdaftar di nvidia-smi
. Biasanya proses ini hanya mengambil memori GPU.
Jika Anda berpikir Anda memiliki proses menggunakan sumber daya pada GPU dan itu tidak ditampilkan nvidia-smi
, Anda dapat mencoba menjalankan perintah ini untuk memeriksa ulang. Ini akan menunjukkan kepada Anda proses mana yang menggunakan GPU Anda.
sudo fuser -v /dev/nvidia*
Ini berfungsi pada EL7, Ubuntu atau distribusi lain yang mungkin memiliki perangkat nvidia mereka terdaftar di bawah nama / lokasi lain.
Glance memiliki plugin yang menunjukkan penggunaan GPU dan penggunaan memori.
http://glances.readthedocs.io/en/stable/aoa/gpu.html
Menggunakan perpustakaan nvidia-ml-py3: https://pypi.python.org/pypi/nvidia-ml-py3
untuk nvidia di linux saya menggunakan skrip python berikut yang menggunakan penundaan opsional dan ulangi seperti iostat dan 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}
Anda dapat menggunakan nvtop
, ini mirip dengan htop
tetapi untuk GPU NVIDIA. Tautan: https://github.com/Syllo/nvtop
Fungsi berikut menambahkan informasi seperti PID, nama pengguna, penggunaan CPU, penggunaan memori, penggunaan memori GPU, argumen program dan waktu proses yang dijalankan pada GPU, ke output dari 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
}
Contoh output:
$ 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
Skrip ini lebih mudah dibaca dan dirancang untuk mod dan ekstensi yang mudah.
Anda dapat mengganti terminal gnome dengan program jendela terminal favorit Anda.
#! /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
#
Lisensi: GNU GPLv2, TranSeed Research
Anda dapat gunakan
nvidia-smi pmon -i 0
untuk memantau setiap proses dalam GPU 0. termasuk mode komputasi / grafik, penggunaan sm, penggunaan memori, penggunaan encoder, penggunaan decoder.
Aku tidak melihatnya dalam jawaban yang tersedia (kecuali mungkin dalam komentar), jadi saya pikir saya akan menambahkan bahwa Anda bisa mendapatkan menyegarkan lebih bagus nvidia-smi
dengan watch
. Ini menyegarkan layar dengan setiap pembaruan daripada bergulir terus-menerus.
watch -n 1 nvidia-smi
untuk pembaruan interval satu detik. Ganti 1
dengan apa pun yang Anda inginkan, termasuk pecahan detik:
watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi