清理占用GPU显存的僵尸进程
概要
在基于Linux(Ubuntu)系统进行开发时。程序调用GPU进行运算(如深度学习框架,尤其是Paddle框架),若进程非正常终止,最常见是在进程运行中使用Ctrl+C杀死进程,进程结束后会留下僵尸进程,使用kill -9 pid
指令提示 No such process
。
网上很多博客介绍使用fuser -v /dev/nvidia*
查看PID,但这个指令返回的结果只有pid,没有其他信息,然后手动复制,一个一个尝试。
这样操作流程比较费事,每次都要折腾挺久,所以我加了个流程,自动清理。
Talk is cheap. Show me the code
具体指令如下:
fuser -v /dev/nvidia0 | awk '{print $0}' | xargs kill -9
这行指令能够自动清理编号为0的显卡上当前用户的所有调用GPU进程,注意使用该指令会清空所有程序。清理第二块卡将0
改成1
,以此类推。