CUDA kullanan GPU'lar için top komutu


Yanıtlar:


84

Gpustat'ı çok faydalı buluyorum . İle birlikte yüklenebilir pip install gpustatve işlemler veya kullanıcılar tarafından kullanım dökümünü yazdırır.

görüntü açıklamasını buraya girin


4
koyduktan sonra watch gpustat -cpistatistikleri sürekli olarak görebilirsiniz ama renkler kayboldu. Bunu nasıl düzeltirsin? @Alleo
AbhimanyuAryan

1
@AbhimanyuAryan kullanımı watch -c. @Roman Orac, Teşekkürler, bu benim için de _curses'i python'a aktarırken bir hata aldığımda redhat 8'de çalıştı.
Bobak Haşimi

4
watch -c gpustat -cp --color
Lee Netherton

1
watch -n 0.5 -c gpustat -cp --color
Gabriel Romon

4
gpustat'ın artık bir --watchseçeneği var:gpustat -cp --watch
jayelm

141

Kullanılan kaynaklar hakkında gerçek zamanlı bilgi almak için şunları yapın:

nvidia-smi -l 1

Bu, her saniye döngüye girecek ve görünümü çağıracaktır.

Konsol geçmişinde döngülü aramanın geçmiş izlerini tutmak istemiyorsanız, şunları da yapabilirsiniz:

watch -n0.1 nvidia-smi

0.1 saniye cinsinden zaman aralığıdır.

görüntü açıklamasını buraya girin


2
Kartı 0,1 saniyede bir mi sorguluyorsunuz? Bu kartın yüklenmesine neden olacak mı? Artı, saati kullanarak her 0,1 saniyede bir yeni bir işleme başlarsınız.
Mick T

@MickT Bu büyük bir anlaşma mı? Nvidia-smi bu bina döngüsüne sahip! "İzle" komutu nvidia-smi -l'den çok farklı mı?
Mohammad Javad

Olabilir, alt uç kartların garip kilitlenmeleri olduğunu gördüm ve bunun nedeni çok fazla kullanıcının kartlarda nvidia-smi çalıştırmasıydı. Bence 'nvidia-smi -l' kullanmanın daha iyi bir yol olduğunu düşünüyorum çünkü her seferinde yeni bir süreci çatallaştırmıyorsunuz. Ayrıca, kartı 0,1 saniyede bir kontrol etmek aşırıdır, bir sorunu gidermeye çalışırken her saniye yaparım, aksi takdirde performansı izlemek için her 5 dakikada bir yaparım. Umarım bu yardımcı olur! :)
Mick T

@Gülzar evet öyle.
TrostAft

83

Bu bilgileri birleştiren herhangi bir şey bilmiyorum, ancak nvidia-smiaracı ham verileri elde etmek için kullanabilirsiniz , örneğin (-l'deki ipucu için @jmsu'ya teşekkürler):

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

4
Sanırım buna bir -l eklerseniz, GPU ve bellek kullanımını sürekli olarak etkin bir şekilde izleyerek güncellemesini elde edersiniz.
jmsu

6
Ya çalıştırdığımda GPU kullanımı sadece N / A diyorsa ??
natorro

3
@natorro Görünüşe göre nVidia bazı kartlar için desteği bıraktı. Bu bağlantıyı kontrol edin forums.nvidia.com/index.php?showtopic=205165
jmsu

29
watch -n 0.5 nvidia-smiTerminalinizi çıktı ile doldurmaktan kaçınan tercih ederim
ali_m

nvidia-smi pmon -i 0
changqi.xia

19

En son kararlı CUDA sürücüsünü (4.2) buradan indirin ve yükleyin . Linux'ta, nVidia-smi 295.41 size tam istediğinizi verir. kullanım nvidia-smi:

