首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >训练分割模型,4个GPU工作,1个填充并得到:"CUDA错误:内存不足“

训练分割模型,4个GPU工作,1个填充并得到:"CUDA错误:内存不足“
EN

Stack Overflow用户
提问于 2018-12-15 18:51:25
回答 1查看 167关注 0票数 0

我试图建立一个分段模型,我不断得到"CUDA错误:内存不足“,在调查之后,我意识到所有4个GPU都在工作,但其中一个正在填充。

一些技术细节:

  • My模型: 该模型用放电筒编写,参数为3.8M。
  • 我的硬件: 我有4个GPU与12 12GRAM (泰坦V)每个。

我想弄明白为什么我的一个GPU被填满了,我做错了什么。

  • 证据:从下面的屏幕截图中可以看到,所有的GPU都在工作,但是其中一个一直在填充,直到他达到极限为止。

  • 代码:--我将尝试解释我在代码中做了什么: 首先我的模型: 模型= model.cuda()模型=nn.DataParallel(模型,device_ids=None) 第二,投入和目标: 输入= inputs.to('cuda')掩码= masks.to('cuda')

这些都是与GPU一起工作的线路,如果我遗漏了什么,您还需要什么,请分享。

我觉得我错过了一些最基本的东西,这不仅会影响到这个模型,而且也会影响到未来的模型,我会非常高兴地得到一些帮助。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-12-15 19:29:53

在不知道很多细节的情况下,我可以这样说

  1. nvidia-smi不是最可靠和最新的测量机制。
  2. PyTorch GPU分配器也帮不上忙--它将人为地缓存内存块,炸掉使用过的资源(尽管这里不是问题)。
  3. 我相信仍然有一个“主”GPU,即数据直接加载到(然后广播到DataParallel中的其他GPU)。

我对PyTorch还不太了解,无法可靠地回答,但您肯定可以检查单个GPU设置是否可以将批处理大小除以4,或者您是否可以在一次加载模型+批处理(无需处理)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53796254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档