解决CuDNN runtime版本和编译版本不同的问题

本文介绍了一种常见的CuDNN版本不匹配错误,该错误发生在使用TensorFlow时,由于运行时CuDNN库版本与编译时指定版本不符。文章详细描述了解决方案,包括如何检查当前的软链接并进行相应的更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编译安装好TensorFlow后,可下载示例代码运行,但在执行run_all.sh时,出现如下错误。该错误意思就是CuDNN的runtime版本和编译时指定的版本不同。

2018-05-08 09:00:18.042137: E tensorflow/stream_executor/cuda/cuda_dnn.cc:448] Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.3.  CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.
2018-05-08 09:00:18.042768: F tensorflow/core/kernels/conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

我这里出现该问题的原因是在安装CuDNN 7.0.5时创建的软链接没有更改到7.1.3,可以通过如下命令查看软链接。

$ ll /usr/local/cuda/lib64/
...
lrwxrwxrwx  1 root root        13 127 12:25 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 127 12:25 libcudnn.so.7 -> libcudnn.so.7.0.5*
-rwxr-xr-x  1 root root 287624224 428 08:55 libcudnn.so.7.0.5*
-rwxr-xr-x  1 root root 331455744 428 08:55 libcudnn.so.7.1.3*
...

可以看到libcudnn.so.7指向libcudnn.so.7.0.5*,而非libcudnn.so.7.1.3*,因而解决方案可以是重新创建软链接

$ cd /usr/local/cuda/lib64
$ sudo rm libcudnn.so.7.0.5*
$ sudo chmod +r libcudnn.so.7.1.3
$ sudo ln -sf libcudnn.so.7.1.3 libcudnn.so.7
$ sudo ln -sf libcudnn.so.7 libcudnn.so
$ sudo ldconfig
$ ll
...
lrwxrwxrwx  1 root root        13 58 09:13 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 58 09:13 libcudnn.so.7 -> libcudnn.so.7.1.3*
-rwxr-xr-x  1 root root 331455744 428 08:55 libcudnn.so.7.1.3*
...
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值