歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Ubuntu 15.04 + CUDA7.5 + Caffe 配置筆記

Ubuntu 15.04 + CUDA7.5 + Caffe 配置筆記

日期:2017/3/1 11:44:37   编辑:關於Linux

一、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了....


磁盤管理: GPTor 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數據集測試


Copyright © Linux教程網 All Rights Reserved