31 Stimmen

Kann ich alle Prozesse, die CUDA unter Linux verwenden, ohne Neustart anhalten?

Ist es möglich, alle laufenden Verarbeitungen mit der GPU über CUDA zu stoppen, ohne den Rechner neu zu starten?

31voto

i_grok Punkte 588

Das Dienstprogramm lsof ist dabei hilfreich. Sie können eine Liste der Prozesse, die auf Ihre NVIDIA-Karten zugreifen, mit erhalten:

lsof /dev/nvidia*

Verwenden Sie dann kill oder pkill, um die gewünschten Prozesse zu beenden. Beachten Sie, dass Sie X vielleicht nicht beenden wollen, wenn es noch läuft. Auf meinem Desktop-System greifen sowohl X als auch kwin auf die GPU zu.

20voto

user1165814 Punkte 395

Lange Antwort:

lsof /dev/nvidia*

gibt Ihnen PIDs, die auf Ihrer GPU-Karte laufen und etwa so aussehen: lsof: status error on PID: No such file or directory

COMMAND  PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python  7215 *******  mem    CHR 195,255           434 /dev/nvidiactl
python  7215 *******  mem    CHR   195,0           435 /dev/nvidia0

y

awk '{print $2}'

wählt die PID-Spalte aus (in meinem Fall ist es die zweite Spalte) und

xargs -I {} kill {}

tötet diese PID-Jobs.

Kurze Antwort:

Sie können den folgenden Befehl verwenden, um sie alle auf einmal zu entfernen.

Aufgepasst! Dieser Befehl löscht alle PIDs, die für lsof /dev/nvidia* angezeigt werden. Führen Sie zuerst lsof /dev/nvidia* aus, um sicherzustellen, dass es sich um die Jobs handelt, die Sie löschen möchten.

lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}

Beenden Sie die Arbeit mit einem einzigen Befehl.

13voto

Oliver Nina Punkte 645

Können Sie die Prozesse mit nvidia-smi und dann

kill -9 <pid>

1voto

Soma Siddhartha Punkte 149

Sie können den Befehl fuser verwenden, um alle Prozesse zu ermitteln, die CUDA verwenden, und sie dann beenden. Es gibt auch einen netten Einzelbefehl, um sie alle zu beenden.

sudo fuser -k /dev/nvidia*

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X