Próbuję monitorować proces, który używa cuda i MPI, czy jest jakiś sposób, bym mógł to zrobić, coś w rodzaju polecenia „top”, ale to też monitoruje GPU?
cuda
resource-monitor
natorro
źródło
źródło
Odpowiedzi:
Uważam, że gpustat jest bardzo przydatny. Program In można zainstalować za pomocą programu
pip install gpustat
i wyświetla podział wykorzystania według procesów lub użytkowników.źródło
watch gpustat -cp
możesz zobaczyć statystyki w sposób ciągły, ale kolory zniknęły. Jak to naprawić? @Alleowatch -c
. @Roman Orac, dziękuję, działało to również dla mnie na redhat 8, kiedy otrzymywałem błąd z powodu importowania _curses w Pythonie.watch -c gpustat -cp --color
watch -n 0.5 -c gpustat -cp --color
--watch
opcję:gpustat -cp --watch
Aby uzyskać wgląd w używane zasoby w czasie rzeczywistym, wykonaj:
nvidia-smi -l 1
Spowoduje to zapętlenie i wywołanie widoku co sekundę.
Jeśli nie chcesz pozostawić śladów zapętlonego wywołania w historii konsoli, możesz również:
watch -n0.1 nvidia-smi
Gdzie 0,1 to przedział czasu w sekundach.
źródło
Nie znam niczego, co łączy te informacje, ale możesz użyć
nvidia-smi
narzędzia, aby uzyskać surowe dane, na przykład (dzięki @jmsu za wskazówkę na -l):źródło
watch -n 0.5 nvidia-smi
, co pozwala uniknąć wypełniania terminala danymi wyjściowymiPobierz i zainstaluj najnowszy stabilny sterownik CUDA (4.2) stąd . W systemie Linux nVidia-smi 295.41 zapewnia dokładnie to, czego chcesz. zastosowanie
nvidia-smi
:EDYCJA: W najnowszych sterownikach NVIDIA ta obsługa jest ograniczona do kart Tesla.
źródło
aby uzyskać dalszą pomoc, postępuj zgodnie z
źródło
Po prostu użyj
watch nvidia-smi
, domyślnie wyświetli wiadomość co 2 sekundy.Na przykład, jak na poniższym obrazku:
Możesz również użyć
watch -n 5 nvidia-smi
(-n 5 na 5s interwał).źródło
Innym użytecznym podejściem do monitorowania jest
ps
filtrowanie procesów, które zużywają Twoje GPU. Używam tego często:To pokaże wszystkie procesy wykorzystujące GPU nvidia i niektóre statystyki na ich temat.
lsof ...
pobiera listę wszystkich procesów korzystających z procesora graficznego nvidia należącego do bieżącego użytkownika ips -p ...
wyświetlaps
wyniki dla tych procesów.ps f
pokazuje ładne formatowanie relacji / hierarchii procesów potomnych / nadrzędnych i-o
określa niestandardowe formatowanie. To jest podobne do zwykłego robienia,ps u
ale dodaje identyfikator grupy procesów i usuwa niektóre inne pola.Jedną z zalet tego rozwiązania
nvidia-smi
jest to, że pokazuje rozwidlenia procesów, a także główne procesy korzystające z GPU.Jedną z wad jest jednak to, że ogranicza się do procesów należących do użytkownika, który wykonuje polecenie. Aby otworzyć go dla wszystkich procesów należących do dowolnego użytkownika, dodaję
sudo
przed rozszerzeniemlsof
.Na koniec łączę to z,
watch
aby uzyskać ciągłą aktualizację. Ostatecznie wygląda to tak:Który ma dane wyjściowe:
źródło
sudo
tego:nvidia-smi --query-compute-apps=pid --format=csv,noheader
nvidia-smi
nie wyświetla wszystkich procesów, więc Twoja pamięć jest używana przez procesy, których tam nie ma. To jest główny sposób, w jaki mogę śledzić i zabijać te procesy.pmem
podana wartośćps
bierze pod uwagę całkowitą pamięć GPU, ale pamięć procesora, ponieważps
nie jest świadomy "GPU Nvidia"Możesz spróbować
nvtop
, który jest podobny do powszechnie używanegohtop
narzędzia, ale dla procesorów graficznych NVIDIA. Oto zrzut ekranunvtop
przedstawiający to w akcji.źródło
To może nie być eleganckie, ale możesz spróbować
Wypróbowałem też metodę @Edric, która działa, ale wolę oryginalny układ
nvidia-smi
.źródło
nvidia-smi -l 2
. Albo żeby zapobiec powtarzaniu się konsoli,watch -n 2 'nvidia-smi'
Jeśli chcesz tylko znaleźć proces działający na gpu, możesz po prostu użyć następującego polecenia:
Jak dla mnie
nvidia-smi
iwwatch -n 1 nvidia-smi
większości przypadków wystarczą. Czasaminvidia-smi
nie pokazuje żadnego procesu, ale pamięć GPU jest zużyta, więc muszę użyć powyższego polecenia, aby znaleźć procesy.źródło
W Linux Mint i najprawdopodobniej Ubuntu możesz wypróbować „nvidia-smi --loop = 1”
źródło
Istnieje Prometheus GPU Metrics Exporter (PGME), który wykorzystuje plik binarny nvidai-smi. Możesz to wypróbować. Po uruchomieniu eksportera możesz uzyskać do niego dostęp przez http: // localhost: 9101 / metrics . Przykładowy wynik dla dwóch procesorów graficznych wygląda następująco:
źródło
możesz użyć
nvidia-smi pmon -i 0
do monitorowania każdego procesu w GPU 0. włączając tryb obliczeniowy, użycie sm, użycie pamięci, użycie kodera, użycie dekodera.źródło
Możesz użyć skrótu do programu monitorującego z jego wtyczką do monitorowania GPU :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
sudo glances
Monitoruje również procesor, IO dysku, miejsce na dysku, sieć i kilka innych rzeczy:
źródło
Utworzyłem plik wsadowy z następującym kodem na komputerze z systemem Windows do monitorowania co sekundę. Mi to pasuje.
nvidia-smi exe zwykle znajduje się w „C: \ Program Files \ NVIDIA Corporation”, jeśli chcesz uruchomić polecenie tylko raz.
źródło