ring-allreduce简介

  • Post author:
  • Post category:其他


今天无聊看到了ring-allreduce的gpu通信算法,本来希望在

相关网页

上看看相关介绍的,但是在baidu research上却搜不到相关的东西,后来看了看

baidu-allreduce

代码的注释,才明白。这是一个说明起来挺简单的算法,自己打算随便说说。

觉得英文好的可以直接看看GitHub上注释,写的很清晰:

https://github.com/baidu-research/baidu-allreduce/blob/master/collectives.cu#L156


如无特殊说明,本博客的图片都来自于

知乎上的一个回答

,主要原因是baidu research上找不到这篇文章,所以相关的图例只在这个知乎回答里找到了

一般的多卡gpu训练有一个很大的缺陷,就是因为每次都需要一个gpu从其他gpu上收集训练的梯度,然后将新的模型分发到其他gpu上。如下图:



版权声明:本文为dpppBR原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。