我可以在不重新启动的情况下停止Linux中使用CUDA的所有进程吗?
是否可以通过CUDA使用GPU停止所有正在运行的处理,而不重新启动机器?lsof实用程序将对此提供帮助。您可以通过以下方式获得访问NVIDIA卡的进程列表:我可以在不重新启动的情况下停止Linux中使用CUDA的所有进程吗?,cuda,restart,kill-process,Cuda,Restart,Kill Process,是否可以通过CUDA使用GPU停止所有正在运行的处理,而不重新启动机器?lsof实用程序将对此提供帮助。您可以通过以下方式获得访问NVIDIA卡的进程列表: lsof /dev/nvidia* 然后使用kill或pkill终止所需的进程。请注意,如果X正在运行,您可能不想杀死它。在我的桌面系统上,X和kwin也在访问GPU。您可以使用nvidia smi检查进程,然后 kill -9 <pid> kill-9 详细回答: lsof /dev/nvidia* 为您提供在GPU卡上
lsof /dev/nvidia*
然后使用kill或pkill终止所需的进程。请注意,如果X正在运行,您可能不想杀死它。在我的桌面系统上,X和kwin也在访问GPU。您可以使用
nvidia smi检查进程,然后
kill -9 <pid>
kill-9
详细回答:
lsof /dev/nvidia*
为您提供在GPU卡上运行的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
及
选择PID列(在我的示例中是第二列)并
干掉那些无聊的工作
简短回答:
lsof /dev/nvidia*
您可以使用以下命令一次将它们全部删除
小心!此命令将删除为lsof/dev/nvidia*显示的所有PID。请先运行lsof/dev/nvidia*确认这些作业是您要删除的作业。
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}
只需一个命令即可完成作业。您可以随时临时更改/dev/nvidiaxx的权限,我还没有尝试过,但我相信这会立即终止作业。我不知道如何指定专门在gpu上运行的作业,除非您使用某种队列或负载均衡程序。它是“kill-9PID”吗?因为我杀了-9,但没用我明白了,只是pid。就像一句话,这对我不起作用。杀死我的内核进程没有效果。内核进程正在无限期地消耗GPU,我不能杀死它。如果他们不能接受提示,建议你添加几行关于用kill-kill
杀死它们的内容。好狗屎哥们,这刚刚使我的整个电脑崩溃,Ubuntu在启动时进入修复模式。很遗憾听到这个消息。我已经更改了答案并添加了提醒
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}