【解决方案】Pytorch训练中止,报错Segmentation fault(core dumped),此后多卡利用率很低

问题描述

1.我使用三块卡,分别是,1,2,5号,进行三个对比实验。昨天还是可以运行比较快的,今早发现程序中止,报错:Segmentation fault(core dumped) 我按照网上的解决方法,将stack size设为unlimited
2.我后来重新运行,发现三块卡的程序都训练很慢,而且以每0.5秒查看利用率发现虽然三块内存都占用较多,可利用率不是同时都高,甚至大多数时间都是为零,如三张图所示。

解决方案

针对问题1,我搜索Segmentation fault(core dumped)错误,网上都说是内存操作错误,指针越界之类的。因此我采用了一篇博主的方法,将stack size设为unlimited。

a.查看stack size

ulimit -a

b. 将stack size设为无限

ulimit -s unlimited

我以为问题解决了,

虽然不再报段错误,但是出现了新的问题,即问题2.。这可怎么办,我可是要进行Ablation Study的,有多卡却不能同时跑提痛苦了。我请教了一个pytorch学习群的大佬,他们让我检查cpu利用率,但是发现利用率都挺高,如图4。还有同学让我把DataLoader线性设为cpu核心存储数目,即20。但是我认为这解决不了,以你为之前我都是用8的,没有问题,三块卡都有百分之八九十利用率。后来设为16,一样不起作用,因此设为20不会有很大作用。无奈之下,实行终极绝招:重启服务器!后来,GPU利用率竟然三块都有百分之八九十。我不知道原因,不知道单纯是重启,还是此前出现的段错误,我将stack size设为unlimited后需要重启。

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值