TensorRT-LLM驱动DeepSeek性能极限-协同腾讯联合优化实践

Raccoon Liu : 腾讯大模型推理负责人
朱文熙 : 腾讯开悟平台研发负责人
王猛 : NVIDIA 高级加速计算专家

议程 (Agenda)

引言 (Introduction)

DeepSeek-R1: 中国自主研发的突破性AI大模型

Page 4
Page 4

市场反响与应用

DS(DeepSeek)证明了基础模型创新对应用有极强的拉动作用。

Page 5
Page 5

需求与优化策略

Page 6
Page 6

性能优化目标与成果

Page 7
Page 7

PD (Prefill-Decode) Serving

PD分离:P&D各自选取最优部署方案

PD分离的核心思想是将Prefill(提示处理)和Decode(生成)两个阶段分开部署和优化。

Page 9
Page 9

PD系统本身不产生性能提升,精细化的分阶段优化方案是性能提升源泉。

多样的并行方式

PD架构支持多种并行方式,以应对不同阶段的瓶颈。

Page 10
Page 10

多维混合并行策略:TP+ADP+EP

针对Prefill和Decode阶段的不同瓶颈,采用不同的混合并行策略。

Page 11
Page 11

计算通信Overlap: 异步请求级别Overlap

Page 12
Page 12

计算通信Overlap: Layerwise传输计算Overlap

Page 13
Page 13

mPnD: 最大化Prefill集群吞吐

Page 14
Page 14

mPnD: 最大化Decode集群吞吐

Page 15
Page 15

PD mPnD:最大化整个服务系统

下图展示了mPnD系统的整体架构。系统分为接入层、推理协调器(Inference Coordinator)、预填充节点(Prefill Node)、解码节点(Decode Node)以及远程KV缓存中心(Remote KVCache Center)。请求流程、缓存传输和控制信息在各组件间流动。

Page 16
Page 16

性能表现
右图比较了PD与非PD(non-PD)的性能。结果显示,在有效ITL(in-flight tokens limit)区间,PD的吞吐明显更优,大幅提升了Goodput。在20~25 tokens/s的用户请求区间,PD有效提升了30~40%的Goodput。


PD Large EP: 理想很丰满,现实略显骨感

如下表所示,从EP=8(并发128)增加到EP=16(并发256),虽然MoE部分的耗时从37.86ms下降到36.79ms,但整体(All)耗时从71.31ms显著增加到95.64ms。

Page 17
Page 17

结论与原因分析
- 结论:MoE-Gemm部分的耗时下降符合预期。
- 原因:虽然显存带宽压力降低,但当矩阵维度M小于32时,耗时基本不变。右侧表格详细列出了不同参数下gemm1和gemm2的性能指标,验证了这一判断。

解决方案:DeepEP + EPLB (Large-EP哼哈二将)
下图展示了结合DeepEP和EPLB的Transformer Layer架构,其中MoE Layer采用320路专家并行。通过采用DeepEP的Dispatch+Combine通信模式,可以实现注重处理时延、小消息友好。


PD Large-EP哼将: DeepEP

本页介绍了DeepEP在TRMT GPU通信优化基座上的应用,旨在提升大规模专家并行(Large-EP)场景下的通信效率。

Page 18
Page 18

PD Large-EP哈将: EPLB

本页介绍了EPLB(Expert Parallelism Load Balancer),一个用于解决MoE中专家负载不均问题的负载均衡器。

下图展示了EPLB的工作原理,负载均衡器(Load Balancer)将不同的专家(Expert)动态分配到各个GPU上,以实现负载均衡。右侧的两个图表直观地对比了负载均衡前后的效果,均衡后各Layer的负载更加均匀。

Page 19
Page 19

PD Summary

本页对PD(PagedAttention with Decentralization) serving方案进行了总结。


IFB (In-flight-Batching)

IFB Introduction

本节介绍In-flight-Batching (IFB) 技术。

下图展示了IFB中的Prefill阶段和Decode阶段。

Page 22
Page 22

IFB DeepGEMM

DeepSeek-R1架构与核心算子

模型的核心是Transformer Block,其中包含了Feed-Forward Network和Multi-Head Latent Attention (MLA)。下图展示了其详细结构,包括Router和Shared Expert的机制。

Page 23
Page 23

参考资料: https://arxiv.org/pdf/2405.04434


优化点与性能

本页详细介绍了DeepGemm相对于TRT-LLM旧版实现的优化点。

右侧图表展示了DeepGemm在不同配置下的性能表现。

Page 24
Page 24

IFB DeepGEMM-SwapAB

下图展示了SwapAB的原理和性能测试结果。

Page 25
Page 25

IFB Flash-MLA

下图展示了不同注意力机制的对比以及Flash-MLA的流水线工作示意图。

Page 26
Page 26

参考资料: https://arxiv.org/pdf/2405.04434
参考资料: https://github.com/deepseek-ai/FlashMLA

FP8 Quantization

下表展示了不同量化策略在多个基准测试上的表现,右侧图表为性能对比。

Page 27
Page 27

Overhead Optimization

下图展示了优化前后的流程对比以及端到端加速效果。

Page 28
Page 28

IFB Flash-MHA

下图对比了A100和H100架构下,MHA的数据传输方式,并展示了Hopper-style Flash-MHA的端到端性能提升。

Page 29
Page 29

IFB Flash-MHA: sparse

Page 30
Page 30

参考论文: Minference 1.0: Accelerating Pre-filling for Long-Context LLMs via Dynamic Sparse Attention (NeurIPS'24 spotlight, FoMo @ ICML'24)


IFB W4A8

W4A8 量化

W4A8 vs FP8

Page 31 - Hopper单机八卡部署分析及MoE GEMM延迟图
Page 31 - Hopper单机八卡部署分析及MoE GEMM延迟图

W4A8内核高效实现

性能结果


量化改进与结果

Page 32 - LLM Benchmark评估及端到端吞吐图
Page 32 - LLM Benchmark评估及端到端吞吐图

Kernel 融合

Page 33 - Pre-Quant融合前后端到端吞吐变化图
Page 33 - Pre-Quant融合前后端到端吞吐变化图

IFB MTP (Multi-Token Prediction)

MTP 介绍

Page 34 - MTP 架构图
Page 34 - MTP 架构图

参考资料:DeepSeek-V3 Technical Report https://arxiv.org/pdf/2412.19437

MTP 实现

验证与接收流程

示例

Page 35 - MTP 验证与接收流程示例
Page 35 - MTP 验证与接收流程示例

MTP 部署

Page 36 - Relaxed acceptance 对精度的影响
Page 36 - Relaxed acceptance 对精度的影响

参考资料:https://github.com/NVIDIA/TensorRT-LLM/tree/main/examples/models/core/deepseek_v3#multi-token-prediction-mtp


IFB CUDA Graph

解决方案:使用CUDA Graph捕获kernel launch过程,并在运行时replay。

Page 37 - CUDA Graph开启前后性能对比
Page 37 - CUDA Graph开启前后性能对比

IFB Overlap Scheduler

Page 38 - Overlap Scheduler 工作流程图
Page 38 - Overlap Scheduler 工作流程图

The credit for the overlap scheduler idea belong to the SGLang team: https://lmsys.org/blog/2024-12-04-sglang-v0-4/


IFB Runtime optimizations

Page 39 - 使用 Pinned Memory 前后性能对比
Page 39 - 使用 Pinned Memory 前后性能对比

A guide on good usage of non_blocking and pin_memory() in PyTorch


IFB Memory optimizations


IFB Misc kernel optimizations


IFB Summary


总结 (Summary)

大模型Infra任重道远