是否可以通过 CUDA 使用 GPU 停止所有正在运行的处理,而无需重新启动机器?
问问题
26186 次
4 回答
23
lsof 实用程序将对此有所帮助。您可以通过以下方式获取访问 NVIDIA 卡的进程列表:
lsof /dev/nvidia*
然后使用 kill 或 pkill 终止您想要的进程。请注意,如果 X 正在运行,您可能不想杀死它。在我的桌面系统上,X 和 kwin 都在访问 GPU。
于 2010-12-31T16:53:58.427 回答
14
长答案:
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
和
awk '{print $2}'
选择 PID 列(在我的情况下,它是第二列)和
xargs -I {} kill {}
杀死那些PID作业。
简短的回答:
您可以使用以下命令一次将它们全部删除。
小心!此命令将删除为 lsof /dev/nvidia* 显示的所有 PID。请先运行 lsof /dev/nvidia* 以确认这些作业是您要删除的作业。
lsof /dev/nvidia* | awk '{print $2}' | xargs -I {} kill {}
通过一个命令完成工作。
于 2018-07-02T20:23:34.607 回答
12
你可以检查进程nvidia-smi
然后
kill -9 <pid>
于 2016-01-20T17:24:38.377 回答
0
您可以使用 fuser 命令获取所有使用 CUDA 的进程,然后将它们杀死。还有一个很好的单一命令可以杀死它们。
sudo fuser -k /dev/nvidia*
于 2021-09-24T06:24:51.227 回答