जवाबों:
एनवीडिया जीपीयू के लिए एक उपकरण है nvidia-smi
जो मेमोरी उपयोग, जीपीयू उपयोग और जीपीयू के तापमान को दिखा सकता है। गणना प्रक्रियाओं और कुछ और विकल्पों की एक सूची भी है लेकिन मेरा ग्राफिक कार्ड (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
आउटपुट के बीच फ़्लैग हाइलाइट के अंतर बताता है , इसलिए यह हाइलाइट करने में सहायता कर सकता है कि समय के साथ कौन से मैट्रिक्स बदल रहे हैं।
लिनक्स के लिए, उपयोग nvidia-smi -l 1
आपको लगातार 1 सेकंड के अंतराल के साथ, gpu उपयोग की जानकारी देगा।
watch -n 1 nvidia-smi
टर्मिनल के साथ आउटपुट को भरने के बिना निरंतर अपडेट प्राप्त करने के लिए उपयोग करना पसंद करता हूं
हाल ही में मैंने एक साधारण कमांड-लाइन उपयोगिता लिखी है, जिसे gpustat
(जिसका एक रैपर है nvidia-smi
) कहा जाता है : कृपया https://github.com/wookayin/gpustat पर एक नज़र डालें ।
इंटेल GPU के लिए http://intellinuxgraphics.org/ प्रोजेक्ट intel-gpu-tools
से मौजूद है , जो कमांड (अन्य चीजों के बीच) लाता है । यह करने के लिए इसी तरह की है और है, लेकिन विशेष रूप से इंटेल GPU के लिए।intel_gpu_top
top
htop
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
कुछ लिनक्स मशीनों पर काम नहीं करता है (कई गुणों के लिए एन / ए देता है)। आप nvidia-settings
इसके बजाय उपयोग कर सकते हैं (यह भी है कि उसकी अजगर लिपि में मैट केल्सी का क्या उपयोग किया गया है)।
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
लिनक्स के लिए, मैं इस HTOP का उपयोग उस टूल की तरह करता हूं जो मैंने खुद लिखा था। यह मॉनिटर करता है और GPU के तापमान के साथ-साथ कोर / VRAM / PCI-E & मेमोरी बस के उपयोग का अवलोकन देता है। यह मॉनिटर नहीं करता है कि GPU पर क्या चल रहा है।
nvidia-settings
एक रनिंग एक्स 11 की आवश्यकता होती है, जो हमेशा ऐसा नहीं होता है।
पूर्णता के लिए, एएमडी के दो विकल्प हैं:
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
memory.used
या ( memory.free
) के रूप में अच्छी तरह से लायक होगा ।
GPU संबंधित सुविधाओं का समर्थन करने के लिए atMonitor का अंतिम संस्करण atMonitor 2.7.1 है।
- और 2.7.1 के लिए लिंक 2.7b बचाता है।
एप्लिकेशन के अधिक हाल के संस्करण के लिए, AtMonitor - FAQ बताते हैं:
मैकमोटर को मैकओएस 10.8 के साथ संगत बनाने के लिए हमने सभी जीपीयू से संबंधित सुविधाओं को हटा दिया है।
मैंने माउंटेन लायन पर 2.7b उर्फ 2.7.1 का प्रयोग मैकबुकप्रो 5,2 के साथ NVIDIA GeForce 9600M GT के साथ किया। छोड़ने से पहले कुछ सेकंड के लिए ऐप चला, इसमें तापमान दिखा लेकिन उपयोग नहीं:
मेरे पास प्रक्रियाएं समाप्त हो गई हैं (शायद मारे गए या दुर्घटनाग्रस्त हो गए) और संसाधनों का उपयोग करना जारी है, लेकिन इसमें सूचीबद्ध नहीं थे nvidia-smi
। आमतौर पर ये प्रक्रियाएं केवल जीपीयू मेमोरी ले रही थीं।
अगर आपको लगता है कि आपके पास एक GPU पर संसाधनों का उपयोग करने की प्रक्रिया है और इसे नहीं दिखाया जा रहा है nvidia-smi
, तो आप इस कमांड को दोबारा जांचने के लिए चला सकते हैं। यह आपको दिखाएगा कि कौन सी प्रक्रियाएं आपके GPU का उपयोग कर रही हैं।
sudo fuser -v /dev/nvidia*
यह ईएल 7, उबंटू या अन्य वितरणों पर काम करता है हो सकता है कि उनके एनवीडिया डिवाइस किसी अन्य नाम / स्थान के तहत सूचीबद्ध हों।
Glances में एक प्लगइन है जो GPU उपयोग और मेमोरी उपयोग दिखाता है।
http://glances.readthedocs.io/en/stable/aoa/gpu.html
एनवीडिया-एमएल-पी 3 लाइब्रेरी का उपयोग करता है: https://pypi.python.org/pypi/nvidia-ml-py3
लिनक्स पर एनवीडिया के लिए मैं निम्नलिखित पायथन स्क्रिप्ट का उपयोग करता हूं जो एक वैकल्पिक देरी का उपयोग करता है और iostat और vmatat की तरह दोहराता है
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 GPUs के लिए समान है । लिंक: https://github.com/Syllo/nvtop
निम्नलिखित फ़ंक्शन पीआईडी, उपयोगकर्ता नाम, सीपीयू उपयोग, मेमोरी उपयोग, जीपीयू मेमोरी उपयोग, कार्यक्रम तर्क और जीपीयू पर चलने वाली प्रक्रियाओं का समय चलाने के लिए आउटपुट के रूप में जानकारी प्रदान करता है 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
यह स्क्रिप्ट अधिक पठनीय है और इसे आसान मोड और एक्सटेंशन के लिए डिज़ाइन किया गया है।
आप अपने पसंदीदा टर्मिनल विंडो प्रोग्राम के साथ सूक्ति-टर्मिनल को बदल सकते हैं।
#! /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 pmon -i 0
GPU में हर प्रक्रिया की निगरानी के लिए 0. जिसमें कंप्यूट / ग्राफिक मोड, sm उपयोग, मेमोरी उपयोग, एनकोडर उपयोग, डिकोडर उपयोग शामिल है।
मैं उपलब्ध जवाब में इसे देख नहीं था (शायद एक टिप्पणी को छोड़ कर), तो मैंने सोचा कि मैं जोड़ना होगा कि आप एक अच्छे ताज़ा प्राप्त कर सकते हैं nvidia-smi
के साथ watch
। यह लगातार स्क्रॉल करने के बजाय प्रत्येक अपडेट के साथ स्क्रीन को रिफ्रेश करता है।
watch -n 1 nvidia-smi
एक सेकंड के अंतराल के अपडेट के लिए। 1
भिन्नात्मक सेकंड सहित, जो कुछ भी आप चाहते हैं उसे बदलें :
watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi