caffe配置折腾记
---ubuntu14.04+cuda7.0+caffe配置
先说结论,经过无数次的尝试,无数次的重装系统,caffe环境配好了。
声明:由于电脑配置不同,个人操作不同,版本不同,环境因素不同,(人不能踏进同一条河流)不保证本教程一定能解决遇到的问题,但是仅以本人遇到的问题进行一个总结,望给大家提供一些参考价值。
电脑配置:
ubuntu14.04LTS 64bit + win10双系统
8G内存
显卡:Nvidia GTX 860M
CPU: i7
软件:
cuda7.0(14.04)
openCV2.4.10
caffe直接从github下载
stage1:
win10+VS2013配置,参考了国内外的一些教程,单独编译成功所有文件,看着熟悉而喜爱的c++代码还挺带感挺开心的,在signal的一个文件中有一个变量(signup)一直报错,打开头文件发现这个变量在windows中是没有定义的,是linux里的一个变量,瞬间有点想转linux。不过既然别的都已经编译成功了,就先改了那个变量然后编译通过,最后直接编译整个项目发现错误百出,遂放弃!(建议大家直接去ubuntu)
stage2:
ubuntu14.04LTS+cuda7.5;
问题一:说到ubuntu14.04 的安装,有一个grub引导的问题。我装的是双系统,装完ubuntu之后开机之后直接进入了windows,没有引导项出现。
解决方案:使用boot-repair工具。具体步骤如下,
(1)
sudo add-apt-repository ppa:yannubuntu/boot-repair
(2)
sudo apt-get update
(3)
sudo apt-get install boot-repair
(4)运行boot-repair
boot-repair
(5)点击Recommended repair,完成之后grub引导就有了
主要参考的是http://blog.csdn.net/ubunfans/article/details/47724341和https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0,一切都很顺利,没有什么问题,主要是等的时间比较长,并且测试了mnist数据集,一切都很顺利,很happy,然后...然后...然后,reboot,就这样,问题开始了,直接卡在系统加载的界面上!!!
问题二:装完cuda之后,重启停在ubuntu加载界面上
原因分析:显卡的optimus问题;现在一般的电脑都是 双显卡,一般的显示直接通过intel的核显就可以了,但是涉及到大量的计算或者渲染的话就必须要通过独显了。系统在安装完nvida显卡驱动后会报这样一个错,acpi pcc probe failed,原因是nvida官方的显卡驱动对ubuntu支持不好,不能进入系统是因为cuda的opengl库与系统的文件冲突。
解决方案:
1.对于bios能够设置显卡显示方式的设备,可直接在bios中调节显卡为自动切换方式即OK(实验室师兄已配置成功,华硕主板);
2.对于bios不能设置显卡的设备,比如我,就需要麻烦些了,可以安装Bumblebee(Bumblebee是一个linux下类似于optimus的自动调节显卡的第三方软件,一般的可以用Intel的核显,计算多的程序就开N卡计算);步骤如下:
(1)安装一些必要的软件包,
sudo apt-get install build-essential
(2) 卸载nvida相关的东西,
sudo apt-get remove --purge nvidia*
(
3)安装bumblebee,
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia
(4)重启,
sudo reboot
重启之后,通过
lspci | grep -i nvidia
可以查看到现在N卡已经关闭(rev ff)。
(5)安装一些库,
sudo apt-geti nstall freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glxlibglu1-mesalibglu1-mesa-dev
(6)加入blacklist,
sudo gedit /etc/modprobe.d/blacklist
<pre name="code" class="plain">blacklist vga16fb
blacklist nouveau
option nouveau modeset=0
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
sudo apt-get remove --purge nvidia*
(
6)切换到tty模式,Ctrl+Alt F1,输入用户名和密码,关闭图形界面,
sudo service lightdm stop
(
7)进入cuda所在的文件夹下,
chmod +x cuda_7.0.28_linux.run
sudo bash cuda-7.0.28_linux.run --no-opengl-libs
然后选择accept和yes就好了,装完sudo reboot cuda就装好了。
注:一定不要装opengl-libs,一定不要装opengl-libs,一定不要装opengl-libs,否则会一直在登陆界面循环!!!
(8)继续余下的步骤就OK了。
问题三:某次重装系统后,重启一直循环跳进bios;
解决方案:在bios的模式设置从UEFI(新式的bios)设置为Legacy(传统的bios),具体原因不明。
主要的问题就是卡在解决显卡自动切换上了,试了很多很多的方法都是不行的,对比下现在的解决方案,那些解决的方法都是不完整的,也因为这个重装了很多次很多次的系统。
总结:
现在对这次的caffe配置进行一个归纳和总结,给出一些tips:
1. 面对一次又一次的失败,不要害怕,重新出发就好;
2.对于程序员来说,重装系统并不算什么,关键是要对重要文件做好相应的备份,我这次配置过程搞奔了一次系统,重装了两个系统,重装了无数次的ubuntu;
3.安装cuda的过程中,同一个文件对不同的设备安装的情况可能会不一样,对同一个设备在不同的时间也有可能会安装失败,因此多试几次就好,Do not be afriad,还有就是,尽量用本地文件安装,deb不行就事实run,多试几次总会成功的;
4.网上的信息总是杂乱的,很多的东西并不是很完整,需要自己对这些信息进行筛选消化,理解问题所在,进行自己的再创造;
5.不要一味的鄙视baidu,baidu和google结合着用;6.学会交流,不要给自己太大的压力,适当的放松减压;
7.当一个程序员真是不容易,bug总是在路上=_=
参考:
[1]https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0
[2]http://blog.csdn.net/ubunfans/article/details/47724341