2011-11-22 11 views

Odpowiedz

57

nie jestem świadomy wszystkiego, co łączy te informacje, ale można użyć narzędzia nvidia-smi aby uzyskać dane surowe, jak tak (dzięki @jmsu za cynk na -l):

$ nvidia-smi -q -g 0 -d UTILIZATION -l 

==============NVSMI LOG============== 

Timestamp      : Tue Nov 22 11:50:05 2011 

Driver Version     : 275.19 

Attached GPUs     : 2 

GPU 0:1:0 
    Utilization 
     Gpu      : 0 % 
     Memory     : 0 % 
+3

Myślę, że jeśli dodasz -l do tego, otrzymasz aktualizację w sposób ciągły skutecznie monitorujący procesor graficzny i wykorzystanie pamięci. – jmsu

+6

Co się stanie, jeśli po uruchomieniu GPU utilizacion po prostu wypisze N ​​/ A ?? – natorro

+3

@Natorro Wygląda na to, że nVidia zrzuciła obsługę niektórych kart. Sprawdź ten link http://forums.nvidia.com/index.php?showtopic=205165 – jmsu

15

Pobierz i zainstaluj najnowszy stabilny sterownik CUDA (4.2) z here. Na Linuksie nVidia-smi 295.41 daje dokładnie to, czego chcesz. używać nvidia-smi:

[[email protected] release]# nvidia-smi 
Wed Sep 26 23:16:16 2012  
+------------------------------------------------------+      
| NVIDIA-SMI 3.295.41 Driver Version: 295.41   |      
|-------------------------------+----------------------+----------------------+ 
| Nb. Name      | Bus Id  Disp. | Volatile ECC SB/DB | 
| Fan Temp Power Usage /Cap | Memory Usage   | GPU Util. Compute M. | 
|===============================+======================+======================| 
| 0. Tesla C2050    | 0000:05:00.0 On  |   0   0 | 
| 30% 62 C P0 N/A/N/A | 3% 70MB/2687MB | 44%  Default | 
|-------------------------------+----------------------+----------------------| 
| Compute processes:            GPU Memory | 
| GPU PID  Process name          Usage  | 
|=============================================================================| 
| 0. 7336  ./align             61MB | 
+-----------------------------------------------------------------------------+ 

EDIT: W najnowszych sterowników NVIDIA, to wsparcie jest ograniczone do Tesla kart.

2

To nie może być elegancki, ale można spróbować

while true; do sleep 2; nvidia-smi; done 

Próbowałem też metodę @Edric, który działa, ale wolę oryginalny układ nvidia-smi.

+5

Lub możesz po prostu zrobić 'nvidia-smi -l 2' lub zapobiec wielokrotnemu wyświetlaniu konsoli,' watch -n 2 'nvidia-smi'' – grisaitis

+0

@grisaitis fajne rzeczy! – skyuuka

37

Aby uzyskać wgląd w czasie rzeczywistym na temat wykorzystywanych zasobów, wykonaj następujące czynności:

nvidia-smi -l 1

Ta pętla i wywołać widok w każdej sekundzie.

Jeśli nie chcesz zachować przeszłości ślady pętlą rozmowy w historii konsoli, można również zrobić:

watch -n0.1 nvidia-smi

Gdzie 0.1 to przedział czasu, w sekundach.

enter image description here

6

Innym użytecznym podejściem jest wykorzystanie monitoringu ps filtrowane na procesy, które zużywają swoje GPU. I używać ten jeden dużo:

ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `lsof -n -w -t /dev/nvidia*` 

To pokaże wszystkie procesy GPU nvidia wykorzystującego i kilka statystyk na ich temat. lsof ... pobiera listę wszystkich procesów wykorzystujących procesory graficzne nvidia należące do bieżącego użytkownika, a ps -p ... pokazuje ps wyniki dla tych procesów. ps f pokazuje ładne formatowanie relacji/hierarchii procesów potomnych/macierzystych, a -o określa niestandardowe formatowanie. Ten jest podobny do robienia tylko ps u, ale dodaje identyfikator grupy procesów i usuwa inne pola.

Jedną z zalet tego ponad nvidia-smi jest to, że wyświetla widły procesowe, a także główne procesy wykorzystujące GPU.

Jedną wadą jest to, że ogranicza się do procesów posiadanych przez użytkownika, który wykonuje polecenie. Aby otworzyć go do wszystkich procesów posiadanych przez dowolnego użytkownika, dodam sudo przed lsof.

Na koniec łączę to z watch, aby uzyskać ciągłą aktualizację.Tak, w końcu to wygląda:

watch -n 0.1 'ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvidia*`' 

który ma wyjście jak:

Every 0.1s: ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvi... Mon Jun 6 14:03:20 2016 
USER  PGRP PID %CPU %MEM STARTED  TIME COMMAND 
grisait+ 27294 50934 0.0 0.1 Jun 02 00:01:40 /opt/google/chrome/chrome --type=gpu-process --channel=50877.0.2015482623 
grisait+ 27294 50941 0.0 0.0 Jun 02 00:00:00 \_ /opt/google/chrome/chrome --type=gpu-broker 
grisait+ 53596 53596 36.6 1.1 13:47:06 00:05:57 python -u process_examples.py 
grisait+ 53596 33428 6.9 0.5 14:02:09 00:00:04 \_ python -u process_examples.py 
grisait+ 53596 33773 7.5 0.5 14:02:19 00:00:04 \_ python -u process_examples.py 
grisait+ 53596 34174 5.0 0.5 14:02:30 00:00:02 \_ python -u process_examples.py 
grisait+ 28205 28205 905 1.5 13:30:39 04:56:09 python -u train.py 
grisait+ 28205 28387 5.8 0.4 13:30:49 00:01:53 \_ python -u train.py 
grisait+ 28205 28388 5.3 0.4 13:30:49 00:01:45 \_ python -u train.py 
grisait+ 28205 28389 4.5 0.4 13:30:49 00:01:29 \_ python -u train.py 
grisait+ 28205 28390 4.5 0.4 13:30:49 00:01:28 \_ python -u train.py 
grisait+ 28205 28391 4.8 0.4 13:30:49 00:01:34 \_ python -u train.py 
+1

Możesz również uzyskać PID programów obliczeniowych, które zajmują GPU wszystkich użytkowników bez 'sudo' w ten sposób:' nvidia-smi --query-compute-apps = pid --format = csv, noheader' –

7

Korzystanie argument "--query-obliczeniowo aplikacje ="

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv 

w celu uzyskania dalszej pomocy, plz postępuj zgodnie z

nvidia-smi --help-query-compute-app 
Powiązane problemy