Могу ли я остановить все процессы, использующие CUDA в Linux без перезагрузки?

можно ли остановить всю запущенную обработку с помощью GPU через CUDA без перезагрузки машины?

3 ответов


утилита lsof поможет в этом. Вы можете получить список процессов, обращающихся к вашим картам NVIDIA с:

lsof /dev/nvidia*

затем используйте kill или pkill для завершения процессов, которые вы хотите. Обратите внимание, что вы не можете убить X, если он работает. В моей настольной системе и X, и kwin также получают доступ к GPU.


вы можете проверить процессы с nvidia-smi а то

kill -9 <pid>

короткий ответ:

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

завершить работу с помощью одной команды.

ответ:

lsof /dev/nvidia*

дает вам PIDs работает на вашей карте GPU, которая выглядит примерно так:

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

и

awk '{print }'

выбирает столбец PID (в моем случае это второй столбец) и

xargs -I {} kill {}

убивает эти PID-задания.