GPU kullanım izlemesi (CUDA)


223

Bilgisayarıma CUDA araç seti yükledim ve GPU'da BOINC projesini başlattım. BOINC'de GPU'da çalıştığını görebiliyorum, ancak GPU - GPU kullanımı ve bellek kullanımı konusunda neyin çalıştığı hakkında daha fazla ayrıntı gösterebilecek bir araç var mı?

Yanıtlar:


251

Nvidia GPU'larında nvidia-smibellek kullanımını, GPU kullanımını ve GPU sıcaklığını gösterebilen bir araç var. Ayrıca hesaplama işlemlerinin bir listesi ve birkaç seçenek daha var ancak grafik kartım (GeForce 9600 GT) tam olarak desteklenmiyor.

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

1
ION çipim de kullanım göstermiyor. : /
Raphael,

123
watch -n 0.5 nvidia-smi, terminalinizi çıktı ile doldurmadan çıktıyı güncel tutacaktır.
Bar,

31
@Bar İyi ipucu. watch -d -n 0.5 nvidia-smidaha iyi olacak.
zeekvfu

3
@zeekvfu -dBayrağın ne yaptığını açıklamanın daha iyi olacağını düşünüyorum
donlucacorleone

5
@ donlucacorleone man watchbize -dbayrakların çıktılar arasındaki farklılıkları vurguladığını söyler , böylece zamanla hangi metriklerin değiştiğini vurgulamaya yardımcı olabilir.
David Kaczynski

71

Linux için, kullanım nvidia-smi -l 1sürekli olarak 1 saniye yenileme aralığında, gpu kullanım bilgilerini verecektir.


74
watch -n 1 nvidia-smiTerminali çıkışla doldurmadan sürekli güncelleme elde etmeyi tercih ederim
ali_m

1
Saat kullanmak, kartları yoklamak için her saniye yeni bir işlem başlatmanız anlamına gelir. Yapması daha iyi, her saniye değil, her dakika veya her 5 dakikada bir öneriyorum.
Mick T


55

Intel GPU için vardır intel-gpu-toolsden http://intellinuxgraphics.org/ komutunu getiren projeyi intel_gpu_top(diğer şeyler arasında). Intel GPU'ya benzer topve htopözellikle de öyle.

   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%:                      

35

