Files
wehub-resource-sync 859802c234
Docker Image CI / build-ubuntu2004 (push) Waiting to run
docs: make Chinese README the default
2026-07-13 10:46:02 +00:00

19 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

License Documentation Roadmap

:mega:📣 公告 📣📣

TensorRT 11.X 现已发布,带来强大的新功能,旨在加速您的 AI 推理工作流。随着此次重大版本升级,TensorRT 的 API 已得到精简,并移除了 10.X 中的部分遗留功能。

以下提供下列功能的迁移指南:

TensorRT 开源软件

本仓库包含 NVIDIA TensorRT 的开源软件(OSS)组件。其中包括 TensorRT 插件和 ONNX 解析器的源代码,以及演示 TensorRT 平台用法和能力的示例应用。这些开源软件组件是 TensorRT 正式发布(GA)版本的一个子集,并包含一些扩展和 bug 修复。

  • 如需分步了解 TensorRT 导入路径(ONNX、Torch-TensorRT、HuggingFace/Optimum、Network Definition API)的演练,并查看示例和工具使用技巧,请参阅 导入工作流指南
  • 如需查看各导入路径的逐模型支持矩阵(LLM、encoder-NLP、视觉、音频、diffusion、多模态),请参阅 支持的模型
  • 如需向 TensorRT-OSS 贡献代码,请参阅我们的 贡献指南编码规范
  • 如需了解 TensorRT-OSS 版本中新增加和更新的内容摘要,请参阅 更新日志
  • 商务咨询请联系 researchinquiries@nvidia.com
  • 媒体及其他咨询请联系 Hector Marinezhmarinez@nvidia.com

需要企业级支持?NVIDIA 全球支持可通过 NVIDIA AI Enterprise 软件套件. 为 TensorRT 提供服务。访问 NVIDIA LaunchPad 可免费使用在 NVIDIA 基础设施上托管的一组 TensorRT 动手实验。

加入 TensorRT 与 Triton 社区,了解最新产品更新、bug 修复、内容、最佳实践等。

智能体编码技能(Agentic Coding Skills

与 TensorRT 使用和基准测试相关的多种技能可在此处获取。安装方法请参阅您首选编码智能体的说明。

预构建 TensorRT Python 软件包

我们提供 TensorRT Python 软件包,便于安装。
安装方法:

pip install tensorrt

您可以跳过 Build(构建) 部分,直接通过 Python 使用 TensorRT。

构建

前置条件

要构建 TensorRT-OSS 组件,您首先需要以下软件包。

TensorRT GA 构建

  • TensorRT v11.1.0.106
    • 可通过下方列出的直接下载链接获取

系统软件包

可选软件包

下载 TensorRT 构建

  1. 下载 TensorRT OSS

    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 通过下方直接链接下载并解压 TensorRT GA 构建:

    示例:Ubuntu 22.04 x86-64cuda-13.3

    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-64cuda-12.9

    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 容器。若进行原生构建,请安装先决条件中的 System Packages(系统软件包)。

  1. 生成 TensorRT-OSS 构建容器。

    示例:x86-64 上的 Ubuntu 24.04,使用 cuda-13.3(默认)

    ./docker/build.sh --file docker/ubuntu-24.04.Dockerfile --tag tensorrt-ubuntu24.04-cuda13.3
    

    示例:x86-64 上的 Rockylinux8,使用 cuda-13.3

    ./docker/build.sh --file docker/rockylinux8.Dockerfile --tag tensorrt-rockylinux8-cuda13.3
    

    示例:Ubuntu 24.04 交叉编译 Jetsonaarch64),使用 cuda-13.3JetPack SDK

    ./docker/build.sh --file docker/ubuntu-cross-aarch64.Dockerfile --tag tensorrt-jetpack-cuda13.3
    

    示例:aarch64 上的 Ubuntu 24.04,使用 cuda-13.3

    ./docker/build.sh --file docker/ubuntu-24.04-aarch64.Dockerfile --tag tensorrt-aarch64-ubuntu24.04-cuda13.3
    
  2. 启动 TensorRT-OSS 构建容器。

    示例:Ubuntu 24.04 构建容器

    ./docker/launch.sh --tag tensorrt-ubuntu24.04-cuda13.3 --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 容器内。

构建 TensorRT-OSS

  • 生成 Makefile 并构建

    示例:Linuxx86-64)默认 cuda-13.3 构建

    cd $TRT_OSSPATH
    mkdir -p build && cd build
    cmake .. -DTRT_LIB_DIR=$TRT_LIBPATH -DTRT_OUT_DIR=`pwd`/out
    make -j$(nproc)
    

    示例:Linuxaarch64)默认 cuda-13.3 构建

    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 Thoraarch64)原生构建,使用 cuda-13.3

    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 Thoraarch64),使用 cuda-13.3JetPack

    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 交叉编译 DriveOSaarch64),使用 cuda-13.3

    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)
    

    示例:Windowsx86)原生构建,使用 cuda-13.3

    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:启用多设备 samplesampleDistCollective)。使用 -DTRT_BUILD_ENABLE_MULTIDEVICE=ON 进行构建;需要 NCCL >= v2.19, < v3.0。
    • TRT_BUILD_TESTING :为 samples 构建 gTests。需要 gtest(若可用);否则在配置时获取 googletest。

构建 TensorRT DriveOS Samples

  • 生成 Makefile 并构建

    示例:交叉编译 DOS7 Linuxaarch64

    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 Linuxaarch64

    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 Linuxaarch64)原生构建

    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 QNXaarch64

    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=<version>

示例:为 DOS6.5 QNX Safetyaarch64)交叉编译

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=<version>

示例:为 DOS7 QNXaarch64)交叉编译

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=<version>

参考资料

TensorRT 资源

已知问题