TensorRT 11.0 即将于 2026 年第二季度发布,它将带来强大的新功能,旨在加速您的 AI 推理工作流。随着此次主版本号的提升,TensorRT 的 API 将得到精简,一些遗留功能将被移除。
我们建议您尽早迁移以下功能:
- 弱类型网络及相关 API 将被移除,由强类型网络替代。
- 隐式量化及相关 API 将被移除,由显式量化替代。
- IPluginV2 及相关 API 将被移除,由IPluginV3替代。
- TREX 工具将被移除,由Nsight Deep Learning Designer替代。
- 从 TensorRT 10.16 开始,将移除对 Python 3.9 及更早版本的 Python 绑定。RHEL/Rocky Linux 8 和 RHEL/Rocky Linux 9 的 RPM 包现在依赖于 Python 3.12。
此仓库包含 NVIDIA TensorRT 的开源软件(OSS)组件。它包括 TensorRT 插件和 ONNX 解析器的源代码,以及展示 TensorRT 平台使用方法和功能的示例应用程序。这些开源软件组件是 TensorRT 通用可用性(GA)版本的一个子集,并包含一些扩展和错误修复。
需要企业支持?通过 NVIDIA AI Enterprise 软件套件,NVIDIA 全球支持可为 TensorRT 提供服务。访问 NVIDIA LaunchPad,免费获取一系列在 NVIDIA 基础设施上托管的 TensorRT 实践实验室。
加入 TensorRT 和 Triton 社区,随时了解最新的产品更新、错误修复、内容、最佳实践等信息。
我们提供 TensorRT Python 包以便于安装。\
安装方法:
pip install tensorrt
您可以跳过下面的构建部分,直接使用 Python 版的 TensorRT。
要构建 TensorRT-OSS 组件,您首先需要以下软件包。
TensorRT GA 构建
系统包
可选包
注意:onnx-tensorrt、cub 和 protobuf 包会随 TensorRT OSS 一同下载,无需单独安装。
bash
git clone -b main https://github.com/nvidia/TensorRT TensorRT
cd TensorRT
git submodule update --init --recursive
如果使用 TensorRT OSS 构建容器,TensorRT 库已预安装在 /usr/lib/x86_64-linux-gnu 下,您可以跳过此步骤。
否则,请从 NVIDIA Developer Zone 使用以下直接链接下载并解压 TensorRT GA 构建:
示例:Ubuntu 22.04 on x86-64 with cuda-13.1
bash
cd ~/Downloads
tar -xvzf TensorRT-10.15.1.29.Linux.x86_64-gnu.cuda-13.1.tar.gz
export TRT_LIBPATH=`pwd`/TensorRT-10.15.1.29/lib
示例:Windows on x86-64 with cuda-12.9
powershell
Expand-Archive -Path TensorRT-10.15.1.29.Windows.win10.cuda-12.9.zip
$env:TRT_LIBPATH="$pwd\TensorRT-10.15.1.29\lib"
对于 Linux 平台,我们建议您按照以下描述生成一个用于构建 TensorRT OSS 的 Docker 容器。对于原生构建,请安装前提条件中提到的_系统包_。
示例:Ubuntu 24.04 on x86-64 with cuda-13.1 (默认)
bash
./docker/build.sh --file docker/ubuntu-24.04.Dockerfile --tag tensorrt-ubuntu24.04-cuda13.1
示例:Rockylinux8 on x86-64 with cuda-13.1
bash
./docker/build.sh --file docker/rockylinux8.Dockerfile --tag tensorrt-rockylinux8-cuda13.1
示例:Ubuntu 24.04 为 Jetson (aarch64) 交叉编译 with cuda-13.1 (JetPack SDK)
bash
./docker/build.sh --file docker/ubuntu-cross-aarch64.Dockerfile --tag tensorrt-jetpack-cuda13.1
示例:Ubuntu 24.04 on aarch64 with cuda-13.1
bash
./docker/build.sh --file docker/ubuntu-24.04-aarch64.Dockerfile --tag tensorrt-aarch64-ubuntu24.04-cuda13.1
bash
./docker/launch.sh --tag tensorrt-ubuntu24.04-cuda13.1 --gpus all注意:
1. 使用与步骤 1 中生成的构建容器对应的--tag。
2. 在构建容器内访问 GPU(运行 TensorRT 应用程序)需要 NVIDIA Container Toolkit。
3. Ubuntu 构建容器的sudo密码是 'nvidia'。
4. 使用--jupyter <port>指定端口号以启动 Jupyter notebooks。
5. 此文件夹需要写权限,因为它将以 uid:gid 1000:1000 挂载到 docker 容器内。
示例:Linux (x86-64) 构建,使用默认 cuda-13.1
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.1
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) 上的原生构建 with cuda-13.1
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)
注意:对于 aarch64 的原生构建,必须通过
CC=显式指定 C 编译器以编译 protobuf。
示例:Ubuntu 24.04 为 Jetson Thor (aarch64) 交叉编译 with cuda-13.1 (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) 交叉编译 with cuda-13.1
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) 上的原生构建 with cuda-13.1
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.1。要覆盖此设置,例如改为 12.9,请在 cmake 命令后追加
-DCUDA_VERSION=12.9。
TRT_LIB_DIR:包含库文件的 TensorRT 安装目录路径。TRT_OUT_DIR:生成的构建产物将被复制到的输出目录。CMAKE_BUILD_TYPE:指定生成的二进制文件是用于发布还是调试(包含调试符号)。值为 [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:指定是否构建解析器,例如 [ON] | OFF。如果关闭,CMake 将尝试查找预编译的解析器库版本以用于编译示例。首先在 ${TRT_LIB_DIR} 中查找,然后在系统中查找。如果构建类型是 Debug,则会优先使用库的调试版本(如果可用)。BUILD_PLUGINS:指定是否构建插件,例如 [ON] | OFF。如果关闭,CMake 将尝试查找预编译的插件库版本以用于编译示例。首先在 ${TRT_LIB_DIR} 中查找,然后在系统中查找。如果构建类型是 Debug,则会优先使用库的调试版本(如果可用)。BUILD_SAMPLES:指定是否构建示例,例如 [ON] | OFF。BUILD_SAFE_SAMPLES:指定是否构建安全示例,例如 [ON] | OFF。TRT_SAFETY_INFERENCE_ONLY:指定是否仅构建安全推理组件,例如 [ON] | OFF。如果开启,除 BUILD_SAFE_SAMPLES 外,所有其他组件都将关闭。GPU_ARCHS:目标 GPU (SM) 架构。默认情况下,我们为所有主要 SM 生成 CUDA 代码。可以在此处指定特定的 SM 版本作为引号括起来的、以空格分隔的列表,以减少编译时间和二进制大小。NVIDIA GPU 的计算能力表可以在此处找到。示例:- NVIDIA A100:-DGPU_ARCHS="80" - RTX 50 系列:-DGPU_ARCHS="120" - 多个 SM:-DGPU_ARCHS="80 120"。TRT_PLATFORM_ID:裸机构建(与容器化交叉编译不同)。当前支持的选项:x86_64(默认)。