pytorch 多GPU并行计算

并行计算分为两类:
https://baijiahao.baidu.com/s?id=1632494497660364845&wfr=spider&for=pc

  • 模型并行:将模型的多个层放到不同的机器上,
  • 数据并行(常用):将数据分发的不同机器上

pytorch 多GPU并行计算

基于pytorch的并行计算

1.单机多gpu :https://www.jianshu.com/p/b366cad90a6c

pytorch实现单机多卡十分容易,其基本原理就是:加入我们一次性读入一个batch的数据, 其大小为[16, 10, 5],我们有四张卡可以使用。那么计算过程遵循以下步骤:

  1. 假设我们有4个GPU可以用,pytorch先把模型同步放到4个GPU中。
  2. 那么首先将数据分为4份,按照次序放置到四个GPU的模型中,每一份大小为[4, 10, 5];
  3. 每个GPU分别进行前项计算过程;
  4. 前向过程计算完后,pytorch再从四个GPU中收集计算后的结果假设[4, 10, 5],然后再按照次序将其拼接起来[16, 10, 5],计算loss。
    整个过程其实就是 同步模型参数→分别前向计算→计算损失→梯度反传

2.多机多GPU: