动手学深度学习 | 单机多卡并行 | 32

单机多卡并行

这里图片是4张980,但是因为GPU靠的太近了,一个月后就烧了一块GPU。这是沐神第一次装多GPU犯的错误。

一般都是进行数据并行。

什么使用使用模型并行呢?就batch_size=1的时候,一个GPU都不能计算的话,那么就会考虑进行模型并行,将模型分割到多个GPU来做,比如transformer的模型直接有100个G。

QA

  1. 我在4块GPU训练,后来我有两块更大显存的GPU,那我什么都不变,换成2块显存的GPU训练,会有什么影响吗?

你可以每次分配多点数据给性能更好的GPU,一般框架也是允许这个操作的。

  1. 小批量分到多GPU计算后,模型结果怎么合到一块?

一般是说把梯度给加起来,梯度加起来之后就会得到完整梯度,在模型更新的时候,其实模型就只有一份,模型基本可以把保证是一致的。

  1. 数据并行的时候,不同gpu也是拷贝了同一个模型吗?那是不是数据并行才是真正的并行,模型并行只是模型切块,本质上还是串行。可以这么理解吗?

数据并行确实是在每张卡中拷贝同一个模型。

模型并行实际上也是并行,只不过并行的程度会低一些。

posted @ 2021-10-03 15:00  RowryCho  阅读(295)  评论(0编辑  收藏  举报