blog.dopana

Back

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)
量化仅 FP16FP8、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 / NVSwitchAllReduce 提速 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 兼容服务器
bash
trtllm-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)
python
pip install tensorrt-llm
# 或拉取带预编译 wheel 的 NGC 容器
bash

TRT-LLM vs vLLM#

维度TRT-LLMvLLM
峰值吞吐高 2-3 倍基准
冷启动约 28 分钟引擎编译约 60 秒
硬件仅 NVIDIA CUDA多平台(ROCm、XPU、TPU、CPU)
OpenAI API经 Triton 后端原生
量化FP4/FP8/INT4FP8/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 硬件上的峰值性能比可移植性更重要时,选它。

参考资料#