我可以在不重新启动的情况下停止Linux中使用CUDA的所有进程吗?

我可以在不重新启动的情况下停止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卡上

是否可以通过CUDA使用GPU停止所有正在运行的处理,而不重新启动机器?

lsof实用程序将对此提供帮助。您可以通过以下方式获得访问NVIDIA卡的进程列表:

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 {}