caffe多gpu训练问题

从caffe主页说明来看,如果用多个GPU的话,batchsize的大小就可以减小。而batchsize减小的话,通过time时间命令测试每一轮的时间就会减小。但是从训练的log时间来看,并没有减少,是不是训练时候,多GPU之间还会进行交互之类的东西?
已邀请:

孙琳钧

赞同来自: dnnliu isYusiyuan

使用多GPU训练时,每个GPU都会运行一个caffe的实例。比如当使用n个GPU训练时,网络会有n个分身分别在各自的GPU上运行,n个网络中有一个“本尊”叫root_net,root_net除了负责正常的前传反传还负责更新参数,而其它网络只负责前传和反传。大致流程是这样的,n个网络共享一个数据层,数据层读取n个batch的数据分别送给n个网络进行前传和反传,然后使用归约的方法将n个网络计算的梯度累加在root_net上,取平均后由root_net更新网络参数,接着同步n个网络的参数,数据层再取n个batch的数据进行下一次迭代。在多个GPU之间实现归约和同步会很耗时,尤其是当两个GPU不在一个multiGpuBoardGroup上的情况,所以整体的时间并没有减少太多。

dnnliu

赞同来自:

那有办法改善吗?照理说多GPU,应该是要改善时间的

wqvbjhc - 80后IT男

赞同来自:

用多GPU,但速度没降,确实是硬伤。

要回复问题请先登录注册