返回课堂

一个大矩阵,也能由多卡合算

E05/b0 · 切矩阵,并组合

张量并行 TP:按输入维度切一个矩阵;本例采用行向量记法
x₀ · W₀
GPU 0
+
x₁ · W₁
GPU 1
xW = x₀W₀ + x₁W₁

两个部分结果仍需通信并相加,才能得到完整输出。

Megatron 组织大模型并行;NCCL 提供 GPU 集合通信。切分方案不同,所需通信也不同。

切矩阵,并组合

刚才四张卡都执行同一个层,现在我们把这个层本身切开。看这次矩阵乘法,输入沿一个维度拆成两段,权重也沿对应位置拆开。左卡算第一段的贡献,右卡算第二段,最后必须把两个结果加起来,才是原来完整的输出。这叫张量并行,简称 TP。省下的是每卡需要承载的那部分层内计算和参数,但相加需要通信。不同维度的切法可能要拼接、求和或者让下一层接续分片,不能只画两块矩阵就认为计算已经结束。因此这幅图的最后一个加号,和前面两个局部乘法一样,都是完整算法的一部分。

教师备课:指图与模拟问答

指图与推进 · 不朗读教师指向当前高亮对象,随后推进。

补充推导、边界与来源

张量并行(TP)在一个层内部切分矩阵及其计算。例如把 x 按输入维度拆为 x₀、x₁,把 W 按相应行拆为 W₀、W₁,则 xW=x₀W₀+x₁W₁。两张卡各算一个局部贡献,结果要相加,不是随意拼接。若按输出维度拆矩阵,则得到不同输出分段,所需通信位置也不同。

TP 可让一个很大的层由多卡共同承担,但更频繁的设备间通信会进入每层关键路径;实际效率取决于矩阵规模、设备计算能力与互联。Megatron 提供大模型并行组织方法,NCCL 提供集合通信操作,两者的职责不同。

本页证据与条件

A21;A23

进入主题正文