nvidia-smibazı linux makinelerde çalışmaz (birçok özellik için N / A döndürür). Bunun nvidia-settingsyerine kullanabilirsiniz (bu aynı zamanda py python dosyasında kullanılan mat kelcey'dir).

nvidia-settings -q GPUUtilization -q useddedicatedgpumemory

Ayrıca kullanabilirsin:

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

Sürekli izleme için.


4
Bunun bir yorum olmadığına sevindim. Bu soruya rastladığımda tam olarak aradığım şey buydu.
Score_Under

Teşekkürler, bu benim için çalıştı, çünkü nvidia-smi tarafından desteklenmeyen bir GeForce kartım var.
alexg

4
Başka nvidia-settings -q allhangi parametreleri izleyebileceğinizi görmek için yapabilirsiniz. Ben takip ediyorum GPUCurrentProcessorClockFreqsve GPUCurrentClockFreqs.
alexg

1
Teşekkürler dostum, hepsini sorgulamak iyi bir fikir, çünkü her kartın izlemesi gereken farklı dizeler olabilir!
ruoho ruotsi

Sadece sayıyı ve başka hiçbir şeyi istemiyorsanız (örneğin nvidia-settings -q [gpu:0]/UsedDedicatedGPUMemory -t
conky

16

Linux için, kendi yazdığım HTOP benzeri bir araç kullanıyorum. Çekirdek / VRAM / PCI-E ve bellek veri yolu kullanımının yanı sıra GPU sıcaklığını da izler ve genel bir bakış sunar. Yine de GPU’da nelerin çalıştığını izlemiyor.

gmonitor

görüntü tanımını buraya girin


1
nvidia-settingsçalışan bir X11 gerektirir, bu her zaman böyle değildir.
Victor Sergienko,

hiçbir zorlukla benim için çalışıyor!
Hennadii Madan

15

Tamamlanması için AMD'nin iki seçeneği vardır:

  1. fglrx (kapalı kaynak sürücüleri).

    $ aticonfig --odgc --odgt
    
  2. mesa (açık kaynaklı sürücüler), RadeonTop'u kullanabilirsiniz .

    Toplam etkinlik yüzdesi ve bireysel bloklar için GPU kullanımınızı görüntüleyin.


13

Bir GeForce 1060 GTX ekran kartına sahibim ve aşağıdaki komutun bana kart kullanımı, sıcaklık, fan hızı ve güç tüketimi hakkında bilgi verdiğini gördüm:

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

Tüm sorgu seçeneklerinin listesini aşağıdakilerle görebilirsiniz:

$ nvidia-smi --help-query-gpu

1
Eklemeye değer memory.used(veya memory.free) de olurdu .
Zoltan

3

OS X için

Dağ Aslanı dahil

iStat Menüleri

Dağ Aslanı hariç

atMonitor

AtMonitor'un GPU ile ilgili özellikleri destekleyen son sürümü atMonitor 2.7.1'dir.

- ve 2.7.1'e olan bağlantı 2.7b'yi verir.

Uygulamanın daha yeni bir sürümü için, atMonitor - SSS açıklar:

AtMonitor'u MacOS 10.8 ile uyumlu hale getirmek için GPU ile ilgili tüm özellikleri kaldırdık.

NVIDIA GeForce 9600M GT ile MacBookPro5,2 ile Mountain Lion'da 2.7b aka 2.7.1 ile denedim. Uygulamadan çıkmadan önce birkaç saniye çalıştı, sıcaklık gösterdi ancak kullanımı yoktu:

                                                  Mountain Lion'da atMonitor 2.7b ekran görüntüsü


3

İşlemlerim sonlandırıldı (muhtemelen öldürüldü veya düştü) ve kaynakları kullanmaya devam ettim, ancak listede yer almadım nvidia-smi. Genellikle bu işlemler sadece gpu belleği alıyordu.

Bir GPU'daki kaynakları kullanan bir işleminiz olduğunu düşünüyorsanız ve gösterilmiyorsa nvidia-smi, bu komutu iki kez kontrol etmek için çalıştırmayı deneyebilirsiniz. Hangi işlemlerin GPU'larınızı kullandığını size gösterecektir.

sudo fuser -v /dev/nvidia*

Bu, EL7, Ubuntu veya diğer dağıtımlarda çalışan nvidia cihazlarında başka bir ad / konum altında listelenmiş olabilir.



2

Linux için nvidia için isteğe bağlı bir gecikme kullanan ve iostat ve vmstat gibi tekrarlayan aşağıdaki python betiğini kullanıyorum

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}


1

Aşağıdaki işlev, PID, kullanıcı adı, CPU kullanımı, bellek kullanımı, GPU belleği kullanımı, program argümanları ve GPU'da çalıştırılan işlemlerin çalışma süresi gibi bilgileri çıktıya ekler 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
}

Örnek çıktı:

$ 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

Ps "Nvidia GPU" farkında olmadığı için Carefull, ben ps tarafından verilen pmem dikkate GPU toplam bellek alır düşünmek ancak CPU bu yok
SebMa

0

Bu komut dosyası daha okunaklıdır ve kolay modlar ve uzantılar için tasarlanmıştır.

GNOME terminalini favori terminal penceresi programınızla değiştirebilirsiniz.


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

#

Lisans: GNU GPLv2, TranSeed Araştırma


0

Kullanabilirsiniz

nvidia-smi pmon -i 0

işlem / grafik modu, sm kullanımı, bellek kullanımı, kodlayıcı kullanımı, kod çözücü kullanımı dahil olmak üzere GPU 0'daki her süreci izlemek için.


0

Ben (belki bir yorumda hariç) mevcut cevapları görmedik, bu yüzden ben daha hoş bir Tazelemeye alabilirsiniz eklemek düşündüm nvidia-smiile watch. Bu, sürekli kaydırma yapmak yerine ekranı her güncellemeyle yeniler.

watch -n 1 nvidia-smi

bir saniye aralık güncellemeleri için. 1Kesirli saniye dahil, istediğinizi ile değiştirin :

watch -n 5 nvidia-smi
watch -n 0.1 nvidia-smi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.