libcudnn (R5) not found in library path
2024-08-31 13:44:14
环境:Ubuntu 18.04 + Torch7 + cuda10
在运行使用cudnn的lua程序的时候产生错误:
/home/majiabiao/torch/install/bin/luajit: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua:: 'libcudnn (R5) not found in library path.
Please install CuDNN from https://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so. or libcudnn..dylib are placed in
your library load path (for example /usr/local/lib , or manually add a path to LD_LIBRARY_PATH) Alternatively, set the path to libcudnn.so. or libcudnn..dylib
to the environment variable CUDNN_PATH and rerun torch.
For example: export CUDNN_PATH="/usr/local/cuda/lib64/libcudnn.so.5" stack traceback:
[C]: in function 'error'
/home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: in function 'require'
test.lua:: in main chunk
[C]: in function 'dofile'
...biao/torch/install/lib/luarocks/rocks/trepl/scm-/bin/th:: in main chunk
[C]: at 0x555bad5c4570
去我安装的cuda文件夹下查看:/usr/local/cuda-10.1/lib64,发现没有 libcudnn.so.5 or libcudnn.5.dylib而是libcudnn.so.7 libcudnn.so.7.5.0
根据错误信息查看文件/home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua
local libnames = {'libcudnn.so.5', 'libcudnn.5.dylib', 'cudnn64_5.dll'}
local ok = false
for i=,#libnames do
ok = pcall(function () cudnn.C = ffi.load(libnames[i]) end)
if ok then break; end
end if not ok then
将'libcudnn.so.5', 'libcudnn.5.dylib'修改为'libcudnn.so.7', 'libcudnn.7.dylib'结果变为以下错误
/home/majiabiao/torch/install/bin/luajit: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua:: These bindings are for CUDNN .x ( <= cudnn.version > ) , while the loaded CuDNN is version:
Are you using an older or newer version of CuDNN?
stack traceback:
[C]: in function 'error'
/home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: in function 'require'
test.lua:: in main chunk
[C]: in function 'dofile'
...biao/torch/install/lib/luarocks/rocks/trepl/scm-/bin/th:: in main chunk
[C]: at 0x561e50b7e570
那么之前那个找不到libcudnn.so.5 or libcudnn.5.dylib的错误的原因是不兼容某些版本的cudnn,只兼容5005到6000之间的版本
那么如果使用的是不兼容版本的cudnn,那么就在现有cuda的基础上更改cudnn的版本,只需要替换一些文件
去nvidia官网下载将要使用的版本的cudnn,解压出来的文件夹cuda中有两个文件夹include和lib64
#删除原有版本的cudnn(注意你的文件夹是否是这个路径)
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
#将下载好的新的版本的cudnn文件放到刚才删除的文件所在位置:
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
#cd到/usr/local/cuda/lib64/文件夹下,建立软链接(注意版本号换成你自己的)
sudo chmod +r libcudnn.so.5.0.
sudo ln -sf libcudnn.so.5.0. libcudnn.so.
sudo ln -sf libcudnn.so. libcudnn.so
sudo ldconfig
之后就可以了
最新文章
- java编程思想-java中的并发(一)
- iOS应用架构谈(二):View层的组织和调用方案(中)
- DOM基础2
- ABAP RFC远程调用
- tomcat web.xml配置
- 如何修改linux系统主机名称
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-012-AOP总结
- win8下在microsoft visual studio 2012利用ODP.NET连接ORACLE 12c
- html系列教程--base button canvas caption
- redis 设置分布式锁要避免死锁
- Kali学习笔记27:Burpsuite(上)
- LeetCode(64):最小路径和
- svn加锁设置
- Base64图片编码原理,base64图片工具介绍,图片在线转换Base64
- android Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
- Chapter 7 面向对象分析
- C# 通过反射获取方法/类上的自定义特性
- 文件上传控件asp:FileUpload
- 使用TypeScript拓展你自己的VSCode
- Codeforces 311E Biologist