2021-05-12 14:32:11
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 設定說明
(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產生衝突。
相關文章