Ist es möglich, alle laufenden Verarbeitungen mit der GPU über CUDA zu stoppen, ohne den Rechner neu zu starten?
Antworten
Zu viele Anzeigen?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.
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.