ubuntu安装/更新cudnn版本遇到的问题

之前因为复制cudnn.h的时候,cudnn的版本没有没有检测出来,——检测cudnn已经安装好版本的方法是:在caffe目录下,mkdir build,然后sudo cmake ..(注意这个是两个点),然后就会显示系统当中所有caffe需要的安装配置环境

因为cudnn.h没有替换好,所以需要将/usr/local/include下面的
cudnn.h还是原来的version4版本,而不是最新的cudnn version 6版本,因此会报错,说cudnn.hpp第100行报错,因为我的gpu是泰坦,所以满足nvidia 大于3.0的要求

 

替换一下之后接着再make runtest就可以了

 

安装cuDNN

下载cuDNN后解压

cd lib64

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

cd include

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


更新软链接

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.5

sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5

sudo ln -s libcudnn.so.5 libcudnn.so

若需要更换cudnn版本,则替换原来的libcudnn*,并重新软链接。

更新链接库:

sudo ldconfig

-------------------------------

遇到的问题:

报错

$/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接

$/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接

原因:

系统找的是一个符号连接,而不是一个文件。这应该是个bug....

解决方法:

1.对这两个文件更名

2.重新建立符号连接

 

$sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org

$sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org

$sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1

$sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

-----------------------------------------------

查看 CUDA 版本:

cat /usr/local/cuda/version.txt
  • 1

查看 CUDNN 版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

==============================================================

 

linux替换cudnn版本以及链接库碰到的问题

标签: cudalinux软链接cudnn

2016-10-06 23:20 5022人阅读 评论(0)收藏举报

分类:

Tensorflow(5)

作者同类文章X

linux(3)

作者同类文章X

版权声明:要转随便转,如果能加上原文的链接就感谢各位了。( ⊙ o ⊙ )

目录(?)[+]

  1. 总说
  2. 路径问题

总说

这篇博客主要是给自己看的。哎哎,他们在我电脑跑程序,一会儿他把cudnn换成5.0的,一会儿又被另一个换成3.0的,然而最近别人在我电脑编译的tensorflow是基于cudnn是5.1的,然而我现在的版本是5.0的,出现错误。

sudo tar -zxvf cudnn-7.5-linux-x64-v5.1.tgz
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/* /usr/local/cuda/lib64/
  • 1
  • 2
  • 3
  • 4

  • 1
  • 2
  • 3
  • 4

上面没什么好说的,就是把相应的文件cudnn.h文件和lib64文件夹下的链接库文件考入相应的位置呗。
注意:解压出来的lib64下面有3个so文件。分别是 libcudnn.so 和 libcudnn.so.5以及 libcudnn.so.5.1.3文件。 并且这3个点so文件大小都一样。其实都是软连接!libcudnn.so链接到libcudnn.so.5,而libcudnn.so.5.又链接到libcudnn.so.5.1.3。 正真的文件只有libcudnn.so.5.1.3,因此我们要将/usr/local/lib64下的以前的这样的链接替换掉。由于装cuda时,比如我装的是cuda8.0,那么在/usr/local/下会生成cuda-8.0文件夹,以及一个cuda文件夹,cuda是软链接到cuda-8.0的,所以这两个文件夹可以看成一个。往任意一个文件夹中添加东西,另一个文件夹都会有相同的东西。

cd /usr/local/cuda/lib64
ll
  • 1
  • 2

  • 1
  • 2

出现:

-rw-r--r-- 1 root root    720192  8月 16  2015 libcudart_static.a
lrwxrwxrwx 1 root root        15 10月  3 22:39 libcudnn.so -> libcudnn.so.5.0*
lrwxrwxrwx 1 root root        17 10月  4 18:34 libcudnn.so.5 -> libcudnn.so.5.0.
  • 1
  • 2
  • 3

  • 1
  • 2
  • 3

我们需要把以前的这3个文件删除。libcudnn.so和libcudnn.so.5以及libcudnn.so.5.0

sudo rm libcudnn.so.5 libcudnn.so.5.0*
sudo rm libcudnn.so
  • 1
  • 2

  • 1
  • 2

然后自己创建类似的链接。由于5.1已经被链接到了5.1.3上了。所以我们要删掉以前的.so文件,然后创建新的.so文件,并且链接到5.1上。

sudo ln -s libcudnn.so.5.1 libcudnn.so
ll
  • 1
  • 2

  • 1
  • 2

最后出现

lrwxrwxrwx 1 root root        15 10月  6 22:40 libcudnn.so -> libcudnn.so.5.1*
lrwxrwxrwx 1 root root        17 10月  6 22:40 libcudnn.so.5.1 -> libcudnn.so.5.1.3*
-rwxr-xr-x 1 root root  60696704 10月  6 22:37 libcudnn.so.5.1.3*
-rwxrwxrwx 1 root root  59715990 10月  6 22:37 libcudnn_static.a*
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
  • 2
  • 3
  • 4
  • 5

路径问题

这里写图片描述
由于某种原因,出现了这个问题。cudnn链接有问题,就知道要么是路径有问题了。查看了一下/usr/local/cuda,发现cudnn并没有链接上,所以按照上面的方法进行链接。
这里怎么说是找主文件夹下的torch/install/lib来找cudnn呢?
在前面安装torch时,有个选项说是否把这个路径LD_LIBRARY_PATH加入到.bashrc中。点了Yes。于是查看

vim ~/.bashrc
  • 1

  • 1

发现最后一行是

. /home/yan/torch/install/bin/torch-activate
  • 1

  • 1

那么接着找这个torch-activate

export LUA_PATH='/home/yan/.luarocks/share/lua/5.1/?.lua;/home/yan/.luarocks/share/lua/5.1/?/init.lua;/home/yan/torch/install/share/lua/5.1/?.lua;/home/yan/torch/install/share/lua/5.1/?/init.lua;./?.lua;/home/yan/torch/install/share/luajit-2.1.0-beta1/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua'
export LUA_CPATH='/home/yan/.luarocks/lib/lua/5.1/?.so;/home/yan/torch/install/lib/lua/5.1/?.so;./?.so;/usr/local/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so'
export PATH=/home/yan/torch/install/bin:$PATH
export LD_LIBRARY_PATH=/home/yan/torch/install/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=/home/yan/torch/install/lib:$DYLD_LIBRARY_PATH
export LUA_CPATH='/home/yan/torch/install/lib/?.so;'$LUA_CPATH
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

发现这里在原来的$LD_LIBRARY_PATH变量前面加入了/home/yan/torch/install/lib。那么按照类似的方法,简单粗暴的直接在.bashrc中加入cuda路径。

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
  • 1
  • 2

  • 1
  • 2

Tensorflow的官方文档中加入了extras/CUPTI/lib64的路径和/usr/local/cuda的。这个主要是有libcputi.so文件,如果不加的话会Couldn't open CUDA library libcupti.so
最后的最后干脆粗暴点,直接运行下面2句。

source ~/.bashrc
sudo ldconfig
  • 1
  • 2

  • 1
  • 2

这里写图片描述

1

0

 

 

  相关文章推荐

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值