分布式训练

一、分布式计算

        跟多GPU不同是:数据不是从主存拿的,是在分布式文件系统拿的,有多个工作站,工作站中有多个GPU,通过网络读取数据到GPU中,GPU通过网络接收到来自参数服务器的参数进行运算计算梯度,最后将梯度传回服务器,服务器对梯度进行求和更新参数

二、GPU架构

本地多通讯指GPU与GPU之间速度快

三、计算小批量步骤

1、从每个计算服务器中读取小批量中的一块

2、进一步将数据切分到每个GPU上

3、每个worker从参数服务器中获取模型参数

4、复制到每个GPU中

5、每个GPU计算梯度

6、将所有GPU中的梯度求和

7、梯度传回服务器中

8、每个服务器对梯度求和并更新参数

四、同步SGD

五、性能

在分布式计算时要避免通信的开销大于计算的开销,一个简单的方法就是将batchsize增大,但数据集不大的时候用过于大的batchsize可能会使测试精度变低;

增大批量大小,会一定程度的提高系统性能;但随着批量大小的增加,收敛程度会变低,需要更多的epoch进行训练,所以需要权衡

1、使用一个大的数据集

2、需要更好的GPU-GPU和机器-机器带宽

3、高效的数据读取与预处理

4、模型需要更好的计算(FLOP)通讯(model size)比Inception>ResNet>AlexNet因为AlexNet一下子就算完了,很难做并行

5、使用足够大的批量大小来得到好的系统性能

6、使用高效的优化算法来对应大批量大小

六、总结

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值