[root@localhost 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  |
+-----------------------------------------------------------------------------+

DÜZENLEME: En son NVIDIA sürücülerinde bu destek Tesla Kartlarla sınırlıdır.


18

"--Query-compute-apps =" bağımsız değişkenini kullanın

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

daha fazla yardım için lütfen takip edin

nvidia-smi --help-query-compute-app

17

Sadece kullanın watch nvidia-smi, mesajı varsayılan olarak 2 saniyelik aralıklarla çıkarır.

Örneğin, aşağıdaki resim gibi:

görüntü açıklamasını buraya girin

Ayrıca watch -n 5 nvidia-smi(-n 5'e 5s aralıklarla) kullanabilirsiniz.


16

Diğer bir yararlı izleme yaklaşımı, psGPU'larınızı tüketen işlemlerde filtrelenmiş kullanmaktır . Bunu çok kullanıyorum:

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

Bu, tüm nvidia GPU kullanan işlemlerini ve bunlarla ilgili bazı istatistikleri gösterecektir. lsof ...mevcut kullanıcıya ait bir nvidia GPU kullanarak tüm işlemlerin bir listesini alır ve bu işlemlerin sonuçlarını ps -p ...gösterir ps. ps falt / üst süreç ilişkileri / hiyerarşileri için güzel bir biçimlendirme gösterir ve -oözel bir biçimlendirme belirtir. Bu sadece yapmaya benzer, ps uancak işlem grubu kimliğini ekler ve diğer bazı alanları kaldırır.

Bunun bir avantajı, nvidia-smiişlem çatallarının yanı sıra GPU'yu kullanan ana işlemleri göstermesidir.

Bununla birlikte, bir dezavantajı, komutu yürüten kullanıcının sahip olduğu işlemlerle sınırlı olmasıdır. Herhangi bir kullanıcının sahip olduğu tüm süreçleri açmak sudoiçin lsof,.

Son olarak, watchsürekli bir güncelleme almak için onu birleştiriyorum . Yani sonunda şöyle görünüyor:

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

Hangi çıktıya sahip:

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

2
Ayrıca, tüm kullanıcıların GPU'sunu işgal eden hesaplama programlarının PID'lerini şu şekilde de alabilirsiniz sudo:nvidia-smi --query-compute-apps=pid --format=csv,noheader
Lenar Hoyt

1
Bazen nvidia-smitüm işlemleri listelemez, bu nedenle belleğiniz burada listelenmeyen işlemler tarafından kullanılır. Bu süreçleri izleyip sonlandırabilmemin ana yolu budur.
rand

1
@grisaitis Carefull, pmemtarafından verilenin psGPU'nun toplam belleğini hesaba kattığını düşünmüyorum, ancak CPU'nunkini çünkü ps"Nvidia GPU" farkında değil
SebMa

10

Deneyebilirsin nvtopYaygın olarak kullanılan htoparaca benzer ancak NVIDIA GPU'lar için . İşte iş nvtopbaşında bir ekran görüntüsü .

NVtop iş başında ekran görüntüsü


3

Bu zarif olmayabilir ama deneyebilirsin

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

Yöntemi @Edric tarafından da denedim, işe yarıyor, ancak orijinal düzenini tercih ediyorum nvidia-smi.


12
Ya da yapabilirsin nvidia-smi -l 2. Veya tekrarlanan konsol çıkışını önlemek içinwatch -n 2 'nvidia-smi'
grisaitis

3

Sadece gpu'da çalışan işlemi bulmak istiyorsanız, aşağıdaki komutu kullanabilirsiniz:

lsof /dev/nvidia*

Benim için nvidia-smive watch -n 1 nvidia-smiçoğu durumda yeterli. Bazen nvidia-smihiçbir işlem gösterilmez, ancak gpu belleği tükenir, bu yüzden işlemleri bulmak için yukarıdaki komutu kullanmam gerekiyor.


2

Linux Mint ve büyük olasılıkla Ubuntu'da "nvidia-smi --loop = 1" deneyebilirsiniz.


0

Orada Prometheus GPU Ölçümleri İhracatçı (PGME) nvidai-smi ikili yararlanır. Bunu deneyebilirsin. Dışa aktarıcıyı çalıştırdıktan sonra, http: // localhost: 9101 / metrics aracılığıyla ona erişebilirsiniz . İki GPU için örnek sonuç şuna benzer:

temperature_gpu{gpu="TITAN X (Pascal)[0]"} 41
utilization_gpu{gpu="TITAN X (Pascal)[0]"} 0
utilization_memory{gpu="TITAN X (Pascal)[0]"} 0
memory_total{gpu="TITAN X (Pascal)[0]"} 12189
memory_free{gpu="TITAN X (Pascal)[0]"} 12189
memory_used{gpu="TITAN X (Pascal)[0]"} 0
temperature_gpu{gpu="TITAN X (Pascal)[1]"} 78
utilization_gpu{gpu="TITAN X (Pascal)[1]"} 95
utilization_memory{gpu="TITAN X (Pascal)[1]"} 59
memory_total{gpu="TITAN X (Pascal)[1]"} 12189
memory_free{gpu="TITAN X (Pascal)[1]"} 1738
memory_used{gpu="TITAN X (Pascal)[1]"} 10451

0

nvidia-smi pmon -i 0Hesaplama modu, sm kullanımı, bellek kullanımı, kodlayıcı kullanımı, kod çözücü kullanımı dahil olmak üzere GPU 0'daki her işlemi izlemek için kullanabilirsiniz .


0

Sen izleme programı kullanabilirsiniz bakışlar onun ile izleme GPU eklentisini:

  • açık kaynak
  • yüklemek: sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • çalıştırmak: sudo glances

görüntü açıklamasını buraya girin

Ayrıca CPU, disk IO, disk alanı, ağ ve diğer birkaç şeyi de izler:

görüntü açıklamasını buraya girin


0

Her saniyeyi izlemek için bir Windows makinesinde aşağıdaki kodla bir toplu iş dosyası oluşturdum. Benim için çalışıyor.

:loop
cls
"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"
timeout /T 1
goto loop

Komutu yalnızca bir kez çalıştırmak istiyorsanız, nvidia-smi exe genellikle "C: \ Program Files \ NVIDIA Corporation" konumunda bulunur.

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.