Jak zmierzyć zużycie GPU?

Odpowiedzi:

80
  • Dla procesorów graficznych Nvidia istnieje narzędzie nvidia-smi, które może pokazywać użycie pamięci, wykorzystanie GPU i temperaturę GPU.
  • W przypadku procesorów graficznych Intel możesz użyć narzędzia Intel- GPU .
  • AMD ma dwie opcje

    1. fglrx (sterowniki zamkniętego źródła):

      aticonfig --odgc --odgt
      
    2. W przypadku mesa (sterowniki open source) możesz użyć RadeonTop Zainstaluj za pośrednictwem centrum oprogramowania .

Źródło: monitorowanie zużycia GPU

Mitch
źródło
41
Użyj watch nvidia-smido aktualizacji w czasie rzeczywistym.
Lenar Hoyt,
1
aticonfig nie będzie działał przez SSH. Twierdzi, że potrzebuje działającego serwera X do działania (jest jeden uruchomiony). Jednak RadeonTop ( sudo apt-get radeontop) nie działa z fglrx (potrzebuje korzeń). Hurra! Niestety RadeonTop nie zapewnia odczytów temperatury.
Ken Sharp
aticonfig BĘDZIE działał przez SSH, ale serwer X z włączonym tcp musi być uruchomiony. Można to zrobić, konfigurując lightdm przez xserver-allow-tcp=true. Wyszukiwanie w tej witrynie za pomocą tych słów kluczowych powinno doprowadzić do wyniku.
HAL 9001
Nie jestem pewien, dlaczego, ale watch -n 1 nvidia-smidałem mi aktualizacje w czasie rzeczywistym. watch nvidia-smima 2-sekundowe opóźnienie aktualizacji.
markroxor
1
sudo intel_gpu_toppowinien dać ci aktualizacje w czasie rzeczywistym dla intel gpus.
George D
24

Nvidia: aby stale aktualizować dane wyjściowe nvidia-smi, możesz użyć nvidia-smi --loop=1(interwał odświeżania 1 sekunda) lub nvidia-smi --loop-ms=1000(interwał odświeżania 1000 milisekund).

   -l SEC, --loop=SEC
       Continuously  report  query data at the specified interval, rather than
       the default of  just  once.   The  application  will  sleep  in-between
       queries.   Note  that on Linux ECC error or XID error events will print
       out during the sleep period if the -x flag was not specified.  Pressing
       Ctrl+C at any time will abort the loop, which will otherwise run indef‐
       initely.  If no argument is specified for the -l form a default  inter‐
       val of 5 seconds is used.

   -lms ms, --loop-ms=ms
       Same as -l,--loop but in milliseconds.

FYI:

Franck Dernoncourt
źródło
21

Możesz użyć gpustatprostego skryptu wiersza polecenia (otoki dla nvidia-smi) do wysyłania zapytań i monitorowania stanu GPU:

wprowadź opis zdjęcia tutaj

Franck Dernoncourt
źródło
UWAGA: Tylko dla Nvidii
Lennart Rolland
pip install gpustat
Shital Shah
15

Dla Intela:

  1. Zainstaluj narzędzia Intel-GPU-Tools (prawdopodobnie są już zainstalowane)

    sudo apt-get install intel-gpu-tools 
    
  2. Uruchom toppodobne narzędzie za pomocą

    sudo intel_gpu_top
    
  3. Sprawdź swoje statystyki, a następnie wyjdź za pomocą Ctrl+C

To Co Dostajesz:

wprowadź opis zdjęcia tutaj

Dzięki @Mitch! :)

Thomas Venturini
źródło
12

Możesz użyć spojrzeń programu monitorującego z jego wtyczką monitorującą GPU :

  • otwarte źródło
  • żeby zainstalować: sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • Wystrzelić: sudo glances

wprowadź opis zdjęcia tutaj

Monitoruje również procesor, dyskowe operacje we / wy, miejsce na dysku, sieć i kilka innych rzeczy:

wprowadź opis zdjęcia tutaj

Franck Dernoncourt
źródło
Musisz także zrobićpip install nvidia-ml-py3
Paul Williams,
Działa również bez sudoi po instalacji tylko dla użytkownika: pip install --user glances[gpu]a następnie uruchom glances.
Ivan Kovtun
8

Conky

Lubię używać conkyjako monitora w czasie rzeczywistym zarówno dla procesora, jak i GPU. Instalacja jest prosta:

sudo apt install conky

Intel i7-6700HQ iGPU HD 530

W tym przypadku uruchomiłem przy użyciu zintegrowanego procesora graficznego zamiast nVidia GTX 970M:

Intel GPU.gif

conkyKod dostosowuje się w zależności czy przeładowałeś prime-select intellub prime-select nvidia:

GPU nVidia GTX 970M

W tym przypadku uruchomiłem przy użyciu nVidia GTX 970M zamiast zintegrowanego procesora graficznego:

nVidia GPU.GIF


Kod Conky

Podstępny kod został niedawno zmodyfikowany w celu automatycznego wykrywania GPU. Teraz nie trzeba go ręcznie modyfikować podczas ponownego uruchamiania na innym GPU:

#------------+
# Intel iGPU |
#------------+
${color orange}${hr 1}${if_existing /sys/class/drm/card0/gt_cur_freq_mhz}
${color2}${voffset 5}Intel® Skylake GT2 HD 530 iGPU @${alignr}${color green}
${execpi .001 (cat /sys/class/drm/card0/gt_cur_freq_mhz)} MHz
${color}${goto 13}Min. Freq:${goto 120}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_min_freq_mhz)} MHz${color}${goto 210}Max. Freq:${alignr}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_max_freq_mhz)} MHz
${color orange}${hr 1}${else}
#------------+
# Nvidia GPU |
#------------+
#${color orange}${hr 1}${if_match "${lsmod | grep nvidia_uvm}">""}
${color2}${voffset 5}${execpi .001 (nvidia-smi --query-gpu=gpu_name --format=csv,noheader)} ${color1}@ ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.sm --format=csv,noheader)} ${alignr}${color1}Temp: ${color green}${execpi .001 (nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)}°C
${color1}${voffset 5}Ver: ${color green}${execpi .001 (nvidia-smi --query-gpu=driver_version --format=csv,noheader)} ${color1} P-State: ${color green}${execpi .001 (nvidia-smi --query-gpu=pstate --format=csv,noheader)} ${alignr}${color1}BIOS: ${color green}${execpi .001 (nvidia-smi --query-gpu=vbios_version --format=csv,noheader)}
${color1}${voffset 5}GPU:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader)} ${color1}Ram:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.memory --format=csv,noheader)} ${color1}Pwr:${color green}${execpi .001 (nvidia-smi --query-gpu=power.draw --format=csv,noheader)} ${alignr}${color1}Freq: ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.mem --format=csv,noheader)}
${color orange}${hr 1}${endif}

W tych odpowiedziach można znaleźć różne wersje pełnego wykazu kodów:

WinEunuuchs2Unix
źródło
Czy możesz podać kroki, aby zainstalować Conky i ustawić motyw, aby był podobny do przykładu z Nvidii?
Tak
@Tak Zaktualizowałem odpowiedź z instrukcjami instalacji i istniejącymi linkami do kodu.
WinEunuuchs2Unix
6

Używam następującego polecenia:

nvidia-smi -l 2

i daje mi aktualizacje co 2 sekundy.

wygląda tak

Lub:

watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"

A na AMD użyj:

aticonfig --odgc --odgt

wprowadź opis zdjęcia tutaj

Tshilidzi Mudau
źródło