文章预览
↓ 推荐关注↓ 最近看到知乎一个回答,把千卡训练的难度吹上天了。但其实真正用过千卡就会发现也就那么几个点。于是想写一篇文章简单讲讲。 本文将包括3个部分:首先我们将讨论千卡训练的难题,以及应该在什么时候使用千卡训练;接着,我们将讨论如何在一千张卡上开始训练,如何让他达到近乎线性的性能提升;最后我们将展开讨论一些千卡训练当中仍然悬而未决(至少对于开源社区来说)的问题。 为什么千卡训练是困难的? 千卡训练和八卡训练的区别是—显卡多了一百多倍。 这意味着什么呢? 通信时间增加 故障概率增加 这俩问题都很好理解。 时间上,PyTorch内部支持NCCL/Gloo/MPI三个通信后端(请务必使用NCCL。其中AllReduce操作会会根据具体硬件配置走Ring AllReduce和Tree AllReduce。Ring的时间复杂度是 ,Tree的时间复杂度是 。就算是理论上1
………………………………