Ubuntu14.10+cuda7.0+caffe配置

Ubuntu14.10+cuda7.0+caffe配置

一:linux安裝

Linux安裝不說了。我這裏安裝的是ubuntu14.10html

 

二:nVidia驅動和CUDA Toolkit的安裝和調試(*.run方法)

1: Verify You Have a CUDA-Capable GPUpython

運行如下的操做,而後驗證硬件支持GPU CUDA。僅僅要型號存在於https://developer.nvidia.com/cuda-gpus。就沒問題了linux

         $ lspci | grep -i nvidiagit

 

2: 、Verify You Have aSupported Version of Linuxgithub

         $ uname -m && cat /etc/*releaseubuntu

重點是「x86_64」這一項,保證是x86架構。64bit系統瀏覽器

 

3: Verify the System Has gcc Installed網絡

         $ gcc --version架構

沒有的話就先安裝吧,這個是必須的用來編譯CUDA Toolkit,只是Ubuntu 14.10是默認有的app

 

4: Download the NVIDIA CUDA Toolkit

下載地址:https://developer.nvidia.com/cuda-toolkit

驗證地址:https://developer.nvidia.com/rdp/cuda-rc-checksums

$ md5sum filename

好比:md5sum cuda_7.0.28_linux.run ,這個文件的正確 md5 =312aede1c3d1d3425c8aa67bbb7a55e

 

5: Handle Conflicting Installation Methods

依據官網介紹,以前安裝的版本號都會有衝突的嫌疑

因此,以前安裝的Toolkit和Drievers就得卸載,屏蔽。等等(因爲我是新系統。沒有安裝過nvidia驅動。因此此步可以省略)

         sudo apt-get --purge remove nvidia*

 

6: Graphical Interface Shutdown

退出GUI,也就是X-Win界面。操做方法是:同一時候按:CTRL+ALT+F1(F2-F6),切換到TTY1-6命令行模式。

關閉桌面服務:

$ sudo stop lightdm

 

7: Interaction with Nouveau

Nouveau是一個開源的顯卡驅動。Ubuntu14.04 默認安裝了,但是它會影響nVidia驅動的安裝,因此僅僅有請他回老家了,sorry!

         $ sudo vi /etc/modprobe.d/nvidia-graphics-drivers.conf

寫入:blacklist nouveau

保存並退出: wq!

檢查:$ cat nvidia-graphics-drivers.conf

$ sudo vi/etc/default/grub

末尾寫入:rdblacklist=nouveau nouveau.modeset=0

保存並退出: wq!

檢查:$ cat /etc/default/grub

 

8: Installation CUDA 7.0

切換到cuda_7.0.28_linux.run所在的文件夾。而後運行安裝命令:

         $ sudo sh cuda_7.0.28_linux.run

這裏會一路問你各類問題,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 事實上就是讓你接受協議。而後安裝的默認位置確認等等。recruit就別本身定義安裝位置了。默認纔是天堂。

運行完後出現下面結果:

 

Driver: Installed requirereboot

 

Toolkit: installskip

 

Samples: installskip

 

看到了嗎,這個CUDA安裝包其實包括了Driver,Toolkit和Samples三部分。第一次安裝時把驅動裝上了,僅僅只是要又一次啓動。又一次啓動了一下,仍是跟上面同樣,退出GUI。又一次運行下面命令:

 

         $ sudo sh cuda_7.0.28_linux.runsu

 

結果例如如下:

 

Driver:Installed

 

Toolkit: Installed in/usr/local/cuda-7.0

 

Samples: Installed in/home/caffe, butmissing recommended libraries

 

此次就成功安裝了,但是缺乏了一些推薦的庫。

 

9: Extra Libraries

安裝一些必要的庫文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, andGLX).

         $ sudo apt-get install freeglut3-dev build-essential libx11-devlibxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

 

10: 驅動裝完了,可以回到GUI界面了,也可以繼續留這裏玩文本。。

         $ sudo start lightdm

 

11:POST-INSTALLATIONACTIONS

(1)環境變量配置

運行sudo vi /etc/profile,在後面加上:

        exportPATH=/usr/local/cuda-6.5/bin:$PATH

        exportLD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

 

(2) Verify the Installation

a.驗證驅動的版本號,事實上主要是保證驅動程序已經安裝正常了

       $ cat /proc/driver/nvidia/version

b. Compiling the Examples

       $ nvcc -V

這裏安裝完。就可以編譯了。切換文件夾到~/NVIDIA_CUDA-7.0_Samples:

                  $ cd /home/username/NVIDIA_CUDA-7.0_Samples

                  $ make

這裏要等很是長時間。。

c. Running the Binaries

執行編譯好的文件,好比看看設備的基本信息和帶寬信息:

         $ cd bin/x86_64/linux/release 

         $ ./deviceQuery

         $ ./bandwidthTest

假設測試的時候出現說執行版驅動和實際驅動不符,緣由多是因爲後面安裝的nvidia-cuda-toolkit更新了配置文件,因此和原始的Cuda-Samples的配置或者是驅動程序有變化,因此檢測沒法編譯經過。考慮如下的解決方法:

a.卸載現有驅動

         $ sudo nvidia-installer --uninstall

b.下載合適版本號的驅動,並安裝:

下載地址:http://www.geforce.cn/drivers

         $ sudo sh ./NVIDIA-Linux-x86_65*.run

c. 重裝CUDA Toolkit

         $ sudo sh cuda-7.0

Nvidia Cuda安裝結束(這裏我推薦不要手動裝合適NVIDIA驅動。最好是卸載將上述過程再裝一遍。因爲手動裝有可能形成版本號不正確。到時桌面空白的問題-----我是重裝了系統。。。

。)

 

三:BLAS安裝與配置

1:BLAS安裝

這裏可以選擇(ATLAS。MKL或者OpenBLAS),我這裏使用MKL,首先下載並安裝英特爾® 數學內核庫 Linux* 版MKL,下載連接是:https://software.intel.com/en-us/intel-education-offerings。 請下載Student版。先申請,而後會馬上收到一個郵件(裏面有安裝序列號),打開照着下載便可了。下載完以後,要把文件解壓到home目錄(或直接把tar.gz文件複製到home目錄,爲了節省空間。安裝完記得把壓縮文件給刪除喔~),或者其它的ext4的文件系統中。

接下來是安裝過程,先受權,而後安裝:

         $ tar zxvf parallel_studio_xe_2015.tar.gz (假設你是直接拷貝壓縮文件過來的)

         $ chmod a+x parallel_studio_xe_2015 -R

         $ sudo ./install_GUI.sh

2:MKL與CUDA的環境設置

1. 新建intel_mkl.conf, 並編輯之:

         $ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf

         /opt/intel/lib/intel64

         /opt/intel/mkl/lib/intel64

2. 新建cuda.conf,並編輯之:

         $ sudo gedit /etc/ld.so.conf.d/cuda.conf

         /usr/local/cuda/lib64

         /lib

3. 完畢lib文件的連接操做,運行:

         $ sudo ldconfig –v

 

四.Opencv安裝

1. 下載並編譯OpenCV(官網原版OpenCV:http://opencv.org/), 或者使用本站提供的改動版的安裝包 Install-OpenCV-master(如下的安裝方式使用該包完畢,安裝包改動了dependencies.sh文件並添加了OpenCV 3.0.0的安裝文件,同一時候保留了原來的2.3x和2.4x版)

2. 切換到文件保存的目錄,而後安裝依賴項:

         $ sudo sh Ubuntu/dependencies.sh

3. 切換文件夾Ubuntu\3.0\安裝OpenCV3.0.0rc1:

         $ sudo sh opencv3_0_0-rc1.sh

保證網絡暢通,因爲軟件需要聯網這裏時間較長。請耐心等待。

。。

。時間很是長!

 

五:安裝其餘依賴項

1. Google Logging Library(glog),下載地址:https://code.google.com/p/google-glog/。而後解壓安裝:

         $ tar zxvf glog-0.3.3.tar.gz

         $ ./configure

         $ make

         $ sudo make install

假設沒有權限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777glog-0.3.3 -R , 裝完以後,這個目錄就可以kill了。

2. 其它依賴項,確保都成功

         $ sudo apt-get install -y libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

         $ sudo apt-get install -y libgflags-dev libgoogle-glog-devliblmdb-dev protobuf-compiler

 

六: 安裝Caffe並測試

1. 安裝pycaffe必須的一些依賴項:

         $ sudo apt-get install -y python-numpy python-scipypython-matplotlib python-sklearn python-skimage python-h5py python-protobufpython-leveldb python-networkx python-nose python-pandas python-gflags Cythonipython

         $ sudo apt-get install -y protobuf-c-compilerprotobuf-compiler

2. 安裝配置nVidia cuDNN 加速Caffe模型運算(咱們沒有安裝,因爲install.txt中說是針對CUDA6.5)

a. 安裝cuDNN

該改版本號caffe-master默認支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1會報錯,安裝前請去先官網下載最新的cuDNN。

         $ sudo cp cudnn.h /usr/local/include

         $ sudo cp libcudnn.so /usr/local/lib

         $ sudo cp libcudnn.so.6.5 /usr/local/lib

         $ sudo cp libcudnn.so.6.5.48 /usr/local/lib

b. 連接cuDNN的庫文件

         $ sudo ln -sf /usr/local/lib/libcudnn.so.6.5.48/usr/local/lib/libcudnn.so.6.5

         $ sudo ln -sf /usr/local/lib/libcudnn.so.6.5/usr/local/lib/libcudnn.so

         $ sudo ldconfig –v

 

3:切換到Caffe-master的目錄。生成Makefile.config配置文件。運行:

         $ cp Makefile.config.example Makefile.config

4:配置Makefile.config文件(僅列出改動部分)

a. 啓用CUDNN,去掉"#"(眼下caffe-master仍然僅僅支持R1版本號)

USE_CUDNN := 1

b. 啓用GPU,去掉凝視"#"

# CPU_ONLY := 1

c: 啓用Intel ParallelStudio XE 2015 Professional Edition for C++ Linux

BLAS := mkl

 

5: 配置Makefile文件(實現對OpenCV3.x的支持)

查找「Derive include and lib directories」一節,改動「LIBRARIES +=」的最後一行,添加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

 

6: 編譯caffe-master!

。!

"-j8"是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。

         $ make all -j8

         $ make test -j8

         $ make runtest -j8

建議:在make前。可以用以前的./bandwidthTest等命令測試驅動是否正常!

 

七:使用MNIST數據集進行測試

Caffe默認狀況會安裝在$CAFFE_ROOT,就是解壓到那個文件夾。好比:$ home/username/caffe-master,因此如下的工做。默認已經切換到了該工做文件夾。如下的工做主要是,用於測試Caffe是否工做正常。不作具體評估。

具體設置請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

 

1. 數據預處理

$ sudo shdata/mnist/get_mnist.sh

2. 重建lmdb文件。

Caffe支持三種數據格式輸入網絡,包含Image(.jpg, .png等),leveldb。lmdb。依據本身需要選擇不一樣輸入吧。

$sudo shexamples/mnist/create_mnist.sh

生成mnist-train-lmdb 和 mnist-train-lmdb目錄,這裏包括了lmdb格式的數據集

注:我運行此命令的時候報告說not in gzformat,後來發現是聯網下載的mnist數據有問題。而後我就去網上了下載了mnist數據集,後在ubuntu上手動解壓的,再運行後面的命令。

 

3. 訓練mnist

$ sudo shexamples/mnist/train_lenet.sh

至此,Caffe安裝的所有步驟完結,如下是一組簡單的數據對照。實驗來源於MNIST數據集,主要是考察一下不一樣系統下CPU和GPU的性能。可以看到明顯的區別了。儘管MNIST數據集很是easy,相信複雜得數據集,區別會更大,Ubuntu+GPU是惟一的選擇了。

測試平臺1i7-4770K/16G/GTX 770/CUDA 6.5

MNIST Windows8.1 on CPU620s

MNIST Windows8.1 on GPU190s

MNIST Ubuntu 14.04 on CPU270s

MNIST Ubuntu 14.04 on GPU160s

MNIST Ubuntu 14.04 on GPUwith cuDNN30s

Cifar10_full on GPUwihtout cuDNN73m45s = 4428s (Iteration 70000

Cifar10_full on GPU withcuDNN20m7s = 1207s (Iteration 70000

 

測試平臺2:技嘉P35X v3i7-4720HQ@2.6G/16G/NVidiaGTX 980 4G

MNIST Ubuntu 15.04 on GPUwith cuDNN33s

 

對照測試12*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4

MNIST CentOS 6.4 on GPU294s

對照測試2Tesla K40M/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN30s

對照測試3GTX 660/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN49s

對照試驗1是一個不太公平的測試,畢竟性能差很是大,很是可能不僅僅是由Tesla K20s 和GTX 770帶來的。也多是因爲CentOS或者是CUDA5.5(without cuDNN)的影響,但總體上的結論和Caffe官網的 reference performance numbers 一致。對於普通用戶:GTX的性價比高很是多。

對照試驗2展示了Tesla K40的強大性能,相信對於複雜圖像。它應該有更強勁的表現。

(感謝香港城市大學 Ph.D Jingjing、南京理工大學 Ph.D JinLu、華中科技大學 MS LiuMaolin 提供的測試環境和測試數據。)

假設不需要在python和matlab中使用caffe,則不需要安裝python和matlab

 

八:python安裝

1. 安裝IDE執行環境

選擇一個適合你的IDE執行環境。我是用的是Spyder,因爲它內置了 iPython 環境,Caffe有很多的程序是基於 iPython 環境完畢的。安裝方法很是easy,直接在Ubuntu軟件中心搜索「spyder」就能夠安裝。

2. iPython NoteBook 安裝

另一個比較推薦的方法是使用iPyhthon NoteBook(基於瀏覽器的Python IDE)。特別是適合需要用Python作教程的老師們。可以直接導出.py, .ipynb, html格式。安裝過程例如如下:

         $ sudo apt-get install -y ipython-notebook pandoc

啓動(本身主動打開瀏覽器):

         $ ipython nootbook

一個簡單的使用iPython NoteBook生成的html的樣例:examples_notebook.html example_notebook.ipynb

3: 環境配置

在Makefile.config文件裏配置caffe對python接口的支持

PYTHON_INCLUDE := /usr/include/python2.7 \

                   /usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_LIB := /usr/local/lib

 

INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib/usr/lib

4:在caffe-master文件夾下運行$ make pycaffe -j8編譯python

5:在/etc/profile中增長

export PYTHONPATH=/home/hadoop/caffe/caffe-master/python:$PYTHONPATH

這樣就可以在python中import caffe了。

九:matlab安裝

Matlab安裝,我沒實用到。也沒有安裝。若有需要的可以在網上找資料!

 

參考文獻:

1:官網 http://caffe.berkeleyvision.org/installation.html

2:https://ouxinyu.github.io/Blogs/20140723001.html歐新宇的博客

3:http://blog.sciencenet.cn/blog-1583812-841855.htmlUbuntu+CUDA6.5+Caffe安裝配置彙總

4:http://www.haodaima.net/art/2823705Caffe+Ubuntu14.04+CUDA6.5新手安裝配置指南

5:http://weibo.com/p/2304189db078090102vdvx

相關文章
相關標籤/搜索