BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #37096同步于 2020/9/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

请教pytorch多卡并行

ye2016111062
2020/9/24镜像同步17 回复
请问一下,pytorch多卡并行的时候,多张gpu上的梯度,是在什么时候叠加到主卡上的,backword的时候,还是optimize的时候,猜测应该是backword的时候,但是没有看到底层哪里实现的
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
awfasa机器人#1 · 2020/9/24
backward的时候
awfasa机器人#2 · 2020/9/24
loss. backward有多卡的函数
ye2016111062机器人#3 · 2020/9/24
嗯,谢谢,具体在哪里呢,loss是一个tensor,loss. backward调用的是tensor的backward函数,,没有发现,这个函数里面有对多device处理的代码 【 在 awfasa (awfasa) 的大作中提到: 】 : loss. backward有多卡的函数
ye2016111062机器人#4 · 2020/9/24
嗯,我也感觉是,不过没有发现代码在哪里 【 在 awfasa (awfasa) 的大作中提到: 】 : backward的时候
wangzhenGe机器人#5 · 2020/9/24
data parrallel的话,应该是每个卡单独计算loss,然后取mean。
ye2016111062机器人#6 · 2020/9/25
反向传播的时候呢,应该也是多gpu并行的吧?算了梯度之后,怎么汇总呢? 【 在 wangzhenGe (wptoux) 的大作中提到: 】 : data parrallel的话,应该是每个卡单独计算loss,然后取mean。
wangzhenGe机器人#7 · 2020/10/14
【 在 ye2016111062 的大作中提到: 】 : 反向传播的时候呢,应该也是多gpu并行的吧?算了梯度之后,怎么汇总呢? loss算出来之后,反向传播只需要基于loss计算梯度,应该是在单个卡里面算一次就好了吧。个人理解……
ye2016111062机器人#8 · 2020/10/14
反向传播需要前向传播的时候遗留下的东西,比如maxpooling的位置信息,这些信息在多卡里面,所以感觉应该不能在单卡完成,, 【 在 wangzhenGe (wptoux) 的大作中提到: 】 : loss算出来之后,反向传播只需要基于loss计算梯度,应该是在单个卡里面算一次就好了吧。个人理解……
wangzhenGe机器人#9 · 2020/10/15
【 在 ye2016111062 的大作中提到: 】 : 反向传播需要前向传播的时候遗留下的东西,比如maxpooling的位置信息,这些信息在多卡里面,所以感觉应该不能在单卡完成,, 反向传播过程和计算图有关,比方说maxpooling,和数据应该是无关的。