对比DP8+EP与TP8在DS MoE部署性能

文章目录

    • 一、对比
    • [二、DP8+EP 通常情况下更容易获得高吞吐,主要有三个原因:](#二、DP8+EP 通常情况下更容易获得高吞吐,主要有三个原因:)
      • [2.1 第一,Attention 不再需要 TP 通信。](#2.1 第一,Attention 不再需要 TP 通信。)
      • [2.2 第二,专家矩阵保持完整,可能更适合高效计算。](#2.2 第二,专家矩阵保持完整,可能更适合高效计算。)
      • [2.3 第三,对DS系列模型,DP Attention 有明显的 KV Cache 优势。](#2.3 第三,对DS系列模型,DP Attention 有明显的 KV Cache 优势。)
    • 三、举例说明:
    • 四、部署配置
    • 五、实验结果对比及总结

一、对比

MoE的Transformer层执行路径如下:

上图是以DP8+EP部署模型的执行流程。一个token进入本地Attention层(完整att)计算后通过路由发送给激活专家所在卡(注意,未必在本地了)做GEMM,最后专家模块返回结果合并输出进入下一层。

如果改为TP8部署,一个token进入本地Attention层(1/8att)计算后做AllReduce然后发送给每张卡中的激活专家部分(每张卡都会发送,但不是发送给卡上的所有专家)做GEMM,然后AllReduce进入下一层。

DP8+EP TP8
Attention 无需 AllReduce,计算量更大,KV 负担更大 需要 AllReduce,计算量小,KV 负担更小
Dispatch All-to-All Scatter
Expert GEMM 计算量更大 计算量更小
Combine All-to-All AllReduce

二、DP8+EP 通常情况下更容易获得高吞吐,主要有三个原因:

2.1 第一,Attention 不再需要 TP 通信。

每张卡独立完成自己那部分请求的 Attention,省掉这一部分的跨卡归约。当每步计算很短、通信启动开销占比较高时,这个收益可能很明显。但专家层仍然需要通信,所以不能进一步推导成DP8+EP的总通信一定更少。还要比较 token 分发、回收的代价。

2.2 第二,专家矩阵保持完整,可能更适合高效计算。

  • TP8 会把相应维度切到1/8,每张卡处理很多专家的小切片。
  • EP8 保留完整的专家模块,每张卡处理更少的完整专家。

对于某些模型和算子实现,TP 切分后的矩阵太窄,计算效率会下降;EP 的完整专家矩阵可能更适合 Grouped GEMM。

需要额外注意的是,固定全局 token 数B后,EP 不会凭空让每个专家收到的 token 数增加 8 倍。若专家数是E、每个 token 激活K个专家、路由均匀,则两种方案中每个专家平均处理的 token 数都约为:BK/E。区别在于这个专家的计算由 8 卡切分完成,还是由它所在的卡完整完成。平均计算量可以接近,实际效率却不同。

2.3 第三,对DS系列模型,DP Attention 有明显的 KV Cache 优势。

这是 DeepSeek 场景下很可能被重点考察的一点,需要深入了解DS系列模型(尤其是3以后)的架构。

无论是V3还是V4,均使用所有Query头共享单个 KV 头。

  • 服务来了8个请求
  • 每个请求在某一层transformer中的KV cache显存占用量是1B
  • 负载绝对均衡
  • 不存在热点专家现象

对于DP8+EP部署方式来说,每张卡上的KV cache显存占用量是1B(假设负载均衡了,所以每个DP分的一个请求);但对于TP8部署方式来说,每张卡上的KV cache显存占用量是8B,因为每个请求都要经过每张卡上的attention做计算。vLLM 官方将这一点明确列为 DeepSeek 采用 DP+EP 的动机。

三、举例说明:

假设存在一个并发度为1的场景,每次集群都只服务一条请求。那DP8+EP的第三条优势将荡然无存,并且在第一条上,还会输给TP8。

一般来说all-to-all通信量是要小于AllReduce(这个要分析也是一篇硬核文章了),但如果出现专家路由明显不均衡,哪怕整体通信量小,也会表现成局部的通信瓶颈。而TP8是显然没有路由不均衡这一现象的。(在这里面试官将会高频发问,如何解决专家路由不均衡的问题,也是一篇硬核文章)

还有,如果出现负载不均衡的情况呢?假设一共来了80个请求,vllm原生引擎天然给每个DP分配10个请求。但是每个请求的token数却未必是一样的。请求粒度的负载均衡未必就代表token粒度的均衡。这进而会拖慢整个EP通信域。

四、部署配置

  • 单台服务器,910B3*8(单卡64GB)
  • vllm 0.25.1
  • 压测工具 evalscope
  • 输入8k 输出1k 定长

五、实验结果对比及总结

并发 成功/请求 DP1 + TP8 + EP (tok/s) DP8 + TP1 + EP (tok/s) DP8 相对变化
1 8/8 30.85 22.75 -26.25%
8 40/40 164.22 135.81 -17.30%
16 32/32 263.72 213.37 -19.09%
32 64/64 380.69 355.51 -6.62%
64 128/128 479.40 606.65 +26.54%
128 256/256 659.60 853.26 +29.4%

以下延迟表中,每格均为 DP1 → DP8。TTFT 和 E2E 单位秒,TPOT 单位毫秒。

并发 平均 TTFT 平均 TPOT 平均 E2E P95 TTFT P95 E2E
1 1.10 → 2.55 31.37 → 41.51 33.19 → 45.01 1.16 → 2.77 33.28 → 45.36
8 5.68 → 6.10 43.19 → 52.98 49.86 → 60.29 11.77 → 12.69 56.63 → 67.79
16 7.50 → 9.80 53.26 → 65.35 61.99 → 76.65 22.94 → 21.10 77.10 → 84.16
32 11.28 → 13.62 72.80 → 76.60 85.76 → 91.99 32.56 → 24.40 114.60 → 106.55
64 21.71 → 18.76 111.70 → 87.07 135.98 → 107.83 80.88 → 39.91 201.44 → 139.79
128 35.50 → 28.59 157.81 → 121.74 196.94 → 153.14 119.64 → 73.5 304.56 →217.3
  • 总结
    1)若关注本次同类负载的低并发延迟:DP1+TP8 结果更好

2)若关注并发 64/128 的整体吞吐和请求平均延迟,DP8+TP1 结果更好。

相关推荐
XLYcmy2 小时前
AI 时代,MOM(制造运营管理系统)该如何演进? 上
ai·llm·agent·模型·mom·harness·工业系统
可乐ea2 小时前
vLLM 支持无失真文本水印了:Gumbel-max 是怎么混进采样管线的
vllm·llm应用开发·采样策略·llm水印·gumbelmax
凉凉的知识库4 小时前
Agent 如何拥有长期记忆:六个主流项目的设计思路对比
开源·llm·agent
桃西西呀4 小时前
Laya 源码级原理拆解之二:序列打包与决策头
人工智能·llm·ai编程
桃西西呀7 小时前
Laya 源码级原理拆解之一:整体架构与运行入口
人工智能·llm·ai编程
桃西西呀8 小时前
你的 Agent 每判一次都要为大模型吐的字买单?-Laya模型帮你做判断
人工智能·llm·ai编程
AINative软件工程9 小时前
LLM 输出 Guardrail 工程实践:5 层防护栏让 AI 生成的内容不会炸掉生产
后端·llm·ai编程
武子康15 小时前
Agent 能接进 IDE,为什么还不能随意互换?
人工智能·llm·agent
武子康15 小时前
ESP32-S3 Mini 和 C3 Mini 怎么买?从 PSRAM、USB 到一张可核对的采购单
人工智能·llm·agent