Можно ли остановить всю запущенную обработку с использованием графического процессора через CUDA без перезагрузки компьютера?
Могу ли я остановить все процессы, использующие CUDA в Linux, без перезагрузки?
Ответ 1
Утилита lsof поможет в этом. Вы можете получить список процессов, обращающихся к вашим картам NVIDIA, с помощью:
lsof /dev/nvidia*
Затем используйте kill или pkill для завершения процессов, которые вы хотите. Обратите внимание, что вы можете не захотеть убить X, если он запущен. В моей настольной системе X и Kwin также получают доступ к графическому процессору.
Ответ 2
вы можете проверить процессы с помощью nvidia-smi
, а затем
kill -9 <pid>
Ответ 3
Длинный ответ:
lsof /dev/nvidia*
дает вам PID, работающие на вашей видеокарте, которые выглядят примерно так: lsof: ошибка состояния PID: такого файла или каталога нет
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 $2}'
выбирает столбец PID (в моем случае это второй столбец) и
xargs -I {} kill {}
убивает эти задания PID.
Краткий ответ:
Вы можете использовать следующую команду, чтобы удалить их все сразу.
Осторожно! Эта команда удалит все идентификаторы PID для lsof/dev/nvidia *. Сначала запустите lsof/dev/nvidia *, чтобы подтвердить, что эти задания вы хотите удалить.
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}
Завершите работу одной командой.