关键要点
- 免费且采用Apache 2.0许可的开源软件,由NVIDIA在GitHub上发布
- 构建在NVIDIA的TensorRT深度学习推理SDK之上,并扩展了LLM专用优化
- 将模型预先编译为特定GPU的优化引擎——这是vLLM和llama.cpp都不需要的步骤
- 使用飞行中(连续)批处理和分页KV缓存,在并发流量下保持GPU利用率高企
- 支持包括FP8、INT8、INT4、AWQ和GPTQ在内的量化;最新格式需要当前代NVIDIA GPU
- 仅在NVIDIA GPU上运行——不支持CPU、AMD、Apple Silicon或其他厂商
- 通常通过NVIDIA Triton Inference Server部署,或打包在NVIDIA NIM微服务内
- 专为数据中心和企业生产环境服务而构建,而非单用户桌面聊天
📍 简单一句话
TensorRT-LLM是NVIDIA提供的免费Apache 2.0许可库,通过飞行中批处理、分页KV缓存和量化,将LLM编译为特定GPU的优化推理引擎,旨在NVIDIA GPU上实现最大吞吐量。
💬 简单来说
与仅仅加载模型并运行不同,TensorRT-LLM多了一个"构建"步骤:你需要为自己特定的NVIDIA GPU编译一次模型,得到的引擎在该GPU上运行速度比通用加载器更快——但它只能在NVIDIA硬件上运行,更换GPU代际或模型时需要重新构建。
📌注: 本文基于NVIDIA官方的TensorRT-LLM GitHub仓库和公开文档撰写,并非独立基准测试。文中未包含具体的吞吐量或延迟数据,因为这些数据并未针对本文进行独立测量,且会因GPU代际、模型、批处理组成和TensorRT-LLM版本而有很大差异。本文作为第三方对TensorRT-LLM进行客观描述,与NVIDIA没有关联,也未获得NVIDIA的认可。
TensorRT-LLM是什么?
TensorRT-LLM是NVIDIA发布的开源库,用于在NVIDIA GPU上优化和运行大语言模型推理。它构建在NVIDIA通用深度学习推理SDKTensorRT之上,增加了一层LLM专用的运行时功能,以及用于定义模型并将其构建为优化引擎的Python API。
TensorRT-LLM为何速度快?
TensorRT-LLM的性能方案结合了预先编译步骤和多项LLM专用的运行时优化,而不是依赖单一技术。
- 飞行中批处理(NVIDIA对连续批处理的称呼):新请求可以加入正在运行的批次,已完成的请求也可以离开该批次,而无需等待整个批次结束,从而在真实、不均匀的流量下保持GPU繁忙
- 分页KV缓存:注意力键值缓存以固定大小的块进行管理,而非为每个请求分配一大块连续内存,从而减少GPU内存浪费——这在概念上与vLLM的PagedAttention所推广的分页方式类似
- 自定义注意力和GEMM内核:针对LLM最常执行的操作手工调优的CUDA内核,在引擎构建步骤中为目标GPU编译并选择
- 预先引擎编译:模型图、所选精度和内核选择在服务开始前固定到单个优化的引擎文件中,而不是在加载时动态决定
- 推测性解码支持:NVIDIA记录了草稿模型等多种推测性解码技术,可在每一步生成多个候选token并并行验证
TensorRT-LLM需要什么硬件?
TensorRT-LLM仅在NVIDIA GPU上运行——不存在纯CPU、AMD、Intel或Apple Silicon的后端。在NVIDIA自身的GPU产品线中,可用的优化取决于GPU的架构代际。
Blackwell(例如B200)
- 详情:
- 截至撰写本文时最新支持的架构。根据NVIDIA的文档,除FP8外还增加了硬件加速的FP4(NVFP4)支持。
Hopper(例如H100、H200)
- 详情:
- 硬件级FP8支持;NVIDIA将其记录为TensorRT-LLM较新量化和注意力优化中最成熟的路径之一。
Ada Lovelace(例如L4、L40S)
- 详情:
- 受支持,在完整FP8工具支持不如Hopper/Blackwell广泛的情况下,通常使用包括SmoothQuant在内的INT8作为回退方案。
更早的架构(例如Ampere)
- 详情:
- 对于部分较早的NVIDIA数据中心GPU存在更广泛的兼容性,但最新的量化格式和内核优化针对的是当前代硬件——请查阅NVIDIA的发布说明以获取你计划使用版本的确切GPU与功能对应表。
如果你的目标是在笔记本电脑、Mac或任何非NVIDIA GPU上运行模型,TensorRT-LLM并非为此而设计的工具——llama.cpp以及基于它构建的工具(如Ollama和LM Studio)直接面向CPU和Apple Silicon硬件,更适合这种场景。
TensorRT-LLM支持哪些量化格式?
TensorRT-LLM支持以降低的数值精度运行模型,以减少内存占用并提升吞吐量,具体可用的格式取决于目标GPU代际。
FP8
- 详情:
- 在Hopper和Blackwell GPU上硬件加速的8位浮点;NVIDIA将其记录为在这些代际上通常最佳的精度/吞吐量权衡方案。
FP4(NVFP4)
- 详情:
- Blackwell专属的4位浮点格式,由NVIDIA针对Blackwell代GPU及当前TensorRT/CUDA工具链版本记录。
INT8 / INT4
- 详情:
- 包括SmoothQuant在内的整数量化路径,记录为在完整FP8工具支持较窄的GPU代际(如Ada)上的回退方案。
AWQ / GPTQ
- 详情:
- 社区确立的4位权重量化方法,TensorRT-LLM在其自身精度选项之外也支持这些格式。
本文未包含针对每种格式在每种GPU代际上独立测量的质量损失数据——这些数据会因模型架构和任务而异,因此在自己的提示词和硬件上比较几种格式的输出,是判断权衡取舍最可靠的方法。
TensorRT-LLM如何部署?
TensorRT-LLM可以直接通过其自身的Python/C++运行时运行,但在生产环境中最常通过围绕它构建的两个NVIDIA部署层之一来使用。
trtllm-serve:TensorRT-LLM自带的命令,可直接从已构建的引擎启动一个OpenAI兼容的API端点,无需单独的服务框架- NVIDIA Triton Inference Server:一个通用模型服务平台,带有TensorRT-LLM后端,增加了请求排队、多模型编排以及Kubernetes集成等生产级部署功能
- NVIDIA NIM:作为NVIDIA AI Enterprise订阅一部分销售的预构建容器化微服务,将TensorRT-LLM优化的后端打包在标准化API之后并提供厂商支持——关于NIM许可与支持模式的更深入介绍,参见企业推理服务器比较
如何构建并运行TensorRT-LLM引擎?
由于TensorRT-LLM密切依赖特定版本的CUDA和TensorRT工具链,它需要NVIDIA GPU、匹配的CUDA驱动,通常还需要NVIDIA官方的容器镜像以避免依赖版本不匹配。
- 1确认你拥有受支持的NVIDIA GPU(最新优化需要Hopper、Ada或Blackwell代际),并已安装当前版本的CUDA驱动。
- 2拉取NVIDIA官方的TensorRT-LLM容器镜像,或在匹配的CUDA环境中安装
tensorrt_llmPython包——容器化路径可以避免大多数依赖版本不匹配问题。 - 3使用TensorRT-LLM的Python API或该模型系列的示例转换脚本,转换或加载你的源模型检查点(例如来自Hugging Face)。
- 4使用
trtllm-build命令为你的特定GPU构建优化引擎,在构建时选择精度(FP16、FP8、INT4/INT8,或Blackwell上的FP4)和批处理配置。 - 5启动构建好的引擎,可以直接用
trtllm-serve启动OpenAI兼容端点,或将NVIDIA Triton Inference Server的TensorRT-LLM后端指向该引擎目录。 - 6在将生产流量路由到该端点之前,先向已部署的端点发送测试请求(
curl或任何OpenAI API兼容客户端),确认引擎能正确加载并生成结果。 - 7每当更换GPU代际、模型,或想要采用新的TensorRT-LLM版本时,重新执行构建步骤——为某一GPU代际构建的引擎并不保证能在另一代际上最优运行,甚至无法保证能运行。
是否需要为每个GPU重新构建引擎?
一般来说,为获得最佳效果需要如此——引擎是针对特定GPU架构代际的内核选择和优化编译的,因此切换到不同的GPU代际通常需要重新构建。
能否在TensorRT-LLM中使用预量化模型?
可以——除了在构建步骤中应用的自身FP8/INT8/INT4/FP4量化外,TensorRT-LLM还支持基于AWQ或GPTQ量化的模型构建引擎。
TensorRT-LLM与vLLM、llama.cpp相比如何?
TensorRT-LLM
- 详情:
- 仅限NVIDIA,Apache 2.0许可。每个GPU代际都需要预先编译步骤;以构建步骤和厂商锁定为代价,追求在特定NVIDIA硬件上可实现的最高吞吐量。
vLLM
- 详情:
- Apache 2.0许可,直接加载与Hugging Face Transformers兼容的模型,无需编译步骤。NVIDIA GPU是其主要目标,同时也记录了(较窄的)AMD、Intel和TPU后端。
llama.cpp
- 详情:
- MIT许可的C/C++引擎,通过GGUF模型格式在CPU、Apple Silicon以及广泛的GPU厂商上运行——三者中硬件灵活性最高,但并非为TensorRT-LLM和vLLM所面向的多GPU、高并发数据中心规模而构建。
本文未对这三种引擎进行独立基准比较,也不主张其中任何一种在所有情况下都更快——吞吐量在很大程度上取决于模型、GPU代际、批处理特性以及各引擎的版本。TensorRT-LLM真正的优势在于特别是在当前代NVIDIA硬件上的峰值性能,代价是编译步骤和仅限NVIDIA的支持;vLLM则以更简单的免编译工作流和更广泛(但仍以NVIDIA为主)的硬件覆盖,换取部分针对GPU的峰值优化;llama.cpp进一步牺牲峰值吞吐量,换取在另外两者都未覆盖的硬件(包括CPU和Mac)上运行的能力。
TensorRT-LLM与NVIDIA NIM、Triton是什么关系?
TensorRT-LLM、NVIDIA NIM和NVIDIA Triton Inference Server并非相互竞争的关系——它们是同一个NVIDIA推理技术栈中的不同层级,理解这一区别对规划部署很重要。
TensorRT-LLM
- 详情:
- 引擎和编译器:将模型转变为经过优化、针对特定GPU的推理引擎。免费且开源(Apache 2.0);由你自己运维。
关于TensorRT-LLM的文章(5篇)
- SGLang Explained: RadixAttention and Structured LLM Serving (2026)更新于 2026年9月6日
- TensorRT-LLM Explained: NVIDIA's GPU-Optimized Inference Engine (2026)更新于 2026年9月6日
- vLLM Explained: High-Throughput LLM Serving with PagedAttention (2026)更新于 2026年9月6日
- text-generation-webui in 2026: How Oobabooga's Local LLM UI Became "TextGen"更新于 2026年9月5日
- Enterprise LLM Inference Servers 2026: vLLM vs TGI vs NVIDIA NIM vs Ollama更新于 2026年9月2日
其他提及:
NVIDIA Triton Inference Server
- 详情:
- 一个通用的免费开源模型服务平台,带有TensorRT-LLM后端,围绕一个或多个引擎增加请求路由、多模型托管和生产编排功能。
NVIDIA NIM
- 详情:
- 一个作为NVIDIA AI Enterprise订阅一部分销售的付费预构建微服务层,将TensorRT-LLM优化的后端打包在标准化API之后并提供厂商支持——以自行配置的工作量,换取一个受支持、可直接部署的容器。
一种常见路径是:将模型构建成TensorRT-LLM引擎,然后通过Triton提供服务,实现自我管理的生产部署;或者,如果付费订阅和厂商支持对你的团队而言物有所值,则完全跳过构建步骤,直接使用预构建的NIM容器。关于NIM、vLLM和TGI之间的许可与成本权衡,参见企业推理服务器比较。
谁适合使用TensorRT-LLM?
TensorRT-LLM适合已经投入NVIDIA GPU硬件、且需要从中获得尽可能高推理吞吐量的团队,而不适合寻找运行模型最简单方式的人。
TensorRT-LLM与替代方案一览
这些工具在设置复杂度与峰值性能的光谱上处于不同位置。
TensorRT-LLM
- 设置方式:
- 使用
trtllm-build编译特定GPU的引擎,再用trtllm-serve或Triton提供服务。需要NVIDIA GPU和CUDA。 - 最适合场景:
- 在生产环境的NVIDIA硬件上以编译步骤为代价获取每GPU最大吞吐量。
vLLM
- 设置方式:
- 通过pip安装的Python包;使用
vllm serve启动的OpenAI兼容服务器。无需编译步骤;主要面向NVIDIA GPU。 - 最适合场景:
- 以更简单的免编译工作流实现高吞吐量的多用户服务。
llama.cpp
- 设置方式:
- CLI、内置Web UI,以及通过llama-server提供的OpenAI兼容API。可在CPU或广泛的GPU厂商硬件上运行。
- 最适合场景:
- 硬件灵活性、嵌入式/边缘部署,以及CPU或Apple Silicon的使用场景。
NVIDIA NIM
- 设置方式:
- 预构建容器,通过付费的NVIDIA AI Enterprise订阅部署。终端用户无需构建步骤。
- 最适合场景:
- 希望获得TensorRT-LLM级别性能、但不想自行运维构建流水线的团队。
本文未对这些工具的速度或输出质量进行独立基准比较,也不主张任何一种在所有工作负载中技术上更优——上述比较仅涵盖已记录在案的架构、设置和许可方面的事实。关于更深入的许可与部署比较,参见企业推理服务器指南。
本文未涵盖哪些内容?
这是一篇基于NVIDIA公开文档和代码仓库撰写的解读文章,而非实操基准测试报告。
- 没有独立测量的吞吐量、延迟或每秒请求数数据——这些在很大程度上取决于GPU代际、模型、批处理组成和TensorRT-LLM版本
- 没有针对特定GPU上特定量化格式独立验证的质量损失百分比——这些会因模型架构和任务而异
- 未全面覆盖每一种受支持的模型架构、内核选项或高级功能(分离式服务、专家并行、LoRA)——本文聚焦于大多数团队最先评估的概念
- 未涵盖NVIDIA AI Enterprise或NIM的定价,因为企业订阅定价不像零售产品那样公开——请直接向NVIDIA确认当前价格
- 不主张获得NVIDIA的认可或合作关系——本文作为基于公开来源的独立第三方解读,对TensorRT-LLM进行客观描述
尝试TensorRT-LLM时的常见错误
TensorRT-LLM带来的大多数困扰,都源于低估了构建/编译步骤,或期望它表现得像直接加载型引擎一样。
常见问题
TensorRT-LLM是什么?
TensorRT-LLM是NVIDIA发布的免费开源(Apache 2.0)库,构建在NVIDIA的TensorRT深度学习推理SDK之上,将大语言模型编译为专为NVIDIA GPU构建的优化推理引擎。
TensorRT-LLM是免费的吗?
是的。TensorRT-LLM本身是根据Apache 2.0许可发布的免费开源软件。NVIDIA NIM是一个打包了TensorRT-LLM后端的独立付费微服务层,需要NVIDIA AI Enterprise订阅。
TensorRT-LLM能在AMD或苹果的GPU上运行吗?
不能。TensorRT-LLM仅在NVIDIA GPU上运行——与支持更广泛硬件的vLLM或llama.cpp不同,它没有纯CPU、AMD、Intel或Apple Silicon的后端。
为什么TensorRT-LLM需要先编译模型?
TensorRT-LLM会将模型预先构建成一个引擎,其中的内核选择和优化针对特定GPU架构代际固定下来,这正是它实现性能目标的方式。与在加载时动态决定一切的引擎相比,这以构建步骤和较低的跨硬件灵活性为代价,换取在该特定NVIDIA GPU上更高的峰值吞吐量。
TensorRT-LLM支持哪些量化格式?
TensorRT-LLM支持FP8和FP4(FP4仅限Blackwell代GPU)、包括SmoothQuant在内的INT8和INT4,以及AWQ和GPTQ等社区格式,具体可用性取决于目标GPU代际。
TensorRT-LLM比vLLM更好吗?
"更好"取决于用途:TensorRT-LLM以预先编译步骤和仅限NVIDIA的支持为代价,追求特别是在NVIDIA硬件上可实现的最高每GPU吞吐量。vLLM则直接加载模型、无需编译步骤,并记录了对NVIDIA GPU以外后端的支持。二者都不是在所有情况下都更快——参见上方的比较表。
TensorRT-LLM与NVIDIA NIM有什么区别?
TensorRT-LLM是你自己运维的免费开源引擎和编译器。NVIDIA NIM是一个独立的付费微服务层,将TensorRT-LLM优化的后端打包在标准化API之后并提供厂商支持,作为NVIDIA AI Enterprise订阅的一部分销售。
TensorRT-LLM能跨多个GPU提供模型服务吗?
可以。NVIDIA记录了TensorRT-LLM对多GPU和多节点服务的支持,适用于单个GPU无法容纳的模型,通常通过NVIDIA Triton Inference Server部署以实现生产环境的编排。
