Ubuntu14.10+cuda7.0+caffe配置

Ubuntu14.10+cuda7.0+caffe配置 html

一:linux安裝

Linux安裝不說了,我這裏安裝的是ubuntu14.10 python

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

1: Verify You Have a CUDA-Capable GPU linux

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

         $ lspci | grep -i nvidia github

2: 、Verify You Have aSupported Version of Linux ubuntu

         $ uname -m && cat /etc/*release 瀏覽器

重點是「x86_64」這一項,保證是x86架構,64bit系統 網絡

3: Verify the System Has gcc Installed 架構

         $ gcc --version app

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

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數據集很簡單,相信複雜得數據集,差異會更大,Ubuntu+GPU是惟一的選擇了。

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

MNIST Windows8.1 on CPU:620s

MNIST Windows8.1 on GPU:190s

MNIST Ubuntu 14.04 on CPU:270s

MNIST Ubuntu 14.04 on GPU:160s

MNIST Ubuntu 14.04 on GPUwith cuDNN:30s

Cifar10_full on GPUwihtout cuDNN:73m45s = 4428s (Iteration 70000)

Cifar10_full on GPU withcuDNN:20m7s = 1207s (Iteration 70000)

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

MNIST Ubuntu 15.04 on GPUwith cuDNN:33s

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

MNIST CentOS 6.4 on GPU:294s

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

MNIST on GPU with cuDNN:30s

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

MNIST on GPU with cuDNN:49s

對比試驗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 環境完成的。安裝方法很簡單,直接在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

相關文章
相關標籤/搜索