wangshusen / DeepLearning

Other
3.74k stars 833 forks source link

并行机器学习中(ring—structure),efficient all—reduce,可否在 O( number_of(node) / Network_bandwidth ) 复杂度下实现? #6

Open David-Dingle opened 3 years ago

David-Dingle commented 3 years ago

您的视频中,四个节点,六轮(每轮通讯四条链路同时利用)通讯,共24次通讯,复杂度是(number_of_parameter / wide——bandwidth)

有A B C D四台机器,分别在本地维护维护一个 w 矩阵,和一个同纬度的sum_local 矩阵,一个计数器 i 初始化为1。

sum_local = w // 根据本地 w 的拷贝初始化 sum_local i = 1 // sum_local 已收集了一个矩阵 while( i != number_of_Node_in_ring ) { throw w to next node get new w from previous node // 每次接到上个节点传来的 w,下次循环时只将接收到的w再传递出去 ++i sum_local += w }

这个方法可行么,共计四轮(每轮,四条链路同时利用)通讯,共16 次通讯(复杂度是 number_of_node / bandwidth)