it-swarm-eu.dev

Monitorování využití GPU (CUDA)

Nainstaloval jsem CUDA toolkit na svůj počítač a spustil BOINC projekt na GPU. V BOINC vidím, že běží na GPU, ale existuje nástroj, který mi může ukázat další podrobnosti o tom, co běží na GPU - využití GPU a využití paměti?

249
pbm

Pro GPU Nvidia existuje nástroj nvidia-smi, které mohou zobrazovat využití paměti, využití GPU a teplotu GPU. K dispozici je také seznam výpočetních procesů a několik dalších možností, ale moje grafická karta (GeForce 9600 GT) není plně podporována.

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                                                 |
+-----------------------------------------------------------------------------+
292
pbm

Pro linux použijte nvidia-smi -l 1 vám bude průběžně poskytovat informace o využití gpu s intervalem aktualizace 1 sekundy.

80
qed

Nedávno jsem napsal jednoduchý obslužný program příkazového řádku s názvem gpustat (což je obálka nvidia-smi): podívejte se prosím na https://github.com/wookayin/gpustat .

68
Jongwook Choi

Pro Intel GPU existuje intel-gpu-tools from http://intellinuxgraphics.org/ projekt, který přinese příkaz intel_gpu_top (mimo jiné). Je to podobné top a htop, ale konkrétně pro 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%:                      
55
jippie

nvidia-smi nefunguje na některých linuxových strojích (pro mnoho vlastností vrací N/A). Můžeš použít nvidia-settings místo toho (to je také to, co mat kelcey použil v jeho python skript).

nvidia-settings -q GPUUtilization -q useddedicatedgpumemory

Můžete také použít:

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

pro nepřetržité monitorování.

36
Jonathan

Pro Linux používám tento nástroj podobný HTOP, který jsem napsal sám. Monitoruje a poskytuje přehled teploty GPU a využití jádra/VRAM/PCI-E a paměťové sběrnice. Nemonitoruje však, co běží na GPU.

gmonitor

enter image description here

20

Pro úplnost má AMD dvě možnosti:

  1. fglrx (ovladače uzavřeného zdroje).

    $ aticonfig --odgc --odgt
    
  2. mesa (open source ovladače), můžete použít RadeonTop .

    Podívejte se na využití GPU, a to jak pro procenta celkové aktivity, tak pro jednotlivé bloky.

16
kevinf

Mám grafickou kartu GeForce 1060 GTX a zjistil jsem, že následující příkaz mi dá informace o využití karty, teplotě, rychlosti ventilátoru a spotřebě energie:

$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu

Můžete zobrazit seznam všech možností dotazu pomocí:

$ nvidia-smi --help-query-gpu
14
lyubomir

Procesy byly ukončeny (pravděpodobně zabity nebo havarovány) a nadále používám prostředky, ale nebyly uvedeny v nvidia-smi. Obvykle tyto procesy pouze zabíraly paměť gpu.

Pokud si myslíte, že máte proces využívající zdroje na GPU a není zobrazen v nvidia-smi, můžete zkusit spustit tento příkaz a znovu zkontrolovat. Ukáže vám, které procesy používají vaše GPU.

Sudo fuser -v /dev/nvidia*

Tato práce na EL7, Ubuntu nebo jiných distribucích mohou mít jejich nvidia zařízení uvedena pod jiným jménem/umístěním.

3
Rick Smith

Můžete použít nvtop, je to podobné htop, ale pro NVIDIA GPU. Odkaz: https://github.com/Syllo/nvtop

3
karl71

Pro OS X

Včetně horského lva

menu iStat

S výjimkou horského lva

atMonitor

Poslední verze atMonitor, která podporuje funkce související s GPU, je atMonitor 2.7.1.

- a odkaz na 2.7.1 přináší 2.7b.

Pro novější verzi aplikace atMonitor - FAQ vysvětluje:

Aby byl atMonitor kompatibilní s MacOS 10.8, odstranili jsme všechny funkce související s GPU.

Experimentoval jsem s 2.7b a.k.a. 2.7.1 na Mountain Lion s MacBookPro5,2 s NVIDIA GeForce 9600M GT. Před ukončením aplikace běžela několik sekund, ukázala teplotu, ale ne využití:

screenshot of atMonitor 2.7b on Mountain Lion

3
Graham Perrin

Glances má plugin, který ukazuje využití GPU a využití paměti.

enter image description here

http://glances.readthedocs.io/en/stable/aoa/gpu.html

Používá knihovnu nvidia-ml-py3: https://pypi.python.org/pypi/nvidia-ml-py

3
coreindustries

pro nvidia na linuxu používám následující python skript, který používá volitelné zpoždění a opakuje se jako iostat a 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}
2
mat kelcey

Následující funkce připojí informace jako PID, uživatelské jméno, využití CPU, využití paměti, využití paměti GPU, programové argumenty a dobu běhu procesů, které jsou spuštěny na GPU, na výstup 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
}

Příklad výstupu:

$ 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
1
Lenar Hoyt

Můžeš použít

nvidia-smi pmon -i 0

sledovat každý proces v GPU 0. včetně výpočetního/grafického režimu, využití sm, využití paměti, využití kodéru, využití dekodéru.

1
changqi.xia

Tento skript je čitelnější a je určen pro snadné mody a rozšíření.

Terminál gnome můžete nahradit vaším oblíbeným programem okna terminálu.


#! /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

#

Licence: GNU GPLv2, TranSeed Research

0
Douglas Daseeco

Neviděl jsem to v dostupných odpovědích (s výjimkou možná v komentáři), tak jsem si myslel, že bych dodal, že můžete získat hezčí osvěžující nvidia-smi s watch . Tím se obnoví obrazovka s každou aktualizací namísto neustálého rolování.

watch -n 1 nvidia-smi

pro aktualizaci sekundových intervalů. Nahradit 1 s tím, co chcete, včetně zlomkových sekund:

watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi
0
Engineero