🐭文档简介
NVIDIA® TensorRT™ 是一个促进高性能机器学习推理的 SDK。 它旨在与 TensorFlow、PyTorch 和 MXNet 等训练框架以互补的方式工作。 它特别专注于在 NVIDIA 硬件上快速高效地运行已经训练好的网络。 有关如何安装 TensorRT 的说明,请参阅 NVIDIA TensorRT 安装指南。
NVIDIA TensorRT 快速入门指南适用于想要试用 TensorRT SDK 的用户; 具体来说,您将学习如何快速构建应用程序以在 TensorRT 引擎上运行推理。
Structure of this Guide
第 1 章提供了有关如何打包和支持 TensorRT 以及它如何融入开发者生态系统的信息。
第 2 章提供了对 TensorRT 功能的广泛概述。
第 3 章和第 4 章分别介绍了 C++ 和 Python API。
后续章节提供有关高级功能的更多详细信息。
附录包含网络层参考和常见问题解答。
Samples
NVIDIA TensorRT 示例支持指南说明了本手册中讨论的许多主题。可在此处找到其他侧重于嵌入式应用程序的示例。
Complementary GPU Features
多实例 GPU或 MIG 是具有 NVIDIA Ampere 架构或更高架构的 NVIDIA GPU 的一项功能,可实现用户控制的将单个 GPU 划分为多个较小 GPU 的功能。物理分区提供具有 QoS 的专用计算和内存切片,并在 GPU 的一部分上独立执行并行工作负载。对于 GPU 利用率低的 TensorRT 应用程序,MIG 可以在对延迟影响很小或没有影响的情况下产生更高的吞吐量。最佳分区方案是特定于应用程序的。
Complementary Software
NVIDIA Triton™推理服务器是一个更高级别的库,可提供跨 CPU 和 GPU 的优化推理。它提供了启动和管理多个模型的功能,以及用于服务推理的 REST 和 gRPC 端点。
NVIDIA DALI ®为预处理图像、音频和视频数据提供高性能原语。 TensorRT 推理可以作为自定义算子集成到 DALI 管道中。可以在此处找到作为 DALI 的一部分集成的 TensorRT 推理的工作示例。
TensorFlow-TensorRT (TF-TRT)是将 TensorRT 直接集成到 TensorFlow 中。它选择 TensorFlow 图的子图由 TensorRT 加速,同时让图的其余部分由 TensorFlow 本地执行。结果仍然是您可以照常执行的 TensorFlow 图。有关 TF-TRT 示例,请参阅TensorFlow 中的 TensorRT 示例。
PyTorch 量化工具包提供了以降低精度训练模型的工具,然后可以将其导出以在 TensorRT 中进行优化。
此外, PyTorch Automatic SParsity (ASP)工具提供了用于训练具有结构化稀疏性的模型的工具,然后可以将其导出并允许 TensorRT 在 NVIDIA Ampere GPU 上利用更快的稀疏策略。
TensorRT 与 NVIDIA 的分析工具、 NVIDIA Nsight™ Systems和NVIDIA® Deep Learning Profiler (DLProf)集成。
ONNX
TensorRT 从框架中导入训练模型的主要方式是通过ONNX交换格式。 TensorRT 附带一个 ONNX 解析器库来帮助导入模型。在可能的情况下,解析器向后兼容 opset 7; ONNX模型 Opset 版本转换器可以帮助解决不兼容问题。
GitHub 版本可能支持比 TensorRT 附带的版本更高的 opset,请参阅 ONNX-TensorRT运算符支持矩阵以获取有关受支持的 opset 和运算符的最新信息。
TensorRT 的 ONNX 算子支持列表可在此处找到。
PyTorch 原生支持ONNX 导出。对于 TensorFlow,推荐的方法是tf2onnx 。
将模型导出到 ONNX 后的第一步是使用Polygraphy运行常量折叠。这通常可以解决 ONNX 解析器中的 TensorRT 转换问题,并且通常可以简化工作流程。有关详细信息,请参阅此示例。在某些情况下,可能需要进一步修改 ONNX 模型,例如,用插件替换子图或根据其他操作重新实现不受支持的操作。为了简化此过程,您可以使用ONNX-GraphSurgeon 。
Code Analysis Tools
有关在 TensorRT 中使用 valgrind 和 clang sanitizer 工具的指导,请参阅故障排除章节。
Last updated