type
status
date
slug
summary
tags
category
icon
password
简单记录一下最近使用onnxruntime-gpu时遇到的报错问题。
在模型计算时,出现报错信息
无法使用”CUDAExecutionProvider”进行计算加速,自动回退至”CPUExecutionProvider”。虽然回退后能够正常使用,但是存在报错信息,且无法使用CUDA加速。
网络上的排查方向主要有以下几点:
- onnxruntime版本与CUDA、cuDNN版本不兼容。
- cuDNN安装、配置、权限有问题。
onnxruntime文档中有runtime版本与CUDA、cuDNN版本的兼容关系,经检查,环境中onnxruntime版本为`1.20.1`,CUDA版本为`12.2`,cuDNN版本为`9.2.0`,不存在版本兼容性问题。
在排查cuDNN安装问题,`/usr/local/cuda/lib64`中存在相关链接库,`$LD_LIBRARY_PATH`环境变量中也配置了该路径,文件权限为`775`。
排查到这已经有点摸不着头脑了,因为pytorch的CUDA加速是可以正常使用的。
这时候突然发现,怎么`/usr/local/cuda/lib64`里下半截的链接库有软连接,上半截都是独立的文件……
以`libcudnn_adv.so`为例,它应该是一个指向`libcudnn_adv.so.9`的软连接,而`libcudnn_adv.so.9`应该指向`libcudnn_adv.so.9.2.0`,即`libcudnn_adv.so → libcudnn_adv.so.9 → libcudnn_adv.so.9.2.0`。
然而环境中cuDNN相关链接库不是软连接,而是相同的文件复制了3份。重新构建软连接后问题解决。
- 作者:TerraceCN
- 链接:https://blog.terrace.ink/article/1a466a79-691a-801a-804c-c3ad526124af
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。