深度学习:用del删掉不用的tensor真的能降低显存消耗吗

关于深度学习降低显存消耗的方法有很多,网上一直有一种方法在流传(甚至在知乎看到一个问题下面有几个人鼓吹这个方法),就是

用del删掉掉不用的tensor,再马上执行torch.cuda.empty_cache(),

需要注意:多次del则多次执行torch.cuda.empty_cache(),不能只放在最后执行一次

一直听说上述方法能够解决显存不足不能训练的问题,今天实测了一下

先说实验结论:

中间状态显存是会下降,但是峰值显存差别不大,所以不能训练的基本还是不能训练!

 

如上图,通过手动输入nvidia-smi命令监测gpu显存消耗,在前后差别为1秒的时间内(05:57:46~05:57:47),显存占用确实有大幅下降,多执行几次发现有好几种显存占用大小的状态,所以确认显存占用在某些时候是下降了

但是,但是,峰值显存占用(最大的显存占用)仍然不怎么变,也就意味着如果原本会显存溢出导致不能训练的,你加上这个大概率依旧不能训练,因为显存下降并不是保持常态化,而只是在某些时间下降,该CUDA out of memory的还是依旧。

甚至多次执行del和torch.cuda.empty_cache()还会增加计算开销,导致每个step的训练时间增加

测试环境:使用的深度学习框架为pytorch-lightning,显卡为两张Titan V 

以上是本人的实验结果,读者如若感兴趣也可以自己实验试试。如若大佬发现我的实验有错或者哪里出了问题,也可以评论回复纠正我,万分感激!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值