Skip to main content
PromptQuorum
主页/本地LLM进阶/TensorRT-LLM详解:NVIDIA的GPU优化推理引擎(2026版)
Overview & Reference

TensorRT-LLM详解:NVIDIA的GPU优化推理引擎(2026版)

·13分钟阅读·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

TensorRT-LLM是NVIDIA发布的免费开源(Apache 2.0)库,可将大语言模型编译为专为NVIDIA GPU构建的优化推理"引擎"。 它构建在NVIDIA的TensorRT深度学习推理SDK之上,增加了LLM专用技术,包括飞行中(连续)批处理、分页KV缓存、自定义注意力内核,以及低至FP8和INT4的量化支持,从而在目标GPU代际所允许的范围内尽可能提升推理吞吐量。其决定性的权衡在于预先编译步骤:模型必须先构建成特定GPU的引擎才能提供服务,这与直接加载模型、无需单独编译步骤的llama.cppvLLM不同。在生产环境中,TensorRT-LLM最常通过NVIDIA Triton Inference Server使用,或打包在NVIDIA NIM微服务内部,目标是在数据中心和企业部署中于NVIDIA硬件上实现每GPU的最大吞吐量——而不是面向单用户的桌面聊天场景。

TensorRT-LLM是NVIDIA以Apache 2.0许可证发布的开源库,专门用于在NVIDIA GPU上编译和优化大语言模型推理。与llama.cppvLLM那样直接加载并运行模型不同,TensorRT-LLM会将模型预先编译成一个优化过的"引擎",该引擎由针对特定NVIDIA GPU代际调优的自定义CUDA内核构成。这一编译步骤是其整体设计的核心权衡:以额外的构建步骤和仅限NVIDIA的硬件要求为代价,换取NVIDIA GPU上可实现的最高推理性能,它也是NVIDIA自家NIM微服务背后的引擎,并且是NVIDIA Triton Inference Server常见的后端。

TensorRT-LLM详解:NVIDIA的GPU优化推理引擎(2026版)

关键要点

  • 免费且采用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。

  • 由NVIDIA发布并维护,在GitHub上以Apache 2.0许可开源分发
  • 在NVIDIA通用TensorRT推理SDK基础上扩展了针对Transformer和LLM的专用优化
  • 提供Python API(tensorrt_llm.LLM)以及用于编译模型的trtllm-build命令行工作流
  • 包含trtllm-serve命令,可直接从已构建的引擎启动一个OpenAI兼容端点
  • 支持许多流行的开放模型系列,但具体每个模型的支持情况及所需的转换步骤会因TensorRT-LLM版本而异——在选定模型前请查阅该项目的支持模型文档

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. 1
    确认你拥有受支持的NVIDIA GPU(最新优化需要Hopper、Ada或Blackwell代际),并已安装当前版本的CUDA驱动。
  2. 2
    拉取NVIDIA官方的TensorRT-LLM容器镜像,或在匹配的CUDA环境中安装tensorrt_llm Python包——容器化路径可以避免大多数依赖版本不匹配问题。
  3. 3
    使用TensorRT-LLM的Python API或该模型系列的示例转换脚本,转换或加载你的源模型检查点(例如来自Hugging Face)。
  4. 4
    使用trtllm-build命令为你的特定GPU构建优化引擎,在构建时选择精度(FP16、FP8、INT4/INT8,或Blackwell上的FP4)和批处理配置。
  5. 5
    启动构建好的引擎,可以直接用trtllm-serve启动OpenAI兼容端点,或将NVIDIA Triton Inference Server的TensorRT-LLM后端指向该引擎目录。
  6. 6
    在将生产流量路由到该端点之前,先向已部署的端点发送测试请求(curl或任何OpenAI API兼容客户端),确认引擎能正确加载并生成结果。
  7. 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、vLLMllama.cpp都执行LLM推理,但它们在性能与灵活性的光谱上处于不同位置。

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篇)

其他提及:

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部署以实现生产环境的编排。

参考来源

← 返回 本地LLM进阶