ubuntu14.04 caffe

 

1.顯卡驅動

ubuntu nvidia 940mhtml

使用sudo ubuntu-drivers devices 查看推薦的驅動版本python

//sudo add-apt-repository ppa:mamarley/nvidia(已不能用了)linux

ppa已改成:sudo add-apt-repository ppa:graphics-drivers/ppagit

sudo apt-get updategithub

sudo apt-get install nvidia-358shell

rebootubuntu

 

2.安裝CUDA 6.5

 

chmod +x *.run
cuda6.5.run --extract=extract_path
sudo ./cuda-linux64-rel-6.5.14-18749181.run

添加環境變量

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

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

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

source /etc/profile

3.1.2 添加lib庫路徑框架

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

/usr/local/cuda-6.5/lib64

執行下列命令使之馬上生效

sudo ldconfig
 

NVIDIA CuDNN 安裝說明

CuDNN是專門針對Deep Learning框架設計的一套GPU計算加速方案,目前支持的DL庫包括Caffe,ConvNet, Torch7等。

CuDNN能夠在官網免費得到,註冊賬號後便可下載。官網沒有找到安裝說明,下載獲得的壓縮包內也沒有Readme. 不過google一下就會找到許多說明。基本原理是把lib文件加入到系統能找到的lib文件夾裏, 把頭文件加到系統能找到的include文件夾裏就能夠。這裏把他們加到CUDA的文件夾下(參考這裏

tar -xzvf cudnn-6.5-linux-R1.tgz cd cudnn-6.5-linux-R1 sudo cp lib* /usr/local/cuda/lib64/ sudo cp cudnn.h /usr/local/cuda/include/

執行後發現仍是找不到庫, 報錯

error while loading shared libraries: libcudnn.so.6.5: cannot open shared object file: No such file or directory

而lib文件夾是在系統路徑裏的,用ls -al發現是文件權限的問題,所以用下述命令先刪除軟鏈接

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6.5

而後修改文件權限,並建立新的軟鏈接

sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18 sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6.5 sudo ln -s libcudnn.so.6.5 libcudnn.so

 

 

 

3.安裝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

 會出現錯誤:

"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++ -I../../common/inc  -m64     -gencode arch=compute_11,code=compute_11 -o cudaProcessFrame.o -c cudaProcessFrame.cpp
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++ -I../../common/inc  -m64     -gencode arch=compute_11,code=compute_11 -o videoDecodeGL.o -c videoDecodeGL.cpp
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++   -m64       -gencode arch=compute_11,code=compute_11 -o cudaDecodeGL FrameQueue.o ImageGL.o VideoDecoder.o VideoParser.o VideoSource.o cudaModuleMgr.o cudaProcessFrame.o videoDecodeGL.o  -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-340" -lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW -lcuda -lcudart -lnvcuvid
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
/usr/bin/ld: cannot find -lnvcuvid
collect2: error: ld returned 1 exit status
make[1]: *** [cudaDecodeGL] 錯誤 1
由於咱們用的是nvidia-358.

cd /usr/local/cuda-6.5/samples

grep "nvidia-340" -r ./

將 UBUNTU_PKG_NAME = "nvidia-340" 換成UBUNTU_PKG_NAME = "nvidia-358"

 
sudo sed -i "s/nvidia-340/nvidia-358/g" `grep nvidia-340 -rl .`

 接着make

 貌似要開啓nvidia才能編譯過

 

所有編譯完成後, 進入 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

 

OpenCV LIBTIFF_4.0 link errors

之前用Caffe用的好好的,今天重裝後竟然報了不少這樣的錯誤

/usr/lib/libopencv_highgui.so.2.4: undefined reference to TIFFRGBAImageOK@LIBTIFF_4.0' 1> /usr/lib/libopencv_highgui.so.2.4: undefined reference toTIFFReadRGBAStrip@LIBTIFF_4.0'

貌似libtiff4-dev也是裝了的。重裝opencv也沒用,最後在這裏找到了解決方案:

http://answers.opencv.org/question/35642/libtiff_40-link-errors/

解決方法是在cmake時加入下面參數

-D BUILD_TIFF=ON

而後安裝最新版本 (當前爲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 安裝說明

相關文章
相關標籤/搜索