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

在编译安装好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*
...

猜你喜欢

转载自blog.csdn.net/MacwinWin/article/details/80236111