一个大矩阵,也能由多卡合算
E05/b0 · 切矩阵,并组合
张量并行 TP:按输入维度切一个矩阵;本例采用行向量记法
x₀ · W₀
GPU 0
+GPU 0
x₁ · W₁
GPU 1
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