标签:
Ubuntu 15.04 + CUDA7.5 + Caffe 配置笔记
一、Ubuntu 安装
安装Ubuntu 15.04x64 + Win7x64 双系统,让二者在启动引导上相互隔离, 删除Ubuntu时不至Win7躺枪,就必须讲究安装方法。
最最最简单的就是使用EasyBCD安装。这可以将Ubuntu的启动引导Grub2安装在其自己的boot分区,而Win7的启动引导则安装在C盘或其保留分区,相互不干扰,不存在用Ubuntu引导Win7启动的问题。 这个策略非常干净,不存在安装完Win7可见而Ubuntu不可见,或者正好相反的情况; 卸载也相互独立。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
那么,问题来了,如果你主板比较新,使用的是 "UFEI启动 + GPT磁盘" 这个组合,那么使用EasyBCD就有问题,如下所述.
问题始于,万恶的windows推出一个称之为UFEI的东东,美其名曰:大一统安全启动引导接口!!此接口位于主板和系统之间,用于启动时进行软硬件对接,即在主板上加载系统内核,以及向系统内核注册硬件。电脑一启动,操作系统必须向主板出示一个安全密钥,主板才会加载这个系统,可用于杜绝boot病毒,从Win8开始这个标准开始执行。。。 然而这就坑了Ubuntu等一大批Linux系统,因为这些系统必须向MS购买密钥。。。但是!!为了防止被诉垄断,微软要求所有主板厂商必须在提供UFEI的同时,提供传统的BISO启动。。。微软关上了一扇门,上帝打开了一扇窗
.,美帝的反垄断大法果然强。。。
因此,新型的主板上一般都能找到禁止UFEI,以及打开BIOS的办法,各家主板不一样。
本人的华硕Z170,进入高级设置,启动页面,打开CMOS选项设定为仅Legacy,打开安全选项设定操作系统为others。然后插上启动U盘,重启、启动选项里面彻底不见了UFEI字样,,说明UFEI被成功屏蔽!!
启动方式: UFEI or Legacy BIOS
不用UFEI的原因是,EasyBCD 2.3 目前还无法在ufei中注入Ubuntu的grub2启动,所以在UFEI引导下安装的Win7,当安装完EasyBCD后,软件会提示: 注意到你正在使用ufei,EasyBCD的许多特性都无法使用!而屏蔽ufei,在BIOS下重装win7之后,EasyBCD一切正常。这样后面安装ubuntu时,EasyBCD注入grub2才会生效。若用ufei就要用其他方式解决双系统隔离的问题,但百度之后发现都比较繁琐
。
不用UFEI的另一个好处时,不会在Win7的保留分区内额外生成一个ufei文件夹,从而可以用diskgnius为win7的这个保留分区分配盘符使其可见,激活win7就十分Easy了....
磁盘管理: GPT or MBR
GPT可以管理大于1.8T以上的磁盘,MBR不行,所以单盘超限的另寻解决办法。
用Win7光盘在裸机上装完系统之后,启动方式+磁盘管理 都被默认处理为 UFEI+GPT 这样的组合。因此,在上主板上屏蔽掉UFEI之后,进入Win7,打开DISKGENIUS转换各盘为MBR。但注意:不能直接转换系统所在的C盘,因为会导致系统引导丢失,还有可能整坏硬盘。解决办法是“腾笼换鸟”,在另一个已经转换为MBR的空闲盘上用硬盘安装的方式再安装一个Win7上去,然后重启进入这个新系统;再用DISK转换原来的系统C盘为MBR,再用硬盘安装方法在C上装Win7,装完之后进入C盘Win7,删掉掉刚才空闲盘的那个Win7。。。
在非系统盘上用DISK转换GPT为MBR时,不会格式化磁盘,所以数据仍然在。。
之所以要转换成MBR是因为装Ubuntu出问题,啥问题忘了,不转换应该也有解决办法。。
OK! 这样就得到了 BIOS启动 + MBR磁盘 + Win7×64系统 的经典组合!!可以开始安装 Ubuntu了。。。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下载Ubuntu 15.04 64位
下载UltraISO制作启动U盘
在Win7某盘下压缩出 300G~500G 空间,不新建分区、使其空闲
重启进入BIOS,选择U盘启动
开始安装》》。。。网上教程很多
分区:/ 90G~120G , /boot 200M~400M , swap 内存大小左右 ,/home 剩余
分区顺序按此方式、且全部设定为逻辑分区,其他方式也可但发现容易出问题........
注意::分区完成之后,安装开始之前,切记要在下方的启动器安装选项上,手动选择,将启动器安装到你的上述boot分区中,否则默认的话就是用ubuntu引导win7了....
另外::若需重装ubuntu的时候,要进入Win7重新格式化该盘,删除分区,使其空闲。进入Ububtu安装,改变上述分区的相对大小,不然ubuntu会一直卡在 ...creating ext4 ... 安装不下去
另外::若上述办法还是继续卡在creating ext4上,则在Win7下重新格式化该区,并预先分好4个区的大小,进入Ubuntu安装界面后,将四个对应分区挂载上去即可,可顺利安装......
最好选择英文安装,方便安装caffe相关软件时路径全英文,进入之后再安装中文包和fcitx中文输入法....
最好断开网络安装,否则会下载语言包和更新/.///
等待安装完成,系统提示:重启电脑
重启之后会直接进入Win7,这时打开EasyBCD,在刚才的boot目录上添加linux的gub2启动。
OK !!
重启之后,界面出现系统选择 ......... 进入ubuntu ..................
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
进入系统之后,
设定root用户密码,
修改apt-get源为阿里云,
关掉自动推送的系统更新,
语言设置中安装中文包,
软件中心中安装fcitx输入法,
开始caffe安装 。。。
二、CUDA 安装
CUDA 安装会出各种奇妙问题,显卡、系统各不一样,所以虽然问题的表现形式一样,但解决办法可能不一样,因为硬件层面不一致,软件层面的解决办法就很难统一。但基本都可以百度到。
2.1 关闭xWindow
安装cuda的同时会安装显卡驱动,因此要进入ubuntu的纯字符界面才行 。
方法是 ctrl + alt + F1进入tty1,C+A+F7又可却换回xWindow。
进入tty1之后,登录,输入init 3,此时就进入纯字符界面的tty1了。
可以按CAF7验证,此时打不开xWindow了,说明关闭成功。
再按CAF1切换回tty1即可。
在tty1中输入startx ,这时会再次恢复启动xWinow。 按CAF7即可进入。
网上有用stop lightdm关闭xWindow的,但是需要自己生成和修改xorg文件,ubuntu15.04安装完默认是没有这玩意的。比较麻烦,参考好多博客,没弄成,非常不适合linux新手。
还有用stop gdm的,这个是相对于lightdm另一套xWindow,现在不流行了,所以默认没安装上,需要自己 apt-get install gdm,然后从lightdm切换到gdm。然后在 gdm stop, 来关闭xWIndow,这个的好处是不用修改xorg文件。
这个地方会遇到各种奇葩问题,电脑不同,问题不同,可能解决办法也不同。
1. 进入tty1黑屏,返回xWindow无碍
本人的GTX970和TITANX显卡,都出现这个问题,百度了一天,窗口分辨率的问题。
成功的办法是修改grub文件,如下操作:
重启进入系统,窗口分辨率大幅下降,说明此法奏效了。
然后 CAF1进入tty1,黑屏消失!出现字符登录界面!
按CAF7又可切换回xWindow! 按CAF1又可切换回tty1! OK!
在tty1登录,输入 init 3,即可关闭 xWindows!
此时系统会自动切换到CAF7,但并不显示xWindow,只显示一个版本号。
只需再CAF1,即可返回tty1。 可以看到tty1窗口显示提示,已经向内核成功注册这个字符界面!
验证一下,sudo gedit /etc/defaul/grub 会提示无法打开屏幕,通道关闭之类的,说明xWindow确实关闭啦!
但这个时候,在tty1中输入 startx时,却又无法开启xWindow了 #……%……%##
目前无解,办法就是先不用startx,直接重启可正常登录,并再次按上述流程关闭xWindow !
----------进入tty1,并关闭xWindow后,才开始真正进入油意义的第一步!! 安装cuda!----------------------
2.2 安装cuda 7.5
关于是否要先独立安装nvidia驱动的问题,本人尝试几次重装都失败了,无法打开内核什么的。。
因此直接cuda走起。。。
安装过程中要编译,因此先对gcc和g++进行降级,至-4.7版本, 一开始就降级可以让全部软件包的安装都比较一致。降级方法参见欧新宇。
预先下载并拷贝cuda7.5_linux_64_deb安装包到home下。
cd ~
sudo dpkg -i install cuda_xxx.deb
sudo apt-get update
sudo apt-get install -y cuda
等待安装完成 》》》》 重启:sudo reboot!
配置cuda bin目录和lib目录,以及安装cuda samples 参见Fight Boy。
三、Matlab 安装
下载Matlab_linux_x64, 这个安装方法及配置比较一致,参见
欧新宇 或 Fight Boy
网上找的链接: http://pan.baidu.com/s/1c0jaEek 密码: cjvg
四、MKL 安装
MKL2016下载参见欧新宇 博客,注意MKL虽然一个邮箱可以连续申请注册码,但时只能安装一次。
重装ubuntu后,再次安装MKL2016的办法是,先装2015版本,到输入注册吗那一步时,不要输入直接退出安装程序。然后再启动2016版本的安装,并填写重新申请的注册码。 误打误装发现的,不包过……&×%&¥¥
如果没有MKL,就安装默认的 altas !
五、OpenCV安装
OpenCV大部分使用 Install_OpenCV_Master这个方法,但这个安装过程比较混乱,各种依赖包装了卸、卸了装,反反复复好几次,而且装完之后与ffmpeg这个包有关的地方全部报错,导致OpenCV安装不完整,后面的caffe编译也出错!!
在Home下新建OpenCV的目录,再新建5个文档, 拷贝救星给出的各个shell到这几个文档中保存。
把OpenCV拷贝到 /usr/local目录下,(与cuda和matlab看齐,好看好管理×××),,开始安装。
本文是cuda7.5,所以使用比较新的 opencv3.0与之搭配,不容易出莫名奇妙的bug××××
依次运行 1 2 3 4 5 五个shell ........直到安装完成,且无bug报错!
六、Python安装
Python的各种包被其他软件广泛依赖,所以在安装这些软件的时候可能已经安装过了,而且经常同一个包的版本还不太一致。这导致非常混乱。
安装前面 opencv的时候就需要 numpy 和 scipy,在那里已经安装过了!
安装后面 caffe的时候还会被再次当作依赖项安装一遍,但apt-get的好处是能够统一处理,所以只要不特别混乱,这种依赖关系就交给apt-get自动处理。
安装Pyhton主要是为caffe的pycaffe接口提供一个python环境,所以集中放到这里安装比较好。
$ sudo apt-get install -y python-numpy python-scipy
python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
安装完成后,大部分都会提示 scuceessfly installing xxx...., python-pandas 貌似有个小错,但不影响,因此先不管了。。。直接继续后面!
也可使用官方推荐的 anncoda,这个对python 各版本、以及第三方包提供集中管理,并且集中了IPython Spyder等IDE 环境!
七、安装Google Logging Lbinary (glog)
七、其他依赖项
这里主要是caffe用到的一些小软件:
protobuf leveldb lmdb snappy opencv boost hdf5 gflag google-glog
$ sudo apt-get install -y build-essential # basic requirement
$ sudo apt-get install -ylibprotobuf-dev
libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev
libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
protobuf-c-compiler #caffe requirment
七、Caffe 安装 & 编译
如本文目录为:/home/xx/caffe-master 。xx为用户名,home目录默认为当前用户打开。
7.1 更新依赖项
进入根目录的 python文件夹,执行如下命令:
cd /home/xx/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done
可以打开 python/requirements.txt , 里面绝大部分依赖包其实与上面是重复的,因此上面那里可以删掉在此处安装。或者把这个文件中的补充到上面去。或者覆盖安装也可以,apt-get会自动处理,本文直接覆盖安装了。
7.2 配置Makefile.config
此文件中全部都是关于 CUDA cudnn BLAS Matlab python hdf5 opencv 这7个部分之 include bin lib 的路径信息。
CUDA & Matlab 默认安装,位于/usr/local
BLAS(mkl) 也默认安装,位于/opt/intel
hdf5 默认安装,位于/usr/lib/x86_64-linux-gnu
OpenCV不论安装到哪里,最后都会链接到 usr/local/lib目录下。建议也在 usr/local目录下安装。
Python 系统默认自带,但目录到处都有,不用管了。
前面在安装完上述软件后,都已立即对其路径信息进行了配置,现总览如下:
xx@oo:/etc/ld.so.conf.d$ ls
另外 etc/profile 环境变量如下:
xx@oo:sudo less /etc/profile
现在即可按照上述信息配置Makefile.config
cd ~/caffer-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
1. 去注释 USE_CUDNN=1
2. 加注释 # CPU_ONLY:=1
3. 修改BLAS BLAS=mkl
4. 配置caffe对Python和Matlab接口的支持
PYTHON_LIB
:=/usr/local/lib
MATLAB_DIR
:=/usr/local/MATLAB/R2014a
5.补充hdf5路径,红色部分
INCLUDE_DIRS
:= $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS
:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
6. 启用OpenCV3.0.0 OPENCV_VERSION=3
7. 使用OpenCV3.x需要额外修改 Makefile文件
在Makefile文件中查找“Derive include and lib directories”一节,
修改“LIBRARIES +=”的最后一行,增加 opencv_imgcodecs,
修改之后为: LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
7.3 编译caffe
make all -j8
make test -j8
make runtest -j8
7.4 编译pycaffe & matcaffe
make pycaffe -j8
make matcaffe -j8
编译完成之后,需设置python环境变量,将caffe/python路径添加到python环境变量中,caffe相当于一个包对Python可见。
xx@oo:~$ sudo gedit /etc/profile
PYTHONPATH=/home/xx/caffe-master/python:$PYTHONPATH export PYTHONPATH
最后的profile如下:
PATH=/usr/local/cuda/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
export LD_ LIBRARY_PATH
PYTHONPATH=/home/xx/caffe-master/python:$PYTHONPATH
export PYTHONPATH
八、Mnist数据集测试
参见欧新宇 博客!
Ubuntu 15.04 + CUDA7.5 + Caffe 配置笔记
标签:
原文地址:http://blog.csdn.net/zhjm07054115/article/details/51811495