我们平时使用GPU训练深度学习模型时,有时程序异常终止而gpu的内存却并没有自动清空,导致我们想再次运行程序时,会出现报错:RuntimeError: CUDA out of memory。
这时候最简单直接的办法就是重启电脑,可是如果我们不想老是去重启电脑,或者程序运行在服务器上我们没权限重启怎么办,下面提供几种应对不同情况的办法。
首先,我们在命令行输入nvidia-smi
,查看当前gpu使用情况。
-
当可以查看到进程时
如上图所示,当可以在输出结果中看到process id(PID)时,我们可以直接终止该process达到清空内存,方法:kill -9 265532
,我用这条命令终止了265532这个程序。 -
当无法查看到使用进程时
有时候当我们运行完nvidia-smi
后,发现GPU内存被占满了,却在Processes里查看不到process id,这时候怎么办呢?