lyuwenyu / RT-DETR

[CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOLOs on Real-time Object Detection. 🔥 🔥 🔥
Apache License 2.0
2.61k stars 303 forks source link

训练过程中显卡卡死 #185

Open guxiaowei1 opened 10 months ago

guxiaowei1 commented 10 months ago

图片 训练过程中报错,显卡100%,把batch-size设置高点可以正常运行,错误如下: RuntimeError: NCCL communicator was aborted on rank 1. Original reason for failure was: [Rank 1] Watchdog caught collective operation timeout: WorkNCCL(SeqNum=490, OpType=BROADCAST, Timeout(ms)=1800000) ran for 1806194 milliseconds before timing out.

lyuwenyu commented 10 months ago

paddle版本还是torch版本


可以star这个仓库,其他问题再留言

guxiaowei1 commented 10 months ago

paddle版本还是torch版本

可以star这个仓库,其他问题再留言

是pytorch 版本,我猜测可能是dataloader处理这块出了问题

leo-xuxl commented 8 months ago

请问您解决这个问题了吗?

Torian2002 commented 8 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

Lxy811 commented 6 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

同样的问题,请问解决了吗,单卡可以跑,两张卡就报错

Torian2002 commented 6 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

同样的问题,请问解决了吗,单卡可以跑,两张卡就报错

我最终也没有解决,就是直接换大内存的显卡就行,3090似乎就可以了,我用的A100就可以多卡了(大约占22个G内存左右吧

Lxy811 commented 6 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

同样的问题,请问解决了吗,单卡可以跑,两张卡就报错

我最终也没有解决,就是直接换大内存的显卡就行,3090似乎就可以了,我用的A100就可以多卡了(大约占22个G内存左右吧

你是用3090单卡跑的是吗?我现在想用4090两张卡跑不通。

Torian2002 commented 6 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

同样的问题,请问解决了吗,单卡可以跑,两张卡就报错

我最终也没有解决,就是直接换大内存的显卡就行,3090似乎就可以了,我用的A100就可以多卡了(大约占22个G内存左右吧

你是用3090单卡跑的是吗?我现在想用4090两张卡跑不通。

我当时2080ti,bs啥的都调整成最小是可以跑起来的,后来是A100按照论文的数据可以跑起来多卡。4090不太了解,按理来说不应该呀,你要不试试把训练参数调小一些?

Lxy811 commented 6 months ago

同样的问题,有木有解决方法呀。单卡可以跑,多卡就是这样报错,是不是数据集泄漏😭

同样的问题,请问解决了吗,单卡可以跑,两张卡就报错

我最终也没有解决,就是直接换大内存的显卡就行,3090似乎就可以了,我用的A100就可以多卡了(大约占22个G内存左右吧

你是用3090单卡跑的是吗?我现在想用4090两张卡跑不通。

我当时2080ti,bs啥的都调整成最小是可以跑起来的,后来是A100按照论文的数据可以跑起来多卡。4090不太了解,按理来说不应该呀,你要不试试把训练参数调小一些?

谢谢了,我现在尝试把numwork调成了1,bachsize调成16直接卡在训练之前,改成32才可以训练,但是训练中途会卡。

GT-Wei commented 6 months ago

尝试更换batch_size或者num_workers(可以试试把num_works更换为8)

Torian2002 commented 6 months ago

尝试更换batch_size或者num_workers(可以试试把num_works更换为8)

实际上是不行的,可能是因为你显卡内存大于22G(就可以按照官方给的默认参数跑,似乎num work就是8,bs是4)。如果在2080ti上,即便bs调整为1都会nccl通信错误

wannabetter commented 5 months ago

唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。

Lxy811 commented 5 months ago

我后来换了一个内存特别大的服务器,就跑起来了,内存100+G

---原始邮件--- 发件人: @.> 发送时间: 2024年6月15日(周六) 晚上9:09 收件人: @.>; 抄送: @.**@.>; 主题: Re: [lyuwenyu/RT-DETR] 训练过程中显卡卡死 (Issue #185)

唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Torian2002 commented 5 months ago

唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。

我的建议是看看他们的dataloader处理是不是有问题,因为有其它issue中提到了脏数据溢出问题。你这个单卡要是没问题,多卡报NCCL通信错误估计就还是那个问题,后面我用的A100基本随便改都不会出现问题了。

Torian2002 commented 5 months ago

唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。

或者你找找显存大于20G的例如3090和4090应该也是可以的

wannabetter commented 5 months ago

唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。

或者你找找显存大于20G的例如3090和4090应该也是可以的

感谢大哥,我回去试试。

wannabetter commented 5 months ago

我后来换了一个内存特别大的服务器,就跑起来了,内存100+G ---原始邮件--- 发件人: @.> 发送时间: 2024年6月15日(周六) 晚上9:09 收件人: @.>; 抄送: @.**@.>; 主题: Re: [lyuwenyu/RT-DETR] 训练过程中显卡卡死 (Issue #185) 唉,折腾快一个月了,仍然没有解决这个问题,实在是不明白到底什么地方出现了问题。4张3060源代码就没有问题,但是只要一改进,跑不出1个epoch就卡死。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

麻了哥,我按照你说的,换了一个128G内存的服务器,仍然会卡死。

Mang30 commented 1 month ago

@wannabetter 同学你好,我最近跑多卡训练时也遇到了这个问题,你找到这个问题的产生原因或解决方法了吗

wannabetter commented 1 week ago

@wannabetter 同学你好,我最近跑多卡训练时也遇到了这个问题,你找到这个问题的产生原因或解决方法了吗

我也没有解决哥们,最近一直在准备秋招的事情,最近秋招结束了,又在重新研究这个部分。