Python OSError: symbol cublasLtHSHMatmulAlgoInit, version libcublasLt.so.11 not defined的解决

问题与排查

原报错信息如下:

OSError: /opt/conda/lib/python3.8/site-packages/nvidia/cublas/lib/libcublas.so.11: symbol cublasLtHSHMatmulAlgoInit, version libcublasLt.so.11 not defined in file libcublasLt.so.11 with link time reference

我之前的博客PaddleOCR报错也遇到过相似的问题,所以很明显就是一个找不到LD_LIBRARY_PATH路径的问题。
在这次这个问题里面,找不到的文件是libcublasLt.so.11,这个文件是被libcublas.so.11引用的,后者所在的路径通过报错信息给出。于是我们来到这个路径下检查有没有我们需要的文件:

$ ls /opt/conda/lib/python3.8/site-packages/nvidia/cublas/lib/
libcublasLt.so.11  libcublas.so.11  libnvblas.so.11

至此问题的解决方案已经清晰,加一下LD_LIBRARY_PATH路径即可。

解决

在启动终端后,运行程序前没,运行以下指令添加LD_LIBRARY_PATH路径:

export LD_LIBRARY_PATH=/opt/conda/lib/python3.8/site-packages/nvidia/cublas/lib/:$LD_LIBRARY_PATH

讨论

类似这类问题的产生原因都是cudnn的环境变化,如重装cudnn相关工具包等。所以每次通过conda或pip重装过cudnn的包之后,要警惕上述这类问题的发生。针对本文所述的问题,值得警惕的一点是:由于系统本身装了cuda/cudnn,我们可能在自己的python环境又装了cudatoolkit/nvidia-cudnn,所以相同的一个.so库文件,可能在我们的机器上存了好几个版本;在添加LD_LIBRARY_PATH路径的时候,我们一定要确定清楚具体要引用哪个路径。即使这几个版本是相同的,由于路径下其他库文件的不同,引用错误的路径可能会导致问题依然得不到解决。

关于通过conda或pip重装cudnn相关工具,可以参考我的这篇博客

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值