1 数据并行
- 最常见的并行化手段
- 主要是把数据分成多个块,然后每个节点就可以在本地独立的跑各自的数据任务,最后再和其他节点通信,进而汇总最后的结果
- 好处就是计算效率高,每个节点可以独自计算自己的任务且这种方法易于实现
- 缺点就是内存要求较高,因为它需要把模型在每个节点都完整的copy一份。
2 张量并行
- 将大型矩阵乘法分解为较小的子矩阵计算,然后使用多个GPU同时执行这些计算
- ——>可以通过异步性和减少节点之间的通信开销来加快训练时间
- 好处是它具有提高了内存效率
- 缺点是它在每次前向和反向传播中引入了额外的通信,因此需要较高通信带宽
3 模型并行
- 将模型分割到多个GPU上,并对每个模型使用相同的数据
- 每个GPU处理的是模型的一部分,而不是数据的一部分