HJYao00 / Side4Video

MIT License
34 stars 2 forks source link

关于在K400上训练效率的问题 #6

Closed LHX0303 closed 2 months ago

LHX0303 commented 3 months ago

作者您好,我对您这篇文章非常感兴趣,最近在尝试复现在K400上的结果。 想请问,您在训练时使用的什么型号的显卡,训练花费了几张显卡用了多长的时间呢。 我这边是4张A800,但是训练时的速度非常的缓慢,并且每次训练worker个batch时,训练都会卡死等待很长的时间。 感觉我这边的这个运行速度不是很正常,请问您有遇到过这个情况吗? 微信图片_20240617205753

HJYao00 commented 3 months ago

感谢你对我们工作的关注!我们在V100和A100上都做过实验,没有遇到这种情况。使用8卡A100的情况下,在K400上训练B-16大概在5.5h左右。我们的workers设置为4,你有尝试过将workers减小一点吗?另外,我们的的全局batch size是256,在4卡上面batch size需要设置为64。

LHX0303 commented 2 months ago

感谢您昨天这么晚还回复我的问题!幸苦了! 我也是训练的B-16,按您说的我尝试减小了worker,效率有所提升。但是时间还是比较久,我今天使用6张A800进行训练,预测训练完毕的时间也在50小时以上。 其实我遇到这个效率问题也差不多尝试了两个多星期了。我最大的困惑其实是GPU的平均利用率非常低,隔一段时间就会出现所有的GPU利用率都为0的情况,都为0持续一段时间之后又正常。上面的日志中也可以看出读取数据的时间比训练时间要长很多。所以我其实一直怀疑是数据读取速度的问题,因为我猜视频分片成图片之后读取的时间会增加。但我这边也检查了cpu的利用率发现也很低,查看io也没有到达瓶颈。 所以想请问一下,不知道您在训练时有没有注意GPU和CPU的利用率呢,也有可能我这边的设备确实遇到了io瓶颈的问题,但我没检查出来。也询问一下贵团队在训练时使用的CPU,我想对比一下自己这边的设备,看看是否是CPU性能差距大导致的问题。 万分感激您抽空解答我的问题!可能问题比较基础,感谢大佬!

HJYao00 commented 2 months ago

我们训练的时候GPU利用率都很高,没有出现利用率为0的情况。机器的总逻辑CPU数为160,但我觉得应该不是cpu的问题。你可以检查一下单卡训练的效率,或者检查训练数据是否在A800机器上。此外,你也可以提供一下更详细的环境信息,比如关键包的版本。

LHX0303 commented 2 months ago

麻烦作者了,排查了两天最后发现是读图片的速度慢。问了服务器的厂家,他说我们的文件系统和显卡是通过nfs网络连接的所以速度慢,无语了。麻烦作者回复了,幸苦了,谢谢!