Tensorflow 0.7.1搭配Cuda Toolkit 7.5和cuDNN 7.0

7
我最近尝试将我的Tensorflow安装从0.6升级到0.7.1(Ubuntu 15.10,Python 2.7),因为它被描述为与更现代的Cuda库兼容。一切运行良好,包括来自Tensorflow入门页面的简单测试。但是,我无法使用cuDNN。在运行使用cuDNN的程序时,我首先会收到一个警告:

“无法加载cuDNN DSO”

稍后程序崩溃。

I tensorflow/core/common_runtime/gpu/gpu_device.cc:717] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 980, pci bus id: 0000:01:00.0)
I tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:73] Allocating 3.30GiB bytes.
I tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:83] GPU 0 memory begins at 0x704a80000 extends to 0x7d80c8000
F tensorflow/stream_executor/cuda/cuda_dnn.cc:204] could not find cudnnCreate in cudnn DSO; dlerror: /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate

我下载了CUDA安装文件:
  • cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
  • cudnn-7.0-linux-x64-v4.0-prod.tgz
我按照Tensorflow入门页面上的说明进行操作,但是使用的是cuDNN 7.0而不是6.5。$LD_LIBRARY_PATH为"/usr/local/cuda/lib64"。
我不知道为什么找不到cudnnCreate函数。有没有成功安装这个配置并可以给我建议的人?

cuDNN 7.0?我以为最新的是5? - Martin Thoma
5个回答

8

当我忘记设置环境变量LD_LIBRARY_PATHCUDA_HOME时,会出现相同的错误:

导出LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64" 导出CUDA_HOME=/usr/local/cuda


在Ubuntu 16.04上,使用CUDA 8 / cuDNN 5.1非常顺利,谢谢。 - Goddard

1

0

jorgemf 发送的链接(谢谢)描述了 Python 3.5 的安装,我差点切换到 Python 3.5。

我的最后一次尝试是将 cuDNN 库再次复制到 /usr/local/cuda/lib64。

它奏效了!所以问题解决了,虽然我仍然不知道为什么会出现这个问题。


0

Windows 10用户的错误解决:

  • cuda网站 下载适用于Windows 10的cuDNN v5.1库,必要时进行注册。

  • 复制该zip归档中的cudnn64_5.dll (cuda\bin\cudnn64_5.dll) 到:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin\;

如果 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 是您的CUDA工具包的安装路径。


0

Ubuntu 14.04 && cudnnV5.0 && Cuda7.5

我遇到了一些错误,但是用另一种方法解决了它。 按照官方的入门页面,我使用以下命令安装了cudnn,基本上只是将这些文件复制到我们的cuda目录中。

https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#optional-install-cuda-gpus-on-linux

tar xvzf cudnn-7.5-linux-x64-v5.1-ga.tgz

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

但是,在执行完上述操作后,如果我们使用ll命令来显示"/usr/local/cuda/lib64"目录下的所有文件并与原始文件进行比较。

ll

看起来在复制后这些软链接已经断开了。

所以我删除了它们并手动创建了新的,像这样:

sudo rm libcudnn.so.5 libcudnn.so

sudo ln -sf libcudnn.so.5 libcudnn.so

sudo ln -sf libcudnn.so.5.1.3 libcudnn.so.5

之后,执行以下命令:

sudo ldconfig /usr/local/cuda/lib64

最终它终于工作了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接