课程导入:学习目标、课程大纲与多GPU推理的核心挑战

1.1 为什么需要多GPU推理

大语言模型(LLM)的参数量已从数十亿跃升至数千亿甚至万亿级别。以Llama 3.1 405B为例,仅模型权重以FP16存储就需要约810GB显存,而单张NVIDIA H100的显存容量为80GB,A100为80GB,即便是最新的B200也只有192GB。单卡根本无法容纳如此规模的模型,更不用说推理过程中还需要为KV Cache、激活值、临时计算缓冲区预留显存空间。

多GPU推理并非简单的“多卡并行加速”,而是解决两个核心问题:显存容量不足与计算吞吐瓶颈。当模型无法放入单卡时,必须将模型切分到多张GPU上;当单卡算力成为瓶颈时,需要利用多卡并行提升每秒生成的Token数(Tokens/s)。TensorRT-LLM作为NVIDIA官方推出的推理框架,提供了系统化的多GPU并行方案,让开发者能够在多卡环境下高效部署大模型。

学习目标:完成本章学习后,你将能够——
  • 理解多GPU推理的三种并行范式(TP、PP、EP)及其适用场景
  • 掌握TensorRT-LLM中多GPU推理的架构组件与工作流程
  • 识别多GPU推理中的显存、通信、负载均衡三大瓶颈
  • 了解TensorRT-LLM在多卡环境下的部署配置方法

1.2 多GPU推理的核心挑战

多GPU推理的工程复杂度远高于单卡推理,其挑战集中在以下三个维度:

挑战维度具体表现影响
显存管理模型权重、KV Cache、激活值在多卡间的分配策略决定能否加载模型及最大支持上下文长度
通信开销AllReduce、AllGather等集合通信的延迟与带宽占用直接影响端到端推理延迟,通信可能成为瓶颈
负载均衡各GPU计算量不均导致部分卡空闲等待降低整体吞吐,浪费算力资源

以张量并行(Tensor Parallelism)为例,每完成一次Transformer层的计算,就需要在GPU之间同步中间结果。当使用8卡进行张量并行时,每个注意力头或每个线性层切片的计算结果都需要通过NVLink或InfiniBand进行AllReduce聚合。通信数据量随隐藏层维度线性增长,若隐藏层为8192且使用FP16,单次AllReduce的数据量就达到16KB×序列长度,高频通信会显著拖慢推理速度。

多GPU推理三大并行范式与挑战 大语言模型 张量并行 (TP) 层内切分 · 需AllReduce 流水线并行 (PP) 层间切分 · 点对点通信 专家并行 (EP) MoE路由 · All-to-All 核心通信原语 AllReduce(TP必需) 每层计算后同步梯度/中间结果 Send/Recv(PP必需) GPU i GPU i+1 仅相邻流水线阶段间传输激活 All-to-All(EP必需) 每个专家接收所有token的查询 三大核心挑战 显存墙 KV Cache随序列增长 需Paged KV Cache管理 权重切分粒度需权衡 通信墙 TP通信量随隐藏层增大 PP存在流水线气泡 需NVLink/IB低延迟网络 负载均衡墙 MoE专家热度不均 PP各阶段计算量不同 需动态调度与容量规划

1.3 TensorRT-LLM的多GPU架构概览

TensorRT-LLM将多GPU推理抽象为三个关键层次:模型并行策略层、执行调度层和通信后端层。模型并行策略层决定如何将模型切分到多卡;执行调度层负责管理KV Cache、请求批处理和推理循环;通信后端层则封装了NCCL(NVIDIA Collective Communications Library)调用,提供高效的集合通信原语。

在TensorRT-LLM中,多GPU推理的典型工作流程如下:

  1. 模型定义与切分:通过TensorParallelConfig和PipelineParallelConfig指定TP和PP的维度,框架自动完成权重切分。
  2. Engine构建:每个GPU rank独立构建Engine,但共享同一份模型配置和权重分片。
  3. 运行时初始化:创建NCCL通信组,建立各rank之间的连接。
  4. 推理循环:每步生成中,TP组内执行AllReduce同步,PP阶段间传递激活值,EP路由分发token到对应专家。
# TensorRT-LLM 多GPU配置示例(Python)
from tensorrt_llm import LLM, ModelConfig
from tensorrt_llm.parallel import ParallelConfig

parallel_config = ParallelConfig(
    tensor_parallel_size=4,   # 4路张量并行
    pipeline_parallel_size=2, # 2级流水线并行
    gpus_per_node=8
)

llm = LLM(
    model="meta-llama/Llama-3.1-405B-Instruct",
    model_config=ModelConfig(model_dtype="bfloat16"),
    parallel_config=parallel_config,
    max_batch_size=64,
    max_seq_len=8192
)

1.4 常见误区与设计复盘

误区一:TP维度越大越好
张量并行虽然能降低单卡显存占用,但通信开销随TP规模线性增长。当TP=8时,每层Transformer需要执行8次AllReduce,通信数据量约为激活大小的2×(TP-1)/TP倍。实测中,TP=8相比TP=4的吞吐提升往往不足30%,而通信延迟可能增加2倍以上。对于单节点8卡场景,TP=8尚可接受;跨节点时优先考虑PP或EP。
误区二:忽略KV Cache的显存规划
多GPU推理中,KV Cache的显存占用往往被低估。以Llama 3.1 405B为例,GQA(Grouped Query Attention)的KV Cache每token约需1.5KB(BF16),当batch=32、seq_len=8192时,仅KV Cache就需要384MB/卡。若未使用Paged KV Cache,显存碎片化会导致OOM。
设计复盘建议:在规划多GPU推理架构时,先测量模型的显存占用曲线(权重+激活+KV Cache),再根据单卡显存反推所需的TP和PP组合。优先使用TP满足显存需求,再用PP扩展规模,最后用EP优化MoE模型的专家利用率。通信拓扑上,尽量让TP组内的GPU位于同一NUMA节点或同一NVSwitch域内。

1.5 课程内容导览

本课程共30章,按“基础→进阶→实战→调优”四个阶段组织。前5章聚焦多GPU推理的基础概念与TensorRT-LLM环境搭建;第6-15章深入讲解TP、PP、EP的实现原理与配置方法;第16-25章覆盖KV Cache管理、动态批处理、量化推理等实战主题;最后5章通过端到端案例复盘多GPU推理系统的设计权衡与性能调优方法论。