TensorRT-LLM — NVIDIA 高性能大模型推理库
NVIDIA 开源的大模型与视觉生成推理库——自定义算子、FP8/FP4 量化、投机解码。B200 上超 4 万 token/s。
TensorRT-LLM(TRT-LLM)是 NVIDIA 针对 NVIDIA GPU 上大语言模型(LLM)和视觉生成(Visual Gen)模型的开源推理库。它在易用的 Python API 背后提供业界领先的优化——针对 attention/GEMM/MoE 的自定义算子,以及 prefill-decode 分离、投机解码等算法级运行时优化。Apache 2.0 许可,GitHub 约 14.3k 星,2024 年 3 月起在 GitHub 完全开源。当前版本:release 1.3(Python 3.10–3.12、CUDA 13.2、PyTorch 2.11)。
它解决什么问题?#
大模型推理受限于内存带宽(权重 + KV cache)和算力。普通框架把大部分性能都留在了桌面上:
| 瓶颈 | 朴素做法 | TensorRT-LLM |
|---|---|---|
| attention | 通用算子 | FlashAttention 式融合、XQA 算子(Llama-70B 提速 2.4x) |
| 量化 | 仅 FP16 | FP8、FP4、INT8、INT4(AWQ) |
| 批处理 | 静态 | In-flight / continuous batching、分页 KV cache |
| 解码 | 仅 greedy | 投机解码、MTP |
| MoE | 稠密回退 | Wide Expert Parallelism |
架构#
构建在 PyTorch 之上,而不是 C++ 黑盒:
- 高层 Python LLM API —— 几行代码即可定义模型、构建引擎、运行生成
- 面向 attention、GEMM、MoE 的自定义算子
- Python + C++ 运行时编排执行
- 模块化 —— 模型用原生 PyTorch 编写,易于扩展
- 从单 GPU 扩展到多 GPU / 多节点(TP、PP、CP、EP)
并与更广泛的生态集成:NVIDIA Dynamo(数据中心级分布式服务)和 Triton Inference Server。
核心优化#
| 优化 | 效果 |
|---|---|
| 自定义融合算子 | attention、GEMM、MoE 路由 |
| 分页 KV cache + prefix 复用 | 减少内存浪费,共享系统提示词 |
| In-flight batching | 提高 GPU 利用率 |
| FP8 / FP4 量化 | DeepSeek-R1-FP4,约 2 倍内存节省 |
| 投机解码(EAGLE 式、N-gram、MTP) | Llama 3.3 70B:吞吐提升 3 倍 |
| Prefill/Decode 分离 | 两阶段独立扩展 |
| Wide Expert Parallelism(EP) | MoE 扩展到多 GPU |
| Multiblock attention | 长序列吞吐提升 3 倍以上(H200) |
| MultiShot / NVSwitch | AllReduce 提速 3 倍 |
| CUDA Graph 批处理 | 降低算子启动开销 |
| LoRA | 多适配器同时服务 |
性能数据#
- Llama 4 —— B200 上超过 40,000 token/s
- Llama 4 Maverick 单用户超 1,000 token/s(Blackwell)
- H200 —— Llama 2 13B 约 12,000 tok/s
- DeepSeek-R1:Blackwell 上创世界纪录的推理(FP4)
- XQA 算子:相同延迟预算下 Llama-70B 吞吐提升 2.4 倍
- Falcon-180B INT4 AWQ 单卡 H200 运行
视觉生成#
2025 年 4 月起 TRT-LLM 也覆盖视觉生成——图像和视频扩散模型。NVIDIA 已用 TRT-LLM 将视频生成扩展到 NVL72 机架(72 GPU)。
服务与部署#
trtllm-serve llama-3.1-8b-instruct-fp8 # OpenAI 兼容服务器bashtrtllm-bench latency --model <模型目录> # 引擎基准测试bash- 生产服务用 Triton Inference Server 后端
- 与 NVIDIA Dynamo、NIM 协同
- 对新开源权重模型 Day-0 支持(GPT-OSS、EXAONE 4.0、DeepSeek)
快速开始#
from tensorrt_llm import LLM, SamplingParams
llm = LLM(model="nvidia/Llama-3.1-8B-Instruct-FP8")
params = SamplingParams(max_tokens=128, temperature=0.8)
outputs = llm.generate(["介绍一下 TensorRT-LLM。"], params)
for out in outputs:
print(out.outputs[0].text)pythonpip install tensorrt-llm
# 或拉取带预编译 wheel 的 NGC 容器bashTRT-LLM vs vLLM#
| 维度 | TRT-LLM | vLLM |
|---|---|---|
| 峰值吞吐 | 高 2-3 倍 | 基准 |
| 冷启动 | 约 28 分钟引擎编译 | 约 60 秒 |
| 硬件 | 仅 NVIDIA CUDA | 多平台(ROCm、XPU、TPU、CPU) |
| OpenAI API | 经 Triton 后端 | 原生 |
| 量化 | FP4/FP8/INT4 | FP8/FP4/INT4 |
| PagedAttention | 部分 | 原生 |
2026 年共识:通用服务与可移植性选 vLLM;在 NVIDIA 硬件上追求绝对峰值性能且能接受编译时间,选 TRT-LLM。
注意事项#
- 仅支持 NVIDIA GPU
- 引擎编译慢(数分钟),且引擎与 GPU 架构绑定
- 遥测默认开启——可用
TRTLLM_NO_USAGE_STATS=1或--no-telemetry关闭 - API 有 3 个月弃用过渡期策略
结论#
TRT-LLM 是 NVIDIA 通往最快大模型与视觉生成推理的路径。数据会说话:B200 上超 4 万 token/s。代价是 CUDA 锁定和引擎编译时间。当 NVIDIA 硬件上的峰值性能比可移植性更重要时,选它。