TensorRT C++ API安装与配置:从源码编译到CMake集成完整教程

TensorRT C++ API安装与配置:从源码编译到CMake集成完整教程

【免费下载链接】tensorrt-cpp-api TensorRT C++ API Tutorial 【免费下载链接】tensorrt-cpp-api 项目地址: https://gitcode.com/gh_mirrors/te/tensorrt-cpp-api

TensorRT C++ API是一个基于Linux/CUDA 12/TensorRT ≥ 10/C++20的高性能深度学习推理库,它提供了简洁易用的接口,帮助开发者快速构建和部署高效的TensorRT推理应用。本教程将详细介绍如何从源码编译安装TensorRT C++ API,并将其集成到CMake项目中,让你轻松上手这一强大的工具。

🌟 准备工作:系统环境与依赖项

在开始安装TensorRT C++ API之前,确保你的系统满足以下要求:

  • 操作系统:Linux
  • CMake:≥ 3.22
  • C++编译器:GCC ≥ 11 或 Clang ≥ 14(支持C++20标准)
  • CUDA Toolkit:12.x(需要nvcc编译器,CUDA 13需要驱动版本≥580)
  • TensorRT:10.0 – 11.x(可通过apt安装或tarball解压)

可选依赖项:

  • spdlog:用于日志功能(通过-DTRT_CPP_API_WITH_SPDLOG=ON启用)
  • OpenCV:用于图像处理(通过-DTRT_CPP_API_WITH_OPENCV=ON启用)
  • pybind11 + Python 3.9–3.13:用于Python绑定(通过-DTRT_CPP_API_BUILD_PYTHON=ON启用)

TensorRT C++ API开发环境 图:TensorRT C++ API开发团队,致力于提供高效的深度学习推理解决方案

📥 获取源码:克隆项目仓库

首先,克隆TensorRT C++ API的项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/te/tensorrt-cpp-api
cd tensorrt-cpp-api

⚙️ 编译选项:定制你的安装

TensorRT C++ API提供了多种编译选项,可根据需求进行定制。主要选项如下:

选项默认值说明
TRT_CPP_API_BUILD_PREPROCON构建融合预处理子库(::preproc
TRT_CPP_API_BUILD_TESTSOFF构建GoogleTest测试套件(使用ctest;GPU测试标记为gpu
TRT_CPP_API_BUILD_EXAMPLESOFF构建参考示例
TRT_CPP_API_BUILD_PYTHONOFF构建trtcpp pybind11扩展
TRT_CPP_API_WITH_OPENCVOFF构建可选的OpenCV互操作头文件/源文件
TRT_CPP_API_WITH_SPDLOGOFF构建可选的spdlog日志适配器
CMAKE_CUDA_ARCHITECTURES75;80;86;89;90覆盖目标GPU架构

🔨 源码编译:构建与安装步骤

1. 配置CMake项目

cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DTRT_CPP_API_BUILD_PREPROC=ON
  # 若使用tarball安装的TensorRT,添加:-DTensorRT_DIR=/path/to/TensorRT-10.x
  # 若nvcc不在PATH中,添加:-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc

2. 编译项目

cmake --build build -j$(nproc)

3. 安装库文件

cmake --install build --prefix /opt/trtcpp

安装完成后,库文件将被安装到/opt/trtcpp目录下,包括:

  • include/tensorrt_cpp_api/:头文件
  • 静态库文件
  • lib/cmake/tensorrt_cpp_api/:CMake配置文件(包含FindTensorRT模块)

📦 CMake集成:在项目中使用TensorRT C++ API

安装完成后,可以通过以下方式将TensorRT C++ API集成到你的CMake项目中:

find_package(tensorrt_cpp_api REQUIRED)   # 设置CMAKE_PREFIX_PATH=/opt/trtcpp(若使用tarball TensorRT,还需设置TensorRT_DIR)
add_executable(myapp main.cpp)
target_link_libraries(myapp PRIVATE
    tensorrt_cpp_api::tensorrt_cpp_api    # 核心库
    tensorrt_cpp_api::preproc)            # 可选的预处理库

CMake配置会自动解析CUDA、TensorRT、Threads(以及OpenCV/spdlog,如果安装时启用了它们)的依赖,因此你只需确保系统中安装了TensorRT即可。

🐍 Python绑定:安装与使用

如果需要使用Python接口,可以通过以下命令安装:

pip install .                                    # 通过scikit-build-core构建trtcpp wheel
# 若使用tarball TensorRT:pip install . --config-settings=cmake.define.TensorRT_DIR=/opt/TensorRT-10.x

安装完成后,可以验证Python绑定是否正常工作:

python -c "import trtcpp; print(trtcpp.version_string())"

对于零拷贝GPU互操作,需要安装匹配的CuPy(如pip install cupy-cuda12x),更多示例请参考examples/python

✅ 验证安装:运行测试套件

为确保安装正确,可以构建并运行测试套件:

cmake -S . -B build -DTRT_CPP_API_BUILD_TESTS=ON
cmake --build build -j$(nproc)
ctest --test-dir build -LE gpu          # 仅运行CPU测试(无需GPU)
ctest --test-dir build                  # 运行完整测试套件(需要NVIDIA GPU)

🚫 常见问题:故障排除与解决方案

问题1:构建示例/消费者时出现Could NOT find CUDA: ... required is exact version "12.0"

解决方案:这通常是由于启用了CUDA的OpenCV其CMake配置固定了与你的工具包不同的CUDA版本。库核心不使用OpenCV,因此可以使用默认的-DTRT_CPP_API_WITH_OPENCV=OFF进行构建,并优先使用基于stb的示例(无需OpenCV)。

问题2:出现Failed to detect a default CUDA architecturenvcc未找到

解决方案:指定nvcc路径:-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc,或将nvcc添加到PATH中。

问题3:出现Could NOT find TensorRT

解决方案:安装libnvinfer-dev/libnvonnxparsers-dev,或通过-DTensorRT_DIR=<tarball-root>指定TensorRT路径。TensorRT版本必须在10.0–11.x范围内。

问题4:引擎缓存过期导致重建

解决方案:更改ONNX模型、构建选项、驱动/TensorRT版本或GPU都会使缓存的引擎失效,这是正常现象。删除engineCacheDir目录以强制 clean 重建。

📚 进一步学习:文档与示例

  • 官方文档:项目中的docs/目录包含详细的安装和使用指南,如docs/install.mddocs/quickstart.md
  • 示例代码examples/目录提供了多个端到端的示例程序,包括分类、检测、分割和基准测试等。

通过本教程,你已经掌握了TensorRT C++ API的安装、配置和基本使用方法。现在,你可以开始构建自己的高性能深度学习推理应用了!

【免费下载链接】tensorrt-cpp-api TensorRT C++ API Tutorial 【免费下载链接】tensorrt-cpp-api 项目地址: https://gitcode.com/gh_mirrors/te/tensorrt-cpp-api

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值