MR WHY

I am
Wang Hongyang

Wechat Official Account
Find fun things here!

Torch7 安装 CuDNN 遇到 R4 not found 解决方法

最近装 CuDNN 的时候都会遇到这个报错:libcudnn(R4)not found in library path。本文是这个报错的解决方法。

1. 报错下方的错误说明


Please install CuDNN from http://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so.4 or libcudnn.4.dylib are placed in your library load path (for example /usr/local/lib, or manually add a path to LD-LIBRARY-PATH)

2. 完整的解决流程

  • 到官网 http://developer.nvidia.com/cuDNN 下载 CuDNN。注意虽然是免费下载,但是需要 NVIDIA 帐号,注册的话需要大概一天的时间通过申请,急用的朋友可以到百度云盘下载,这个是目前(2016 年 2 月 24 日)的最新版本 4007,但是更新很快,不赶时间的话还是到官网下载。

  • 添加 lib64 到路径:export LD_LIBRARY_PATH=/home/hywang/cudnn/lib64:${LD_LIBRARY_PATH}

  • 安装 Torch7:

curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; ./install.sh
  • 这个时候运行torch,require cudnn 应该是正常的。如果不成功,说明可能是 NVIDIA GPU 驱动安装得有问题,运行:/torch/install/luarocks make extra/cudnn

3. 报错原因和心酸血泪史

把完整的安装方法放到前面是因为切身体验过安装总是报错想砸键盘的感受。既然现在已经安好了,可以听我唠唠嗑,看看到底是为啥会报错,顺便看看我的血泪史,对比之下可以感受到人生的幸福。

报错的原因是:

使用 luarocks install cudnn 拉下来安装的版本是 4004,而现版本 Torch 要求的 CuDNN 版本是 4005 以上。

这一点是在反复试错过程中发现的。

首先分析报错后建议的解决方法:去官网下载 CuDNN。结果一去官网发现注册之后还要等审批,实在是没时间去耗。所以直接采取后面的方法:手动添加 libcudnn.so.4 / libcudnn.4.dylib 到 load 库的路径去。

蛋疼的是按理说添加了全局变量,load 的时候不是应该直接把这俩都读进去了吗?

仔细看过之后会发现,libcudnn.so.4 文件不存在,只有 libcudnn.so.4.0.4 和 libcudnn.so.4.bak。考虑添加索引指向它们:

ln -s libcudnn.so.4.0.4 libcudnn.so.4

之后再 require 'cudnn' 会接着报错:

搞了半天,还是说版本不够新啊 TAT 得,老老实实去官网下吧... 后来下载到最新版本 CuDNN ,安装 Torch 之后,require 依然找不到...

这个时候跪求实验室大佬,大佬说自从前段时间更新 GPU 驱动之后,遇到过这种坑爹的情况,所以才出现了上面第二个大标题的最后一条...

各位客官收好不谢~ 有问题随时在下面留言~

作者署名:Hongyang Wang, http://mr-why.com
遵守 Creative Commons BY-NC-ND 3.0的情况下自由转载


欢迎关注微信公众号 MRWHY,聊 WEB,聊 AI。

33

分享本文:

TOC