pytorch 多GPU并行计算
并行计算分为两类:
https://baijiahao.baidu.com/s?id=1632494497660364845&wfr=spider&for=pc
- 模型并行:将模型的多个层放到不同的机器上,
- 数据并行(常用):将数据分发的不同机器上
基于pytorch的并行计算
1.单机多gpu :https://www.jianshu.com/p/b366cad90a6c
pytorch实现单机多卡十分容易,其基本原理就是:加入我们一次性读入一个batch的数据, 其大小为[16, 10, 5],我们有四张卡可以使用。那么计算过程遵循以下步骤:
- 假设我们有4个GPU可以用,pytorch先把模型同步放到4个GPU中。
- 那么首先将数据分为4份,按照次序放置到四个GPU的模型中,每一份大小为[4, 10, 5];
- 每个GPU分别进行前项计算过程;
- 前向过程计算完后,pytorch再从四个GPU中收集计算后的结果假设[4, 10, 5],然后再按照次序将其拼接起来[16, 10, 5],计算loss。
整个过程其实就是 同步模型参数→分别前向计算→计算损失→梯度反传
2.多机多GPU: