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