歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明

日期:2017/2/28 14:02:21   编辑:Linux教程

(Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明,本文檔使用同一塊NVIDIA顯卡進行顯示與計算, 如分別使用不同的顯卡進行顯示和計算,則可能不適用。)

1. 安裝build-essentials

安裝開發所需要的一些基本包

sudo apt-get install build-essential

2. 安裝NVIDIA驅動 (3.4.0)

2.1 准備工作(2014-12-03更新)

在關閉桌面管理 lightdm 的情況下安裝驅動似乎可以實現Intel 核芯顯卡 來顯示 + NVIDIA 顯卡來計算。具體步驟如下:

1. 首先在BIOS設置裡選擇用Intel顯卡來顯示或作為主要顯示設備

2. 進入Ubuntu, 按 ctrl+alt+F1 進入tty, 登錄tty後輸入如下命令

sudo service lightdm stop

該命令會關閉lightdm。如果你使用 gdm或者其他的desktop manager, 請在安裝NVIDIA驅動前關閉他。

2.2 安裝驅動

輸入下列命令添加驅動源

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update

安裝340版驅動 (CUDA 6.5.14目前最高僅支持340版驅動, 343, 346版驅動暫不支持)

sudo apt-get install nvidia-340

安裝完成後, 繼續安裝下列包 (否則在運行sample時會報錯)

sudo apt-get install nvidia-340-uvm

安裝完成後 reboot.

3. 安裝CUDA 6.5

【點擊此鏈接】 下載CUDA 6.5.

然後通過下列命令, 將下載得到的.run文件解壓成三個文件, 分別為

  • CUDA安裝包: cuda-linux64-rel-6.5.14-18749181.run
  • NVIDIA驅動: NVIDIA-Linux-x86_64-340.29.run
  • SAMPLE包: cuda-samples-linux-6.5.14-18745345.run

這裡不安裝NVIDIA驅動

cuda6.5.run --extract=extract_path

注意, 需要通過下面命令給所有.run文件可執行權限

chmod +x *.run 

3.1 安裝CUDA

通過下列命令安裝CUDA, 按照說明一步一步安裝至完成.

sudo ./cuda-linux64-rel-6.5.14-18749181.run

3.1.1 添加環境變量

安裝完成後需要在/etc/profile中添加環境變量, 在文件最後添加:

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

保存後, 執行下列命令, 使環境變量立即生效

source /etc/profile

3.1.2 添加lib庫路徑

/etc/ld.so.conf.d/加入文件 cuda.conf, 內容如下

/usr/local/cuda-6.5/lib64

執行下列命令使之立刻生效

sudo ldconfig 

3.2 安裝CUDA SAMPLE

首先安裝下列依賴包

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev

然後用下述命令安裝sample文件

sudo ./cuda-samples-linux-6.5.14-18745345.run

完成後編譯Sample文件, 整個過程大概10分鐘左右

cd /usr/local/cuda-6.5/samples
sudo make

全部編譯完成後, 進入 samples/bin/x86_64/linux/release, sudo下運行deviceQuery

sudo ./deviceQuery

如果出現下列顯卡信息, 則驅動及顯卡安裝成功:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670"
  CUDA Driver Version / Runtime Version          6.5 / 6.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 4095 MBytes (4294246400 bytes)
  ( 7) Multiprocessors, (192) CUDA Cores/MP:     1344 CUDA Cores
  GPU Clock rate:                                1098 MHz (1.10 GHz)
  Memory Clock rate:                             3105 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result = PASS

4. 安裝Intel MKL

(如果沒有可以安裝OpenBLAS代替)解壓安裝包,下面有一個install_GUI.sh文件, 執行該文件,會出現圖形安裝界面,根據說明一步一步執行即可。

注意: 安裝完成後需要添加library路徑

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

在文件中添加內容

/opt/intel/lib
/opt/intel/mkl/lib/intel64

注意把路徑替換成自己的安裝路徑。 編輯完後執行

sudo ldconfig 

5. 安裝OpenCV

這個盡量不要手動安裝, Github上有人已經寫好了完整的安裝腳本:https://github.com/jayrambhia/Install-OpenCV

下載該腳本,進入Ubuntu/2.4 目錄, 給所有shell腳本加上可執行權限

chmod +x *.sh

然後安裝最新版本 (當前為2.4.9)

sudo ./opencv2_4_9.sh

腳本會自動安裝依賴項,下載安裝包,編譯並安裝OpenCV。整個過程大概半小時左右。

注意,中途可能會報錯

opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization

