1、朴素All Reduce
假设GPU节点数为N,两两GPU间的网络上下行带宽均为B,weight数据量S,那么broadcast(下图中的Receive)的通信时间:T = (N-1)S/B,可以看出T随N线性增长,当N很大时,这会成为严重的瓶颈。
当然,这是基于同步SGD。如果用异步SGD,通信时间会变短,但是异步SGD可能会不收敛。
2、Baidu All Reduce(Ring All Reduce)
参见:
3、Double binary trees
参考链接
1)Baidu All Reduce:
2)Horovod: