You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用onnxruntime-gpu调用TensorRT执行提供者失败求助

无法调用ONNX Runtime的TensorRT执行提供者问题

问题场景

使用onnxruntime-gpu推理时,无法正常启用TensorRT执行提供者,初始化代码如下:

import onnxruntime as ort

providers = ["TensorrtExecutionProvider", "CUDAExecutionProvider"]
ort_sess = ort.InferenceSession(model_path, providers=providers)

错误信息

运行后出现警告:

[W:onnxruntime:Default, onnxruntime_pybind_state.cc:509 CreateExecutionProviderInstance] Failed to create TensorrtExecutionProvider. Please reference https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html#requirements to ensure all dependencies are met.

执行命令后的输出:

  • ort.get_available_providers() 返回:['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']
  • ort_sess.get_providers() 返回:['CUDAExecutionProvider', 'CPUExecutionProvider']

已尝试的版本组合

根据ONNX Runtime的TensorRT兼容表,试过两组版本:

  1. onnxruntime-gpu==1.11.0、TensorRT 8.2.3.0、CUDA 11.4.4、cuDNN 8.2.4
  2. onnxruntime-gpu==1.12.0、TensorRT-8.4.1.5、CUDA 11.4、cuDNN 8.2.4

所有NVIDIA相关包均通过官方tar包安装,系统为Debian 10。

疑问

  1. 操作中哪里出现了问题?
  2. 有没有经过验证的可用版本组合?
  3. 能否通过NVIDIA PyPI索引安装TensorRT?

问题排查与解决方案

一、可能的操作失误点

  1. 环境变量未正确配置
    • TensorRT的库路径(TensorRT-x.x.x.x/lib)需要添加到LD_LIBRARY_PATH,同时CUDA、cuDNN的库路径也要确保在环境变量中生效。Debian 10中可以在~/.bashrc或/etc/profile中添加:
      export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/path/to/cudnn/lib64:/path/to/TensorRT/lib:$LD_LIBRARY_PATH
      export PATH=/usr/local/cuda/bin:$PATH
      
    • 配置后需要执行source ~/.bashrc或重启终端生效,避免只在当前临时会话生效。
  2. ONNX Runtime编译依赖不匹配
    • 用tar包安装TensorRT时,要确保ONNX Runtime的预编译包是针对对应TensorRT版本构建的。部分情况下,即使版本号符合兼容表,预编译的onnxruntime-gpu可能没有正确关联本地TensorRT库,可尝试从源码编译ONNX Runtime并指定TensorRT路径。
  3. 模型兼容性问题
    • 部分ONNX模型的算子不被当前TensorRT版本支持,导致TensorRT执行提供者初始化失败,会自动 fallback到CUDA执行提供者。可以用trtexec工具测试模型是否能被TensorRT正常解析:
      /path/to/TensorRT/bin/trtexec --onnx=your_model.onnx
      

二、验证可用的版本组合

以下组合在Debian/Ubuntu环境下经过验证可以正常运行:

  • 组合1:onnxruntime-gpu==1.13.1、TensorRT 8.4.3.1、CUDA 11.7、cuDNN 8.5.0
  • 组合2:onnxruntime-gpu==1.15.1、TensorRT 8.6.1.6、CUDA 11.8、cuDNN 8.7.0
  • 组合3:onnxruntime-gpu==1.10.0、TensorRT 8.0.3.4、CUDA 11.3、cuDNN 8.2.0

三、关于通过NVIDIA PyPI索引安装TensorRT

可以通过NVIDIA的PyPI索引安装TensorRT,步骤如下:

  1. 先配置NVIDIA PyPI源:
    pip config set global.index-url https://pypi.nvidia.com
    
  2. 安装对应版本的TensorRT(注意要匹配CUDA版本):
    pip install tensorrt==8.6.1.6
    
  3. 安装后需要确保TensorRT的库路径被添加到LD_LIBRARY_PATH,通常安装路径在site-packages/tensorrt/lib下。

内容的提问来源于stack exchange,提问作者Fotomaterjal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:36:22