解決方法在此:http://code.opencv.org/issues/3814 下載 NCVPixelOperations.hpp 替換掉opencv2.4.9內的文件, 重新build。

6. 安裝其他依賴項

Ubuntu14.04用戶執行

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

其他版本用戶參考官方說明:http://caffe.berkeleyvision.org/installation.html

7. 安裝Caffe所需要的Python環境

首先安裝pip和python-dev (系統默認有python環境的, 不過我們需要的使python-dev)

sudo apt-get install python-dev python-pip

然後執行如下命令安裝編譯caffe python wrapper 所需要的額外包

for req in $(cat requirements.txt); do sudo pip install $req; done

在執行上述命令時, 會報錯導致不能完全安裝所有需要的包。 可以按照官方建議安裝anaconda包。 在anaconda官網下載.sh文件,執行,最後添加bin目錄到環境變量即可。

2014-12-03更新

建議安裝Anaconda包,這個包能獨立於系統自帶的python庫,並且提供大部分Caffe需要的科學運算Python庫。這裡需要注意,在運行Caffe時,可能會報一些找不到libxxx.so的錯誤,而用 locate libxxx.so命令發現已經安裝在anaconda中,這時首先想到的是在/etc/ld.so.conf.d/ 下面將 $your_anaconda_path/lib 加入 LD_LIBRARY_PATH中。 但是這樣做可能導致登出後無法再進入桌面!!!原因(猜測)可能是anaconda的lib中有些內容於系統自帶的lib產生沖突。

正確的做法是:為了不讓系統在啟動時就將anaconda/lib加入系統庫目錄,可以在用戶自己的~/.bashrc 中添加library path, 比如我就在最後添加了兩行

# add library path
LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

開啟另一個終端後即生效,並且重啟後能夠順利加載lightdm, 進入桌面環境。

8. 安裝MATLAB

Caffe提供了MATLAB接口, 有需要用MATLAB的同學可以額外安裝MATLAB。 安裝教程請自行搜索。

安裝完成後添加圖標 http://www.linuxidc.com/Linux/2011-01/31632.htm

sudo vi /usr/share/applications/Matlab.desktop

輸入以下內容

[Desktop Entry]
Type=Application
Name=Matlab
GenericName=Matlab 2010b
Comment=Matlab:The Language of Technical Computing
Exec=sh /usr/local/MATLAB/R2010b/bin/matlab -desktop
Icon=/usr/local/MATLAB/Matlab.png
Terminal=false
Categories=Development;Matlab; 

(I use the R2013b patched package. First you should uncompress the .iso file. Then use sudo cp to copy the patch file)

9. 編譯Caffe

終於完成了所有環境的配置,可以愉快的編譯Caffe了! 進入caffe根目錄, 首先復制一份Makefile.config

cp Makefile.config.example Makefile.config

然後修改裡面的內容,主要需要修改的參數包括

CPU_ONLY 是否只使用CPU模式,沒有GPU沒安裝CUDA的同學可以打開這個選項

BLAS (使用intel mkl還是OpenBLAS)

MATLAB_DIR 如果需要使用MATLAB wrapper的同學需要指定matlab的安裝路徑, 如我的路徑為 /usr/local/MATLAB/R2013b (注意該目錄下需要包含bin文件夾,bin文件夾裡應該包含mex二進制程序)

DEBUG 是否使用debug模式,打開此選項則可以在eclipse或者NSight中debug程序

完成設置後, 開始編譯

make all -j4
make test
make runtest

注意 -j4 是指使用幾個線程來同時編譯, 可以加快速度, j後面的數字可以根據CPU core的個數來決定, 我的CPU使4核, 所以-j4.

然後去尿個尿,喝杯茶, 回來就差不多編譯好了..

9.1. 編譯Matlab wrapper

執行如下命令

make matcaffe

然後就可以跑官方的matlab demo啦。

9.2. 編譯Python wrapper

 make pycaffe 

然後基本就全部安裝完拉.

接下來大家盡情地跑demo吧~

----------------------------------

10. 安裝cuDNN

為了加速Caffe,可以安裝cuDNN,參見這篇文章:NVIDIA CuDNN 安裝說明

Ubuntu 14.04 安裝配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm

Ubuntu 12.04配置NVIDIA CUDA5.5實錄 http://www.linuxidc.com/Linux/2014-10/107502.htm

Ubuntu安裝Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm

關於Ubuntu 12.04 下 CUDA5.5 的安裝請參看如下鏈接 Ubuntu 12.04 安裝 CUDA-5.5

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

Copyright © Linux教程網 All Rights Reserved