首頁 > 軟體

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 設定說明

2020-06-16 18:02:08

(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產生衝突。


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