码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu 15.04 + CUDA7.5 + Caffe 配置笔记

时间:2016-07-03 19:30:35      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:

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编译也出错!!
       坑了2、3天终于找到了救星>>>>>  xuezhisdc.
       在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)

        这个简单,参见欧新宇 或xuezhisdc

七、其他依赖项

        这里主要是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 安装 & 编译

        Caffe下载,解压至Home目录下。
        如本文目录为:/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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!