首頁 > 軟體

Caffe + Ubuntu 15.04(16.04) + CUDA 7.5(8) 安裝設定入門指南

2020-06-16 17:19:39

(更新所有軟體到最新版)

特別說明:
0. Caffe 官網地址:http://caffe.berkeleyvision.org/
1. 本文為作者親自實驗完成,但僅限用於學術交流使用,使用本指南造成的任何不良後果由使用者自行承擔,與本文作者無關,謝謝!為保證及時更新,轉載請標明出處,謝謝!
2. 本文使用2016年9月27日下載的caffe-master版本,執行平台為:Ubuntu 15.04/16.04,CUDA7.5/8,cuDNN v5.1,Intel Parallel Studio XE Cluster 2016,OpenCV 3.1.0, Matlab 2014a/2016a
3. 為了方便大家使用,我提供一個百度雲盤,用於分享部分安裝過程中需要用到的軟體包和連結地址(所有軟體包僅供學術交流使用,請大家盡量去官網下載, Matlab 百度雲禁止分享,抱歉欠奉。)。百度雲盤連結: 連結: http://pan.baidu.com/s/1gfp8ud1 密碼: rzwh4.

最後更新時間:2016年9月27日。

版本說明:
關於 GCC 和 G++ 版本問題 
   Matlab 2014a gcc/g++ 4.7.x, Matlab 2016a gcc/g++ 4.9.x
   Ubuntu 15.04 gcc/g++ 4.9.x, Ubuntu 16.04 gcc/g++ 5.4.x
   原則上Matlab需要和Ubuntu版本一致,由於CUDA 8只支援16.04,而且需要GCC 5.4.x 進行編譯,而CUDA 7.5不支援 Ubuntu 16.04 因此Matlab會有一些奇葩,有時按照降級(或強制安裝)的方法可以正常使用,有時卻會報錯,懷疑和顯示卡驅動有關。
   因此,為了避免麻煩,建議:
   1. 不使用Matlab,可以考慮Ubutnu16.04 + CUDA8
   2. 使用Matlab,考慮Ubuntu15.04 + CUDA7.5 + Matlab X(GCC/G++根據Matlab版本自行匹配)
   下面仍然以Ubuntu 15.04 + CUDA 7.5 + Matlab 2014a 為例.

本文主要包含5個部分,包括:
- 第一部分 Linux安裝
- 第二部分 nVidia CUDA Toolkit的安裝(*.deb方法)
- 第三部分 Matlab 的安裝
- 第四部分 Caffe-Master的安裝和測試

第一部分 Linux安裝

我的分割區設定如下:
根分割區: 100G,
Swap交換分割區:128G(等於記憶體大小) ,小於16G的記憶體,就設定成記憶體的1.5-2倍
boot分割區:200M
Home分割區:剩餘的空間,多多益善
PS:解決啟動分割區錯誤

裝雙系統需要先安裝Windows 再安裝Ubuntu。如果遇到啟動分割區表損壞,需要還原Windows分割區:

$ sudo gedit etc/default/grub
設定:GRUB_DEFAULT = 2
$ sudo update-grub

第二部分:nVidia CUDA Toolkit的安裝(*.deb方法)

1. 安裝 CUDA Toolkit

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

$ sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64
$ sudo apt-get update
$ sudo apt-get install -y cuda

2. 安裝 nVidia cuDNN library (cudnn-7.5-linux-x64-v5.1)

官方下載地址:https://developer.nvidia.com/cudnn

$ tar zxvf cudnn-7.5-linux-x64-v5.1.tgz
$ cd cuda
$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib
$ sudo ln -sf /usr/local/lib/libcudnn.so.5.1.3 /usr/local/lib/libcudnn.so.5
$ sudo ln -sf /usr/local/lib/libcudnn.so.5 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v

(可選)3. 處理ubuntu 16.04 GCC版本過高,編譯Caffe-master報錯問題

$ sudo gedit /usr/local/cuda/include/host_config.h
搜尋:
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
修改為:
//#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!

第三部分 Matlab安裝和偵錯(以Matlab 2014a為例)

1.下載
由於該軟體為商業軟體,請大家自行尋找,安裝學習,並確保不使用做商業目的,下載24小時刪除……
2.預準備
將Mathworks.Matlab.R2014a.Unix.iso - 右鍵 - 使用磁碟映像掛載器開啟”,進入裝載的虛擬光碟,拷貝全部檔案至home/Matlab 資料夾(PS:取名不要有空格)

複製Crack/install.jar至 home/Matlab/Java/jar/ 並覆蓋原始檔

$ sudo cp install.jar /home/Matlab/java/jar/
$ chmod a+x Matlab -R
$ sudo ./install 

選項:不使用Internet安裝
序列號: 12345-67890-12345-67890
預設路徑:/usr/local/MATLAB/R2014a
勾選從預設啟動路徑建立符號連結(實現在任意位置執行matlab啟動程式)
啟用檔案:license_405329_R2014a.lic
拷貝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64

$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/

5.解決編譯器gcc/g++版本問題。
因為Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla呼叫mex檔案的時候,基本上都會報錯,根據報錯資訊,考慮如下兩步解決方案。
A. 降級安裝gcc/g++版本為4.7.x

