【发布时间】:2022-08-22 15:40:27
【问题描述】:
我在使用TensorRT 执行提供程序进行onnxruntime-gpu 推理时遇到问题。我正在初始化session,如下所示:
import onnxruntime as ort
providers = [\"TensorrtExecutionProvider\", \"CUDAExecutionProvider\"]
ort_sess = ort.InferenceSession(model_path, providers=providers)
并收到此错误:
[W:onnxruntime:Default, onnxruntime_pybind_state.cc:509 CreateExecutionProviderInstance] 未能创建 TensorrtExecutionProvider。请参考https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html#requirements 以确保满足所有依赖项。
ort.get_available_providers()输出[\'TensorrtExecutionProvider\', \'CUDAExecutionProvider\', \'CPUExecutionProvider\']
和
ort_sess.get_providers()输出[\'CUDAExecutionProvider\', \'CPUExecutionProvider\']
我知道
error message指向version mismatch,但我没能做到正确。根据
onnxruntime TensorRT兼容性表,我必须具有以下组合之一(https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html):
ONNX Runtime TensorRT CUDA master 8.4 11.4 1.12 8.4 11.4 1.11 8.2 11.4 1.10 8.0 11.4 1.9 8.0 11.4 根据
CUDA要求表(https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements),我必须有以下组合之一:
ONNX Runtime CUDA cuDNN Notes 1.12, 1.11 11.4 8.2.4 (Linux), 8.2.2.26 (Windows) libcudart 11.4.43, libcufft 10.5.2.100, libcurand 10.2.5.120, libcublasLt 11.6.5.2, libcublas 11.6.5.2, libcudnn 8.2.4 我已经通过
Nvidiadocs 中的tar安装方法安装了所有NVIDIA-related packages。 这是我的版本:库达:
cat /usr/local/cuda/version.json:\"cuda\" : { \"name\" : \"CUDA SDK\", \"version\" : \"11.4.4\" }库德恩:
cat /usr/local/cuda/version.json:#define CUDNN_MAJOR 8 #define CUDNN_MINOR 2 #define CUDNN_PATCHLEVEL 4张量RT:
pip list | grep tensorrttensorrt 8.2.3.0我的 onnxruntime-gpu 版本是1.11.0因为上面的兼容性表。
我正在使用 TensorRT 版本 8.2.3.0,因为 (https://onnxruntime.ai/docs/build/eps.html#tensorrt)
ONNX 运行时的 TensorRT 执行提供程序是使用 TensorRT 8.2.3.0 构建和测试的。
但是,另一个页面说明了以下内容 (https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html):
ONNX 运行时的 TensorRT 执行提供程序是使用 TensorRT 8.4 构建和测试的。
所以我还尝试了另一个与 TensorRT 版本 TensorRT-8.4.1.5、onnxruntime-gpu==1.12.0、cuda-11.4、cudnn-8.2.4 的组合,但得到了同样的错误。
我正在使用 Debian 10。
我究竟做错了什么?有没有人确定版本匹配并可以分享版本组合?如果是这样,您是否还设法通过
nvidia pypiindex 安装了 tensorrt(这会让我感觉更舒服)?