onnxruntime不能使用cuda的问题


记录一下onnxruntime的一个bug修复过程。

代码报错

FAIL : LoadLibrary failed with error 126 “” when trying to load “***\lib\site-packages\onnxruntime\capi\onnxruntime_providers_cuda.dll”
表现为代码仍然能跑,但是调用不了cuda,只能在cpu上跑。

解决办法

  1. 检查onnxruntime-gpu的版本是否正确,需要和cuda和cudnn版本对应上,具体参考https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html
  2. 若onnxruntime-gpu的版本没有问题,继续检查cuda是否正确安装。
nvcc -V

若没有版本信息输出,需要重新安装cuda。参考https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_network

  1. 检查cudnn是否正确安装。
    进入cuda安装路径,一般在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA。在include中查看是否存在cudnn相关的头文件,若没有,就去看看环境变量path中是否有关于cudnn相关的其他路径。如果还没有,则说明cudnn没有正确安装。
    如果确定已经安装了cudnn,找到cudnn的安装路径,将bin、include、和lib文件夹路径全部添加到path中。
    如果没有安装cudnn,则重新装一下,将bin、include、和lib文件夹路径全部添加到path中。

我的bug是因为cudnn没有正确安装造成的,上述方法可以解决。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