一般在使用shh连接服务器的时候,用GPU训练模型,由于操作习惯问题。终直接在终端用ctrl+z终止训练,此时GPU资源可能未立即释放,
下次继续使用时有可能会报例如CUDA_ERROR_OUT_OF_MEMORY这种错误,就是提示显存不够。这时候需要人工来杀死占用GPU显存的进程。
这几天碰巧加载有一个较大的模型时,提示显存不足,特此解决:
这里就需要通过fuser 找到nivdia对应的程序进程,然后杀掉(fuser 显示使用指定文件或者文件系统的进程的PID。)。
第一步安装如下软件:
-
在centos系统下,输入以下指令安装
yum install psmisc
-
然后,查看占用GPU资源的进程及ID
fuser -v /dev/nvidia*
-
找到仍然在占用GPU的进程PID
kill -9 pid # 表示强迫进程立即停止 kill pid # 也可以终止进程
-
大功告成。
其实也有可能是你需要花钱买一个更棒的显存,或者批量训练