TP还是PP:大模型多机部署并行策略压测复盘

文章配图

结论前置

三组双机压测跑完,选型就三句话:普通网络选 PP+TP,别硬跑全 TP;有 eRDMA/RDMA 选全 TP,decode 阶段碾压;只关心首 token 时延的短输出场景,PP 仍可单独评估。下面是数据和机理,直接可复用。

文章配图

为什么必须多机

现在的前沿模型权重已经到了单机放不下的量级——数 TB 的模型文件对上单机约 1.1TB 的显存上限,连权重都装不满,KV cache 更别提。多机部署绕不开两个决策:模型怎么切(TP 张量并行 / PP 流水线并行),机间走什么网络(TCP / RDMA)。这两组选择的性能差异,文档里几乎没有可比数字,只能自己压。

两种切法的通信账

文章配图

TP 把每层计算切到多卡,代价是每层一次跨机 allreduce,通信次数跟层数线性走;PP 按层切段,双机下 stage 之间每个 microbatch 只传一次激活,通信次数少,但吃流水线气泡。直觉上 TP 利用率高应该快——前提是网络跟得上。跨机通信量才是真正的胜负手。

第一组:普通网络,PP+TP 胜

qwen3-32B 双机、3 并发、输入 3K 输出 1K:全 TP 的 TPOT 平均慢约 64%(31.0ms vs 50.9ms),TTFT 几乎翻倍。每一层一次的 allreduce 全砸在普通 TCP 上,GPU 大部分时间在等网。没有高性能网络,跨机别跑全 TP。

文章配图

第二组:eRDMA 把 TPOT 砍掉 44%

DeepSeek V4 Pro 双机 H20×8、1 并发,同配置只切网络:TPOT 从 95.1ms 降到 52.9ms,端到端时延降 43%。有意思的是 TTFT 只改善 15%——prefill 是计算密集,通信占比小;decode 每步都要跨机同步,是通信密集,eRDMA 正好打在后者。

第三组:eRDMA 下 TP 全面反超

文章配图

GLM-5.2-FP8 双机、3 并发、输入 8K 输出 2K:TP16 的 TPOT 22.4ms,PP2+TP8 是 188.3ms,差 8 倍多;端到端时延 49.1s 对 377.8s。机理一句话:TTFT 看通信体积(prefill 的激活传输百 MB 级,TP 每层两次 allreduce,78 层累计流量比 PP 高两个量级),TPOT 看显存带宽(decode 每步只有几十 KB 通信,eRDMA 微秒级延迟下 TP 逐层代价可忽略,权重切 16 份后每卡读的权重还减半)。

一个意外数字:投机解码接受率 TP 69.2%、PP 只有 0.7%——EAGLE 的 draft-verify 循环在 PP 切分下基本跑不起来,decode 近乎裸跑。而且 PP 这条路开不了 fp8 KV cache、hierarchical cache 等一串优化,生态兼容性本身就是选型成本。

编排与参数,两块关键配置

文章配图

多机用 LeaderWorkerSet 组织,size: 2 双机,RecreateGroupOnPodRestart 保证整组重建。eRDMA 要在容器里真正生效,四个环境变量加一个资源申请缺一不可:

env:
  - name: NCCL_SOCKET_IFNAME
    value: "eth0"
  - name: NCCL_IB_HCA
    value: "erdma"        # 指定走 eRDMA 设备
  - name: NCCL_IB_DISABLE
    value: "0"
  - name: NCCL_IB_GID_INDEX
    value: "1"
resources:
  limits:
    aliyun/erdma: '1'     # 不申请网卡资源,env 全白配

启动参数的差异集中在几行:TP 版 --tp-size 16 --attention-backend dsa --kv-cache-dtype fp8_e4m3 --speculative-algorithm EAGLE;PP 版 --tp-size 8 --pp-size 2 --attention-backend flashinfer --disable-overlap-schedule --disable-cuda-graph。TB 级权重用对象存储直挂加载,别先拷进 emptyDir。

文章配图

上线前怎么验证 eRDMA 真的在工作

配置写了不等于生效,压测前先做两步检查:

ibstat                     # 确认 eRDMA 设备 Active,端口速率正常
ls /dev/infiniband/uverbs* # 容器内能看到 RDMA 设备文件(没挂载就是白配)

文章配图

再跑流量基准:all_reduce_perf 这类 NCCL 测试跑一把 allreduce 带宽,和普通 TCP 网络的数字对比,量级差异立现。确认通了再跑业务压测:

sglang.bench_serving --backend sglang --dataset-name random \
  --random-input-len 3072 --random-output-len 1024 --num-prompts 3

判定看四个数:TTFT、TPOT、端到端时延、解码吞吐,跟基线配置对照。

边界,别外推

三组数据全部限定在双机 16 卡、低并发(1~3)、固定输入输出长度。更高并发下 TP 的 allreduce 开销会不会重新抬头、4 机以上 PP 会不会翻盘,没有数据支撑。没有 eRDMA 的集群,第三组结论直接不成立,回到第一组的 PP 默认。压测结论带条件用,才是压测的意义。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?