$ sudo apt-get install -y gcc-4.7 g++-4.7
$ cd /usr/bin
$ sudo mv gcc gcc-4.9.2
$ sudo ln -s gcc-4.7 gcc
$ sudo mv g++ g++-4.9.2
$ sudo ln -s g++-4.7 g++

B. 暴力參照新版本GLIBCXX_3.4.20

$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20
$ cd /usr/local/MATLAB/R2014a/sys/os/glnxa64
$ sudo mv libstdc++.so.6 libstdc++.so.6.backup
$ sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6
$ sudo ldconfig -v

通過命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已經成功包含了GLIBCXX_3.4.21,如果已經存在,基本上就成功了。

第四部分 Caffe-Master的安裝和測試

一. 安裝BLAS
這裡可以選擇(ATLAS,MKL或者OpenBLAS),我這裡使用MKL,因為它最快。首先下載並安裝英特爾® 數學核心庫 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下載連結是:https://software.intel.com/en-us/qualify-for-free-software/student, 使用學生身份(郵件 + 學校)下載Student版,填好各種資訊,可以直接下載,同時會給你一個郵件告知序列號。下載完之後,要把檔案解壓到home資料夾(注意任何一級資料夾不能包含空格,否則安裝會失敗)

$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷貝壓縮檔案過來的)
$ chmod a+x parallel_studio_xe_2016 -R
$ sh install_GUI.sh

PS: 安裝的時候,建議使用root許可權安裝,過程中會要求輸入Linux的root口令。(設定方法:命令列:$ sudo passwd)

二. 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 3.1.0
1.下載並編譯OpenCV(官網原版OpenCV:http://opencv.org/), 或者使用我提供的修改版的安裝包(前面的百度雲下載)(下面的安裝方式使用該包完成,安裝包修改了dependencies.sh檔案並增加了OpenCV 3.0.0的安裝檔案)
2.切換到檔案儲存的資料夾,然後安裝依賴項和OpenCV:

$ sudo sh Ubuntu/dependencies.sh
$ sudo sh Ubuntu/3.0/opencv3_0_0.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 777 glog-0.3.3 -R , 裝完之後,這個資料夾就可以kill了。

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

$ sudo apt-get install -y libprotobuf-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 protobuf-compiler 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

五、安裝Caffe並測試
1.切換到Caffe-master的資料夾,生成Makefile.config組態檔,執行:

$ cp Makefile.config.example Makefile.config

4.設定Makefile.config檔案(僅列出修改部分)
a. 啟用CUDNN,去掉”#”

USE_CUDNN := 1

b. 設定一些參照檔案(增加部分主要是解決新版本下,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

c. 啟用Intel Parallel Studio XE 2016

BLAS := mkl

d. 設定路徑,實現caffe對Python和Matlab介面的支援

PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a

c. 啟用OpenCV 3.0, 去掉”#”

OPENCV_VERSION =3

6.編譯caffe-master!!!”-j16”是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。

$ make all -j16
$ make test -j16
$ make runtest -j16
$ make pycaffe -j16
$ make matcaffe -j16

六. 使用MNIST資料集進行測試
Caffe預設情況會安裝在 Caffe-master,就是解壓到那個目錄,例如:$ home/username/caffe-master,所以下面的工作,預設已經切換到了該工作目錄。下面的工作主要是,用於測試Caffe是否工作正常,不做詳細評估。具體設定請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1.資料預處理

$ sh data/mnist/get_mnist.sh

2.重建lmdb檔案。Caffe支援多種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據自己需要選擇不同輸入吧。

$ sh examples/mnist/create_mnist.sh

生成mnist-train-lmdb 和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集

3.訓練mnist

$ sh examples/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 GPU with cuDNN:30s
Cifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)
Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000
測試平台2:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 8G
MNIST Ubuntu 15.04 on GPU with cuDNN:33s
測試平台3:Dell 7910,E5 2623v3 3.0G *2 /128G/ NVidia Titan X 12G
MNIST Ubuntu 15.04 on GPU with cuDNN:23s (真是逆天啊!)
對比測試12*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 提供的測試環境和測試資料。)

Ubuntu 15.04 下Caffe + + CUDA 7.0 安裝設定指南  http://www.linuxidc.com/Linux/2016-11/137497.htm

Caffe 深度學習入門教學  http://www.linuxidc.com/Linux/2016-11/136774.htm

Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝 http://www.linuxidc.com/Linux/2016-07/132860.htm

Ubuntu 16.04系統下CUDA7.5設定Caffe教學 http://www.linuxidc.com/Linux/2016-07/132859.htm

Caffe在Ubuntu 14.04 64bit 下的安裝 http://www.linuxidc.com/Linux/2015-07/120449.htm

深度學習框架Caffe在Ubuntu下編譯安裝  http://www.linuxidc.com/Linux/2016-07/133225.htm

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 設定說明  http://www.linuxidc.com/Linux/2015-04/116444.htm

Ubuntu 16.04上安裝Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm

Caffe設定簡明教學 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 )  http://www.linuxidc.com/Linux/2016-09/135016.htm

Ubuntu 16.04上安裝Caffe(CPU only)  http://www.linuxidc.com/Linux/2016-09/135034.htm


IT145.com E-mail:sddin#qq.com