目录
一、分布式计算
1、数据并行运算
2、与GPU性能上的不同,少在机器上做通讯
3、减少跨机器的通讯,例子——计算一个小批量
- 每个计算服务器读取小批量中的一块
- 进一步将数据切分到每个GPU上
- 每个worker从参数服务器那里获取模型参数
- 复制到每个GPU上
- 每个GPU计算梯度
- 将所有GPU上的梯度求和
- 梯度传回服务器
- 每个服务器对梯度求和,并更新参数
4、每个worker都是同步计算一个批量,同步SGD
5、在同步SGD的情况下,计算和通信没有办法重叠的。异步SGD才允许计算和通信并行
增加batch_size影响的是 t1 ,t1会变大,t2不变,所以我们算一个足够大的batch_size,使得 t1 远远大于 t2
n是GPU数量6
6、因为是batch个样本算平均梯度,一个epoch的样本数固定,所以batch越大更新越慢
7、
8、
二、问题
- 弹幕记笔记:小批量里数据多样性强,性能好
- 在forward的时候是不能并行的,在backward的时候才开始并行