当单卡显存无法容纳千亿模型
即便是目前顶级显卡拥有 80GB/192GB 显存,面对 70B(FP16 约需 140GB)或 405B(FP16 约需 810GB)旗舰模型,单卡部署也完全成为天方夜谭。必须将模型参数跨多张 GPU 协同切分。
在多卡推理中,**张量并行(Tensor Parallelism, TP)与流水线并行(Pipeline Parallelism, PP)**构成了分布式计算的基石。
Megatron-LM 矩阵切分数学原理
张量并行的核心是利用多层感知机(MLP)和多头注意力(MHA)的线性性质:
- 列并行 (Column Parallel Linear):将第一层权重矩阵 $W$ 按列切分成 $[W_1, W_2]$,各自在独立 GPU 上与输入 $X$ 做矩阵乘法 $Y_1 = X W_1, Y_2 = X W_2$,期间无需任何跨卡通信;
- 行并行 (Row Parallel Linear):将紧接着的第二层权重矩阵 $V$ 按行切分成 $[V_1; V_2]$,分别计算后通过 GPU 间高速 NVLink 进行一次 All-Reduce 累加求和: $$Z = Y_1 V_1 + Y_2 V_2 = X W V$$ 每一层 Transformer 仅需极少的 All-Reduce 通信即可保持数学上的精确等价!而在跨物理机时,则配合流水线并行(按 Transformer 层纵向切分)避免跨机高频通信成为瓶颈。
行列并行张量合并纯 JS 逻辑模拟
import assert from "node:assert/strict";
function allReduceSum(parts) {
return parts.reduce((a, b) => a + b, 0);
}
assert.equal(allReduceSum([10, 20]), 30);原始资料与溯源链接
感谢阅读本文
如果你觉得内容有帮助,欢迎点赞支持或分享给同行开发者。
0 次阅读0 人赞过