内容纲要
问题
爆显存(CUDA OOM)什么原因?
原因
A:如果执行程序报错OOM显存不足,那么最简单的调试办法是设置batch size=1然后逐步增大,观察跑到多大bs时OOM,以此为依据再决定升配成多卡还是换一个更大显存的卡。另外一种情况,第一次跑没有OOM,但是再次运行就OOM了,这类情况先使用nvidia-smi命令确认在未跑时显存占用,如果有占用那么说明有之前跑的残留进程需要清理掉,清理方式: ps -ef 找到进程PID,然后kill -9 PID
,如果没有显存占用,那么说明程序的特性就这样,比如动态深度学习框架的显存是会发生变化的,正好在计算过程中对显存的需求超出上限。