单机多卡并行
- 一台机器可以安装多个GPU(1-16)
- 在训练和预测时,将一个小批量切分到多个GPU上达到加速的目的
- 常用切分方案:数据并行(重点);模型并行;通道并行(数据+模型并行)
数据并行 VS 模型并行
- 数据并行:将小批量分成n块,每个GPU拿到完整参数计算一小块数据的梯度,计算完成后,梯度加和得到小批量的梯度。 通常性能较好。
- 模型并行:将模型分成n块,每个GPU拿到一块模型计算它的前向和后向结果,模型分块,图100层,前50为一块,后50为一块。 通常用于模型打到单GPU放不下。
数据并行
过程:
- 1 读一个数据块
- 2 拿回参数
- 3 计算梯度
- 4 发出梯度
- 5 更新梯度
总结
1 当一个模型能用单卡计算时,通常使用数据并行拓展到多卡上
2 模型并行用在超大模型上,如Transformer、Bert