ubuntu下查看GPU真实使用情况的方式及解决显存不够的一般方法(gpustat)

强烈推荐参考这篇博客

ubuntu下查看GPU真实使用情况的方式及解决显存不够的一般方法(gpustat)

背景:

我经常使用nvidia-smi查看gpu使用情况,然而最近发现,按照nvidia-smi显示的显存占用,应该还是有很多显存空间的,但是老是报关于out of memery的错误,batchsize不断改小,直到从16改到2感觉事情不对,于是就有了这篇博文。

显存不够,我做了哪些工作

训练的时候

torch.cuda.empty_cache()清空缓冲区,这句加在
pred = model(input)之前

test的时候

with torch.no_grad():
            result = model(return_loss=False, rescale=not show, **data)

自动混合浮点精度(参考)
ubuntu下查看GPU真实使用情况的方式及解决显存不够的一般方法(gpustat)_第1张图片

对于我有效的解决方式

可能是由于使用nohup是的一些命令退出的时候没有完全释放内存。
所以
1,查看实际内存

取缔nvidia-smi转而使用gpustat
在这里插入图片描述
gpustat比nvidia-smi显示的显存占用更加真实(大),但是一些占用了显存的进程看不到

使用如下命令:

fuser -v /dev/nvidia*

其实我也用了kill命令,可是还是有残留,查到进程后,可以使用如下命令kill用户所有进程

killall -u xiaoming

你可能感兴趣的:(pytorch,ubuntu,深度学习,linux)