DP TP EP PP各种parallel介绍
本质是copy每一份模型,所以一般而言要求模型吃显存不过大,同时显卡本身尽量大显存,保证每张显卡可以复制一份模型。PP 是把 模型的层级顺序切分成多个阶段(stage),每个阶段放到不同 GPU 上,然后用 流水线方式并行处理多个 batch。缺点:每个 stage 依赖前一 stage 输出,pipeline fill/drain 会有延迟,batch 小时效率低。模型包含多个 Expert 子
1、DP — Data Parallelism(数据并行)
本质是copy每一份模型,所以一般而言要求模型吃显存不过大,同时显卡本身尽量大显存,保证每张显卡可以复制一份模型。每张 GPU 上放完整模型副本,同时不同 GPU 处理不同 batch 数据,最后做梯度同步(AllReduce)
假设总 batch=1024,8 张卡 DP,每卡 batch=128,每张卡算:
gi=∇Lig_i = \nabla L_igi=∇Li
最后:
g=18∑gig = \frac{1}{8} \sum g_ig=81∑gi
2、TP — Tensor Parallelism(张量并行)
也叫做模型内并行。核心思想是把一个层的权重矩阵拆分到多个 GPU。例如:一个线性层:
Y=XW
W 是 8192×8192的矩阵
2 卡 TP:
GPU0: W0 (8192×4096)
GPU1: W1 (8192×4096)
每卡算一半结果,然后 AllGather。
适用场景:1、单卡放不下模型;2、Dense 模型(如 70B)
通信方式:AllReduce / AllGather
优点:1、能拆超大 Dense 模型;2、每层可扩展
缺点:1、通信频繁;2、扩展性受限(通常 8~16 卡)
3、EP — Expert Parallelism(专家并行)
只用于 MoE 模型。例如:DeepSeek 671B 是 MoE。
核心思想:
模型包含多个 Expert 子网络,每个 token 只走 Top-k Expert,GPU 分配专家,而不是复制整个模型。举例来说:64 个专家,8 张卡,每卡 8 个专家。输入 token 经 router 分发。
通信方式:AllToAll(非常重)
优点:1、参数规模可达数百 B;2、计算量远小于总参数量
缺点:通信复杂,负载不均衡
- 额外介绍一下EP和TP中常见的通信负担:AllToAll(A2A)是一种多 GPU 之间的全互通通信模式,在大模型并行中尤其常见。它的作用是:假设有 N 张 GPU,每张 GPU 上存了不同的张量分片(chunk)。AllToAll 会把每张 GPU 上的张量按照分片 发送到每一张 GPU,同时接收其他 GPU 对应分片。直观理解:每张 GPU 都把自己的一份数据发给每一张 GPU,同时收到其他 GPU 的对应数据。
举例:假设 4 张 GPU,每张有 [A1,A2,A3,A4] 4 个分片。执行 AllToAll 后,每张 GPU 会只保留 [A1_from_GPU1, A2_from_GPU2, A3_from_GPU3, A4_from_GPU4]。在 MoE 或 Tensor Parallel (TP) 中,这通常用来交换不同专家的激活或者梯度,保证每个 GPU 拿到自己需要的那部分计算。
特点:通信量大,延迟比简单广播高。对吞吐率影响显著:AllToAll 做得好,GPU 利用率高;做不好,吞吐可能受限于网络带宽。
4、PP — Pipeline Parallelism(流水线并行)
核心思想
按层切分模型,例如 48 层:
GPU0: 1–12
GPU1: 13–24
GPU2: 25–36
GPU3: 37–48
前向像流水线一样流动。
优点:1、适合深层模型;2、显存压力低
缺点:有 pipeline bubble,调度复杂
5、TP和PP的比较:
-
TP 是把同一层的权重矩阵或张量分块分配到多个 GPU,然后并行计算。核心目标:减少单张 GPU 的显存压力,提高吞吐率。
特点:
粒度:层内(Layer-level)并行。
通信:需要 AllReduce/AllGather 对分布在多卡的数据做汇总。
优点:显存占用低,可以训练/推理大模型。
缺点:每个前向/后向步骤都需要跨 GPU 通信,通信延迟可能限制吞吐。
假设某全连接层权重矩阵 W 是 [4096, 4096],4 张 GPU:TP 会把 W 切成 4 块 [4096, 1024] 分到 4 张 GPU。每张 GPU 只计算对应输入片段,然后通信汇总结果。 -
PP(Pipeline Parallel,流水线并行)
概念:
PP 是把 模型的层级顺序切分成多个阶段(stage),每个阶段放到不同 GPU 上,然后用 流水线方式并行处理多个 batch。
核心目标:利用多 GPU 串行层的计算能力,提高吞吐率。
特点:
粒度:层间(Layer-level),每个 stage 可能包含多层。
通信:只需在 stage 之间传递激活值(Activation),比 TP 少。
优点:适合非常深的模型,可以充分利用多 GPU。
缺点:每个 stage 依赖前一stage输出,pipeline有延迟,batch 小时效率低。 -
总结:
TP = 水平切分单层矩阵 → 减显存 → 增加跨 GPU 通信
PP = 垂直切分多层网络 → 减显存瓶颈 → 流水线提高吞吐
实际部署中,大型模型通常 TP + PP 混合使用,既减少显存占用,又提升吞吐率。
更多推荐

所有评论(0)