> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/NVIDIA/TensorRT) · [上游 README](https://github.com/NVIDIA/TensorRT/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
[](https://opensource.org/licenses/Apache-2.0) [](https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html) [](documents/tensorrt_roadmap_2026q3.pdf)
# :mega::mega: 公告 :mega::mega:
TensorRT 11.X 现已发布,带来强大的新功能,旨在加速您的 AI 推理工作流。随着此次重大版本升级,TensorRT 的 API 已得到精简,并移除了 10.X 中的部分遗留功能。
以下提供下列功能的迁移指南:
- 弱类型网络(Weakly-typed networks)及相关 API 已被移除,由 [强类型网络(Strongly Typed Networks)](https://docs.nvidia.com/deeplearning/tensorrt/latest/inference-library/advanced.html#strongly-typed-networks).
- 隐式量化(Implicit quantization)及相关 API 已被移除,由 [显式量化(Explicit Quantization)](https://docs.nvidia.com/deeplearning/tensorrt/latest/inference-library/work-quantized-types.html#explicit-quantization)
- IPluginV2 及相关 API 已被移除,由 [IPluginV3](https://docs.nvidia.com/deeplearning/tensorrt/latest/inference-library/extending-custom-layers.html#migrating-v2-plugins-to-ipluginv3)
- TREX 工具已被移除,由 [Nsight Deep Learning Designer](https://docs.nvidia.com/nsight-dl-designer/UserGuide/index.html#visualizing-a-tensorrt-engine)
- Python 3.9 及更早版本的 Python 绑定已被移除。适用于 RHEL/Rocky Linux 8 和 RHEL/Rocky Linux 9 的 RPM 软件包现依赖 Python 3.12。
# TensorRT 开源软件
本仓库包含 NVIDIA TensorRT 的开源软件(OSS)组件。其中包括 TensorRT 插件和 ONNX 解析器的源代码,以及演示 TensorRT 平台用法和能力的示例应用。这些开源软件组件是 TensorRT 正式发布(GA)版本的一个子集,并包含一些扩展和 bug 修复。
- 如需分步了解 TensorRT 导入路径(ONNX、Torch-TensorRT、HuggingFace/Optimum、Network Definition API)的演练,并查看示例和工具使用技巧,请参阅 [导入工作流指南](documents/import_workflows.md)。
- 如需查看各导入路径的逐模型支持矩阵(LLM、encoder-NLP、视觉、音频、diffusion、多模态),请参阅 [支持的模型](documents/supported_models.md)。
- 如需向 TensorRT-OSS 贡献代码,请参阅我们的 [贡献指南](CONTRIBUTING.md) 和 [编码规范](CODING-GUIDELINES.md)。
- 如需了解 TensorRT-OSS 版本中新增加和更新的内容摘要,请参阅 [更新日志](CHANGELOG.md)。
- 商务咨询请联系 [researchinquiries@nvidia.com](mailto:researchinquiries@nvidia.com)
- 媒体及其他咨询请联系 Hector Marinez:[hmarinez@nvidia.com](mailto:hmarinez@nvidia.com)
需要企业级支持?NVIDIA 全球支持可通过 [NVIDIA AI Enterprise 软件套件](https://www.nvidia.com/en-us/data-center/products/ai-enterprise/). 为 TensorRT 提供服务。访问 [NVIDIA LaunchPad](https://www.nvidia.com/en-us/launchpad/ai/ai-enterprise/) 可免费使用在 NVIDIA 基础设施上托管的一组 TensorRT 动手实验。
加入 [TensorRT 与 Triton 社区](https://www.nvidia.com/en-us/deep-learning-ai/triton-tensorrt-newsletter/),了解最新产品更新、bug 修复、内容、最佳实践等。
# 智能体编码技能(Agentic Coding Skills)
与 TensorRT 使用和基准测试相关的多种技能可在[此处](.agents/skills)获取。安装方法请参阅您首选编码智能体的说明。
# 预构建 TensorRT Python 软件包
我们提供 TensorRT Python 软件包,便于安装。 \
安装方法:
```bash
pip install tensorrt
```
您可以跳过 **Build(构建)** 部分,直接通过 Python 使用 TensorRT。
# 构建
## 前置条件
要构建 TensorRT-OSS 组件,您首先需要以下软件包。
**TensorRT GA 构建**
- TensorRT v11.1.0.106
- 可通过下方列出的直接下载链接获取
**系统软件包**
- [CUDA](https://developer.nvidia.com/cuda-toolkit)
- 推荐版本:
- cuda-13.3.0
- cuda-12.9.0
- [CUDNN(可选)](https://developer.nvidia.com/cudnn)
- cuDNN 8.9
- [GNU make](https://ftp.gnu.org/gnu/make/) >= v4.1
- [cmake](https://github.com/Kitware/CMake/releases) >= v3.31
- [python](https://www.python.org/downloads/) >= v3.10, <= v3.14.x
- [pip](https://pypi.org/project/pip/#history) >= v19.0
- 基础工具
- [git](https://git-scm.com/downloads), [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/), [wget](https://www.gnu.org/software/wget/faq.html#download)
**可选软件包**
- [NCCL](https://developer.nvidia.com/nccl/nccl-download) >= v2.19, < v3.0 — 仅在构建多设备支持(`-DTRT_BUILD_ENABLE_MULTIDEVICE=ON`)的 `sampleDistCollective` 示例时需要。
- 容器化构建
- [Docker](https://docs.docker.com/install/) >= 19.03
- [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-docker)
- PyPI 软件包(用于演示应用/测试)
- [onnx](https://pypi.org/project/onnx/)
- [onnxruntime](https://pypi.org/project/onnxruntime/)
- [tensorflow-gpu](https://pypi.org/project/tensorflow/) >= 2.5.1
- [Pillow](https://pypi.org/project/Pillow/) >= 9.0.1
- [pycuda](https://pypi.org/project/pycuda/) < 2021.1
- [numpy](https://pypi.org/project/numpy/)
- [pytest](https://pypi.org/project/pytest/)
- 代码格式化工具(供贡献者使用)
- [Clang-format](https://clang.llvm.org/docs/ClangFormat.html)
- [Git-clang-format](https://github.com/llvm-mirror/clang/blob/master/tools/clang-format/git-clang-format)
> 注意:[onnx-tensorrt](https://github.com/onnx/onnx-tensorrt), [cub](http://nvlabs.github.io/cub/), 和 [protobuf](https://github.com/protocolbuffers/protobuf.git) 软件包会随 TensorRT OSS 一起下载,无需单独安装。
## 下载 TensorRT 构建
1. #### 下载 TensorRT OSS
```bash
git clone -b main https://github.com/nvidia/TensorRT TensorRT
cd TensorRT
git submodule update --init --recursive
```
2. #### (可选 - 若不使用 TensorRT 容器)指定 TensorRT GA 发布版构建路径
若使用 TensorRT OSS 构建容器,TensorRT 库已预装在 `/usr/lib/x86_64-linux-gnu` 下,可跳过此步骤。
否则请从 [NVIDIA Developer Zone](https://developer.nvidia.com) 通过下方直接链接下载并解压 TensorRT GA 构建:
- [适用于 CUDA 13.3、Linux x86_64 的 TensorRT 11.1.0.106](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.1.0/tars/TensorRT-Enterprise-11.1.0.106-Linux-x86_64-cuda-13.3-Release-external.tar.zst)
- [适用于 CUDA 12.9、Linux x86_64 的 TensorRT 11.1.0.106](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.1.0/tars/TensorRT-Enterprise-11.1.0.106-Linux-x86_64-cuda-12.9-Release-external.tar.zst)
- [适用于 CUDA 13.3、Windows x86_64 的 TensorRT 11.1.0.106](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.1.0/zip/TensorRT-Enterprise-11.1.0.106-Windows-amd64-cuda-13.3-Release-external.zip)
- [适用于 CUDA 12.9、Windows x86_64 的 TensorRT 11.1.0.106](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.1.0/zip/TensorRT-Enterprise-11.1.0.106-Windows-amd64-cuda-12.9-Release-external.zip)
**示例:Ubuntu 22.04 x86-64,cuda-13.3**
```bash
cd ~/Downloads
tar --zstd -xvf TensorRT-Enterprise-11.1.0.106-Linux-x86_64-cuda-13.3-Release-external.tar.zst
export TRT_LIBPATH=`pwd`/TensorRT-11.1.0.106/lib
```
**示例:Windows x86-64,cuda-12.9**
```powershell
Expand-Archive -Path TensorRT-Enterprise-11.1.0.106-Windows-amd64-cuda-12.9-Release-external.zip
$env:TRT_LIBPATH="$pwd\TensorRT-11.1.0.106\lib"
```
## 配置构建环境
对于 Linux 平台,我们建议按照下文所述生成用于构建 TensorRT OSS 的 Docker 容器。若进行原生构建,请安装[先决条件](#prerequisites)中的 _System Packages_(系统软件包)。
1. #### 生成 TensorRT-OSS 构建容器。
**示例:x86-64 上的 Ubuntu 24.04,使用 cuda-13.3(默认)**
```bash
./docker/build.sh --file docker/ubuntu-24.04.Dockerfile --tag tensorrt-ubuntu24.04-cuda13.3
```
**示例:x86-64 上的 Rockylinux8,使用 cuda-13.3**
```bash
./docker/build.sh --file docker/rockylinux8.Dockerfile --tag tensorrt-rockylinux8-cuda13.3
```
**示例:Ubuntu 24.04 交叉编译 Jetson(aarch64),使用 cuda-13.3(JetPack SDK)**
```bash
./docker/build.sh --file docker/ubuntu-cross-aarch64.Dockerfile --tag tensorrt-jetpack-cuda13.3
```
**示例:aarch64 上的 Ubuntu 24.04,使用 cuda-13.3**
```bash
./docker/build.sh --file docker/ubuntu-24.04-aarch64.Dockerfile --tag tensorrt-aarch64-ubuntu24.04-cuda13.3
```
2. #### 启动 TensorRT-OSS 构建容器。
**示例:Ubuntu 24.04 构建容器**
```bash
./docker/launch.sh --tag tensorrt-ubuntu24.04-cuda13.3 --gpus all
```
> 注意:
>
1. 使用与步骤 1 中生成的构建容器对应的 `--tag`。
>
2. 在构建容器内访问 GPU(运行 TensorRT 应用程序)需要 [NVIDIA Container Toolkit](#prerequisites)。
>
3. Ubuntu 构建容器的 `sudo` 密码为 'nvidia'。
>
4. 使用 `--jupyter ` 指定端口号以启动 Jupyter notebooks。
>
5. 需要对此文件夹具有写入权限,因为该文件夹将以 uid:gid 1000:1000 挂载到 Docker 容器内。
## 构建 TensorRT-OSS
- 生成 Makefile 并构建
**示例:Linux(x86-64)默认 cuda-13.3 构建**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out
make -j$(nproc)
```
**示例:Linux(aarch64)默认 cuda-13.3 构建**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64-native.toolchain
make -j$(nproc)
```
**示例:Jetson Thor(aarch64)原生构建,使用 cuda-13.3**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out -DTRT_PLATFORM_ID=aarch64
CC=/usr/bin/gcc make -j$(nproc)
```
> 注意:对于 protobuf 的原生 aarch64 构建,必须通过 CC= 显式指定 C 编译器。
**示例:Ubuntu 24.04 交叉编译 Jetson Thor(aarch64),使用 cuda-13.3(JetPack)**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_cross.toolchain
make -j$(nproc)
```
**示例:Ubuntu 24.04 交叉编译 DriveOS(aarch64),使用 cuda-13.3**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_dos_cross.toolchain
make -j$(nproc)
```
**示例:Windows(x86)原生构建,使用 cuda-13.3**
```bash
cd $TRT_OSSPATH
New-Item -ItemType Directory -Path build
cd build
cmake .. -DTRT_LIB_DIR="$env:TRT_LIBPATH" -DTRT_OUT_DIR="$pwd\\out"
msbuild TensorRT.sln /property:Configuration=Release -m:$env:NUMBER_OF_PROCESSORS
```
> 注意:CMake 默认使用的 CUDA 版本为 13.3。若要覆盖此设置(例如改为 12.9),请在 cmake 命令后追加 `-DCUDA_VERSION=12.9`。
- 必需的 CMake 构建参数:
- `TRT_LIB_DIR`:包含库的 TensorRT 安装目录路径。
- `TRT_OUT_DIR`:生成的构建产物将被复制到的输出目录。
- 可选的 CMake 构建参数:
- `CMAKE_BUILD_TYPE`:指定生成的二进制文件用于 release 还是 debug(包含调试符号)。取值包括 [`Release`] | `Debug`
- `CUDA_VERSION`:目标 CUDA 版本,例如 [`12.9.9`]。
- `CUDNN_VERSION`:目标 cuDNN 版本,例如 [`8.9`]。
- `PROTOBUF_VERSION`:要使用的 Protobuf 版本,例如 [`3.20.1`]。注意:更改此项不会配置 CMake 使用系统版 Protobuf,而是会配置 CMake 下载并尝试构建该版本。
- `CMAKE_TOOLCHAIN_FILE`:用于交叉编译的工具链文件路径。
- `BUILD_PARSERS`:指定是否构建 parsers,例如 [`ON`] | `OFF`。若设为 OFF,CMake 将尝试查找预编译的 parser 库以用于编译 samples。首先在 `${TRT_LIB_DIR}` 中查找,然后在系统中查找。若构建类型为 Debug,则在可用时优先使用库的 debug 构建版本,而非 release 版本。
- `BUILD_PLUGINS`:指定是否构建 plugins,例如 [`ON`] | `OFF`。若设为 OFF,CMake 将尝试查找预编译的 plugin 库以用于编译 samples。首先在 `${TRT_LIB_DIR}` 中查找,然后在系统中查找。若构建类型为 Debug,则在可用时优先使用库的 debug 构建版本,而非 release 版本。
- `BUILD_SAMPLES`:指定是否构建 samples,例如 [`ON`] | `OFF`。
- `BUILD_SAFE_SAMPLES`:指定是否构建 safety samples,例如 [`ON`] | `OFF`。
- `TRT_SAFETY_INFERENCE_ONLY`:指定是否仅构建 safety inference 组件,例如 [`ON`] | `OFF`。若设为 ON,除 `BUILD_SAFE_SAMPLES` 外,所有其他组件都将设为 OFF。
- `TRT_PLATFORM_ID`:裸机构建(与容器化交叉编译不同)。当前支持的选项:`x86_64`(默认)。
- `TRT_BUILD_ENABLE_MULTIDEVICE`:启用多设备 sample(`sampleDistCollective`)。使用 `-DTRT_BUILD_ENABLE_MULTIDEVICE=ON` 进行构建;需要 [NCCL](https://developer.nvidia.com/nccl/nccl-download) >= v2.19, < v3.0。
- `TRT_BUILD_TESTING` :为 samples 构建 gTests。需要 [gtest](https://github.com/google/googletest)(若可用);否则在配置时获取 googletest。
## 构建 TensorRT DriveOS Samples
- 生成 Makefile 并构建
**示例:交叉编译 DOS7 Linux(aarch64)**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DTRT_OUT_DIR=`pwd`/bin_dynamic_cross -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_dos_cross.toolchain
make -j$(nproc)
```
**示例:交叉编译 DOS6.5 Linux(aarch64)**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DTRT_OUT_DIR=`pwd`/bin_dynamic_cross -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_dos_cross.toolchain -DCUDA_VERSION=11.4 -DCMAKE_CUDA_ARCHITECTURES=87
make -j$(nproc)
```
**示例:DOS6.5 和 DOS7 Linux(aarch64)原生构建**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64-native.toolchain -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF
make -j$(nproc)
```
**示例:交叉编译 DOS6.5 QNX(aarch64)**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
export CUDA_VERSION=11.4
export CUDA=cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-safe-$CUDA_VERSION
export QNX_BASE=/drive/toolchains/qnx_toolchain # Set to your QNX toolchain installation path
export QNX_HOST=$QNX_BASE/host/linux/x86_64/
export QNX_TARGET=$QNX_BASE/target/qnx7/
export PATH=$PATH:$QNX_HOST/usr/bin
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DBUILD_SAFE_SAMPLES=OFF -DCMAKE_CUDA_COMPILER=$CUDA_ROOT/bin/nvcc -DTRT_OUT_DIR=`pwd`/bin_dynamic_cross -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_qnx.toolchain -DCUDA_VERSION=$CUDA_VERSION -DCMAKE_CUDA_ARCHITECTURES=87
make -j$(nproc)
```
> 注意:将 `QNX_BASE` 设置为你的 QNX 工具链安装路径。
> 若你的 CUDA 版本与示例不同,请设置 `CUDA_VERSION`(在示例中多处使用时),或在 cmake 命令中添加 `-DCUDA_VERSION=`。
**示例:为 DOS6.5 QNX Safety(aarch64)交叉编译**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
export CUDA_VERSION=11.4
export QNX_BASE=/drive/toolchains/qnx_toolchain # 设置为你的 QNX 工具链安装路径
export QNX_HOST=$QNX_BASE/host/linux/x86_64/
export QNX_TARGET=$QNX_BASE/target/qnx7/
export PATH=$PATH:$QNX_HOST/usr/bin
export CUDA=cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-safe-$CUDA_VERSION
cmake .. -DBUILD_SAMPLES=OFF -DBUILD_SAFE_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DTRT_SAFETY_INFERENCE_ONLY=ON -DTRT_OUT_DIR=`pwd`/bin_dynamic_cross -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_qnx_safe.toolchain -DCUDA_VERSION=$CUDA_VERSION -DCMAKE_CUDA_COMPILER=$CUDA_ROOT/bin/nvcc -DCMAKE_CUDA_ARCHITECTURES=87
make -j$(nproc)
```
> 注意:将 `QNX_BASE` 设置为你的 QNX 工具链安装路径。
> 若你的 CUDA 版本与示例不同,请设置 `CUDA_VERSION`(在示例中多处使用时),或在 cmake 命令中添加 `-DCUDA_VERSION=`。
**示例:为 DOS7 QNX(aarch64)交叉编译**
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
export CUDA_VERSION=13.3
export CUDA=cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-safe-$CUDA_VERSION
export QNX_BASE=/drive/toolchains/qnx_toolchain # 设置为你的 QNX 工具链安装路径
export QNX_HOST=$QNX_BASE/host/linux/x86_64/
export QNX_TARGET=$QNX_BASE/target/qnx/
export PATH=$PATH:$QNX_HOST/usr/bin
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DBUILD_SAFE_SAMPLES=OFF -DCMAKE_CUDA_COMPILER=$CUDA_ROOT/bin/nvcc -DTRT_OUT_DIR=`pwd`/bin_dynamic_cross -DTRT_LIB_DIR=$TRT_LIBPATH -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_qnx.toolchain -DCUDA_VERSION=$CUDA_VERSION -DCMAKE_CUDA_ARCHITECTURES=110
make -j$(nproc)
```
> 注意:将 `QNX_BASE` 设置为你的 QNX 工具链安装路径。
> 若你的 CUDA 版本与示例不同,请设置 `CUDA_VERSION`(在示例中多处使用时),或在 cmake 命令中添加 `-DCUDA_VERSION=`。
# 参考资料
## TensorRT 资源
- [TensorRT 开发者主页](https://developer.nvidia.com/tensorrt)
- [TensorRT 快速入门指南](https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide/index.html)
- [TensorRT 开发者指南](https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html)
- [TensorRT 示例支持指南](https://docs.nvidia.com/deeplearning/tensorrt/sample-support-guide/index.html)
- [TensorRT ONNX 工具](https://docs.nvidia.com/deeplearning/tensorrt/index.html#tools)
- [TensorRT 讨论论坛](https://devtalk.nvidia.com/default/board/304/tensorrt/)
- [TensorRT 发布说明](https://docs.nvidia.com/deeplearning/tensorrt/release-notes/index.html)
## 已知问题
- 请参阅 [TensorRT 发布说明](https://docs.nvidia.com/deeplearning/tensorrt/release-notes)