TensorRT 安装与部署:驱动、CUDA 与容器方案
TensorRT 安装与部署:驱动、CUDA 与容器方案
先定版本路线。TensorRT 与 CUDA、显卡驱动之间存在兼容性矩阵,安装前按驱动版本对照官方兼容性表(TensorRT Installation Guide 与 CUDA Compatibility 文档),不要凭记忆挑版本。原则是:驱动版本决定能跑到多新的 CUDA runtime,CUDA 版本又决定能装哪个 TensorRT。驱动偏旧时优先升驱动,而不是硬装新版 TensorRT。
- 确认显卡与驱动:
输出里的 driver_version 与 compute_cap(例如 8.6、8.9、9.0)决定了可用的 CUDA 上限,也决定了 engine 要编译到哪个架构。nvidia-smi nvidia-smi --query-gpu=name,driver_version,compute_cap --format=csv - 安装 CUDA Toolkit 与 cuDNN,或直接用发行版仓库包;不想折腾就用第 4 步的容器方案。
- 安装 Python 侧依赖:
只用命令行工具的话,装完 tensorrt 轮子就能用 trtexec。python -m pip install --upgrade pip python -m pip install tensorrt onnx onnxruntime-gpu pycuda - 容器方案(生产上更推荐,环境一致性最好):
具体标签去 NGC 目录挑,宿主机需要装 nvidia-container-toolkit;容器里的 CUDA 版本不能高于驱动支持的上限,驱动由宿主机透传。docker run --gpus all -it --rm \ -v $(pwd):/workspace \ nvcr.io/nvidia/tensorrt:<版本标签>-py3 - 验证安装:
python -c 'import tensorrt; print(tensorrt.__version__)' trtexec --help nvcc --version
常见报错与排查:libnvinfer.so 找不到,轮子的库目录不在动态库搜索路径里,把 site-packages 下的 tensorrt_libs 加进 LD_LIBRARY_PATH;CUDA driver version is insufficient for CUDA runtime version,驱动太旧,升级驱动或换成对应低版本 CUDA 的 TensorRT;ONNX 解析失败并提示 unsupported operator,算子不在支持列表,改导出方式、改图,或者写 plugin 补上;显存不足 / out of memory,减小 workspace、调小 opt 与 max shape,或者切到 FP16;engine 反序列化失败,多半是 engine 与当前 GPU 架构或 TensorRT 版本不匹配,必须在本机重新编译。

