TensorRT 和推理引擎
TensorRT 是 NVIDIA 的库,它将经过训练的神经网络编译成高度优化的引擎,在 NVIDIA GPU 上运行速度要快得多。
概述
It matters because the same model can run 2-6x quicker and cheaper at inference time without changing what it predicts.
深入探讨
推理引擎采用经过训练的模型并重写它,以便在目标硬件上尽可能快地执行。 TensorRT 通过几个步骤为 NVIDIA GPU 实现这一点。它执行层融合,将卷积、偏置添加和 ReLU 等操作合并到单个 GPU 内核中,以减少内存流量。它采用精密校准,从 FP32 下降到 FP16 或 INT8(以及 Hopper 上的 FP8),同时保持精度。它运行内核自动调整,在您的具体 GPU 上对每一层的许多实现进行基准测试并选择最快的。结果是针对一种 GPU 架构调整的序列化“引擎”文件。 TensorRT-LLM 通过分页 KV 缓存、动态批处理和大型语言模型的张量并行性对此进行了扩展。
技术洞察
最大的加速来自两个技巧。内核融合通过将中间结果保留在快速寄存器和共享内存中,消除了慢速 GPU 全局内存的往返过程。量化到 INT8 会打包四个值,其中一个 FP32 占用,使张量核心上的算术吞吐量增加四倍,但它需要一个校准数据集来计算每个张量的缩放因子,以便减少的数值范围不会破坏准确性。该引擎是特定于硬件的,因为自动调整会针对 GPU 的确切核心和内存布局烘焙最佳内核。
战略影响
成本与预算
多年来,架构决策决定着性能和运营成本。
更清晰的判决
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
质量控制
更好的工程选择可以减少生产中的可靠性事故。
TensorRT 和推理引擎的未来
推理引擎正在朝着较低精度(FP8、FP4 和混合方案)和 LLM 特定功能(如推测解码和更智能的 KV 缓存分页)发展。 TensorRT-LLM 和 vLLM 等竞争对手正在向分解预填充/解码和连续批处理方向靠拢。预计会有更紧密的编译器集成(Torch-TensorRT、ONNX)、更少手动校准的自动量化以及对混合专家路由的广泛支持,因为以低廉的成本服务大型模型将成为核心成本战。
现实世界的实施
将 YOLO 对象检测模型转换为 TensorRT INT8 引擎,以便其在机器人或智能相机中的 NVIDIA Jetson 上实时运行
使用运行中批处理通过 TensorRT-LLM 为 Llama 或 Mistral 模型提供服务,以最大化聊天机器人后端 H100 GPU 上的每秒令牌数
以 FP16 精度优化语音识别模型,以减少实时字幕服务中的转录延迟
将推荐排名网络编译为融合的 TensorRT 引擎,以较低的 GPU 成本每秒处理数百万个请求
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实际负载和数据条件下进行基准测试。
仪器监控错误、漂移和用户影响。
在扩展之前准备回滚和事件响应路径。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the TensorRT and Inference Engines quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is TensorRT and Inference Engines?
TensorRT 是 NVIDIA 的库,它将经过训练的神经网络编译成高度优化的引擎,在 NVIDIA GPU 上运行速度要快得多。这很重要,因为同一模型在推理时的运行速度可以提高 2-6 倍,成本也可以提高 2-6 倍,而无需改变其预测结果。
像 TensorRT 这样的推理引擎的主要用途是什么?
推理引擎采用已经训练好的模型并重写它,以在特定硬件上实现最大速度;他们不训练模型。
层融合如何加速推理?
Fusion 将转换、偏置和激活等操作组合到单个内核中,因此中间结果保留在快速内存中,而不是写回到慢速全局内存中。
为什么 INT8 量化通常需要校准数据集?
校准通过模型运行代表性数据以确定每个张量比例因子,因此有限的 INT8 范围保留了重要的值分布。
为什么编译后的 TensorRT 引擎通常特定于一种 GPU 架构?
自动调优对目标 GPU 上的内核进行基准测试并选择最佳内核,使引擎与该架构的特性紧密结合。
TensorRT-LLM 的哪些功能特别有助于高效服务大型语言模型?
TensorRT-LLM 添加了 LLM 特定的优化,例如动态批处理和分页 KV 缓存,以最大限度地提高文本生成工作负载的吞吐量。