编译caffe遇到的问题汇总

博主记录了在编译Caffe过程中遇到的多个问题及其解决办法,包括core dumped错误、GCC版本过低、多卡环境下runtest报错以及CuDNN库的链接问题。通过更新库文件、修改配置和解决权限问题,成功解决了这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


2016.3.4更新

K80上一直忘记安装了cudnn,现在记录如下:
环境是cuda7.5,对应cudnn v3,即7.0。

解压之后,运行如下命令:
    $ sudo cp include/cudnn.h /usr/local/include  
    $ sudo cp lib64/libcudnn.* /usr/local/lib  
链接库文件:
    $ sudo ln -sf /usr/local/lib/libcudnn.so.7.0.64 /usr/local/lib/libcudnn.so.7.0  
    $ sudo ln -sf /usr/local/lib/libcudnn.so.7.0 /usr/local/lib/libcudnn.so  
    $ sudo ldconfig -v 
在caffe的MakeFile.config中打开CUDNN即可。

2016.1.26更新

K80来了一周了,为了大面积实验,再次安装caffe。好在现在可以在几小时内安装完成。想想去年这个时候,花了一周多时间搭建环境,还真是有毅力:)

问题描述

突然在编译caffe到最后一步时,出现了core dumped。但是runtest的所有测试均已通过,汗!报错如下:
这里写图片描述
我自己也是挺郁闷的。

原因

最终Google之后,发现问题的原因是:
由于上次使用了一个节省显存的方法,所以参见#2016 修改了文件,引起了这一个现象。

但后期的测试以及实验,并未发现大的问题。如有问题,再做记录。


2016.1.13更新

问题描述

在编译caffe最后一步:make runtest -j40 时,会出现如下错误:

$ make runtest -j40
.build_release/tools/caffe
.build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/anothergjy/Desktop/caffe-master-matlab-python-gpu02-251/
.build_release/tools/../lib/libcaffe.so)
.build_release/tools/caffe: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/lib/libopencv_highgui.so.2.4)
make: *** [runtest] Error 1

原因是版本太低。需要更高的版本。关于版本的查看可以用下面的命令:

$ strings libstdc++.so.6.0.18| strings /usr/lib64/libstdc++.so.6|grep GLIBCXX

解决办法

这里已经安装好了GCC-4.8.2,因此需要修改软连接即可。

  1. 需要连接的文件存在于gcc-build-4.8.2/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18下面。但需要注意的是src目录下的.lib文件夹是隐藏的,需要使用root权限才可以看到,将其复制到/usr/lib64/下。
  2. 接下来,就是要修改连接,让原本的libstdc++.so.6指向ibstdc++.so.6.0.18。
# cd /usr/lib64
# rm -r libstdc++.so.6
rm: remove symbolic link `libstdc++.so.6'? y
# ln -s libstdc++.so.6.0.18 libstdc++.so.6

再次查看版本结果如下:

# strings libstdc++.so.6.0.18| strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

可以看到最新版本已经到了3.4.19。


2016.1.11更新

问题描述

由于最新版的caffe支持多卡,因此,在编译过程中,如果检测到机器是多卡,便会在runtest阶段出现报错:

    The difference between XXX and XXX...

解决方法

对于这样的问题,只需要加入一行代码,export CUDA_VISIBLE_DEVICES=0

这样以来,runtest就可以顺利通过了。


2015.3.25 更新

问题

CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。

CuDNN可以在官网免费获得,注册帐号后即可下载。官网没有找到安装说明,下载得到的压缩包内也没有Readme. 不过google一下就会找到许多说明。基本原理是把lib文件加入到系统能找到的lib文件夹里, 把头文件加到系统能找到的include文件夹里就可以。这里把他们加到CUDA的文件夹下(参考这里

解决

$ tar -xzvf cudnn-6.5-linux-R1.tgz
$ cd cudnn-6.5-linux-R1
$ sudo cp lib* /usr/local/cuda/lib64/
$ sudo cp cudnn.h /usr/local/cuda/include/

执行后发现还是找不到库, 报错
error while loading shared libraries: libcudnn.so.6.5: cannot open shared object file: No such file or directory,而lib文件夹是在系统路径里的,用ls -al发现是文件权限的问题,因此用下述命令先删除软连接

$ cd /usr/local/cuda/lib64/
$ sudo rm -rf libcudnn.so libcudnn.so.6.5

然后修改文件权限,并创建新的软连接

$ sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18 
$ sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6.5
$ sudo ln -s libcudnn.so.6.5 libcudnn.so
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值