實戰caffe-第一天 caffe+cuda6.5+cudnn6.5+opencv2.4.9+atlas的安裝

注:linux+caffe小白,以下文檔僅記錄學習點滴。網上有很多教程,一定要根據自己硬件條件選擇各個安裝包的版本,這一點非常重要。

1.NVIDIA顯卡安裝

主要參考:https://blog.csdn.net/luteresa/article/details/79555356

百試不爽的顯卡安裝教程,根據我自己的顯卡,安裝了NVIDIA-340驅動。

2.CUDA-6.5安裝

下載cuda6.5版本安裝包cuda_6.5.14_linux_64.run(建議所有安裝包都放在home目錄下,使用文本界面安裝,Ctrl+Alt+F1進入,--sudo service lightdm stop關閉圖形界面)。

(1)解壓sudo sh cuda_6.5.14_linux_64.run --extract=extract_path (extract_path爲自己的解壓路徑)。

解壓出來有三個文件:

  • 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

安裝*.run文件,sudo ./cuda_6.5.14_linux_64.run,默認安裝即可,accept+y+回車搞定。

(2)添加環境變量,cuda默認安裝在/usr/local/cuda-6.5中,所以

    sudo vi  /etc/profile

    a 或 i編輯,

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

    export PATH

    Esc+:wq 保存退出

    source /etc/profile 是環境變量立即生效。

添加lib庫路徑:

    sudo vi /etc/ld.so.conf.d/cuda.conf 

    在添加的cuda.conf文件中添加如下內容:/usr/local/cuda-6.5/lib64。保存退出

    執行 sudo ldconfig 使之立即生效。

(3)在安裝sample之前,安裝一些依賴庫。

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

(4)安裝*.sample文件

sudo ./cuda-samples-linux-6.5.14-18745345.run,同樣默認安裝。

之後編譯sample,cd /usr/local/cuda-6.5/samples 執行sudo make

大概會編譯一會,完成以後,進入 cd samples/bin/x86_64/linux/release,執行 sudo ./deviceQuery。

會出現顯卡的信息,即安裝成功。


大致效果如上圖。顯卡驅動已經安裝過了,不用重複安裝。

3.安裝ATLAS

有MKL、OpenBLAS、ATLAS可以選擇,我安裝的是ATLAS:sudo apt-get install libatlas-base-dev

4.安裝Opencv2.4.9

我是在官網下載的source安裝的。首先下載依賴包:

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config python-numpy python3.2-dev

媒體包可選擇安裝:

sudo apt-get install libavcodec-dev libavformat-devlibswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

解壓壓縮包:unzip opencv-2.4.9.zip

cd opencv-2.4.9

mkdir release

cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..

make

sudo make install

添加環境變量與lib庫路徑:

sudo gedit /etc/ld.so.conf

添加: /usr/local/lib

sudo ldconfig -v

sudo gedit /etc/profile

添加:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

在home目錄下編寫一個hello world的程序,包含#include<opencv2/core/core.hpp>頭文件

編譯:g++ -L  /usr/local/cuda-6.5/lib64 `pkg-config --cflags --libs opencv` hello.cpp -o hello

編譯運行成功,證明安裝成功。

可能會報錯:

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

下載 NCVPixelOperations.hpp 替換opencv-2.4.9/modules/gpu/src/nvidia/core中的NCVPixelOperations.hpp即可

5.安裝其他依賴項

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

6.安裝Caffe所需要python環境

我安裝的Anaconda

sudo bash ./Anaconda2-5.1.0-Linux-x86_64.sh

默認安裝之後,添加環境變量&lib路徑:

sudo gedit  etc/ld.so.conf

添加:/usr/usrname/anaconda2/bin  (usrname是自己的賬號名)

sudo  ldconfig

sudo gedit ~/.bashrc

添加:export LD_LIBRARY_PATH="/home/usrname/anaconda2/lib:$LD_LIBRARY_PATH"

測試:在終端輸入python,沒報錯即成功。

7.安裝Caffe的Python依賴庫

cd ~/caffe-master/python/

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

注:如果提示差什麼動態庫,apt-get install 安裝即可。

8.安裝Cudnn

(1)下載cudnn-6.5-linux-x64-v2,然後安裝:

解壓:sudo tar -zxvf cudnn-6.5-linux-x64-v2.tgz

cd cudnn-6.5-linux-x64-v2

將頭文件&動態庫拷貝到對應文件夾:

sudo cp lib* /usr/local/cuda-6.5/lib64/

sudo cp cudnn.h /usr/local/cuda-6.5/include/

(2)更新軟連接:

cd /usr/local/cuda-6.5/lib64/

sudo chmod +r libcudnn.so.6.5.48

sudo ln -s libcudnn.so.6.5.48 libcudnn.so.6.5

sudo ln -s libcudnn.so.6.5 libcudnn.so

9.編譯Caffe

cd ~/caffe-mater

sudo cp Makefile.config.emamples Makefile.config

修改該文件中幾個地方:

USE_CUDNN=1;

添加:-gencode arch=compute_50,code=compute_50     刪除50之後的東西。

PYTHON_LIB=$(ANACONDA_HOME)/lib

WITH_PYTHON_LIB:=1

這裏要根據自己安裝的環境更改,例如Python版本有2、3可以選擇,matlab安裝與否等等。


編譯命令:

make all

make test

make runtest


測試:python,import caffe,沒報錯就編譯成功了。以後就可以測試一下demo,然後開始編程了。

安裝caffe主要參考以下兩個博客:

https://www.cnblogs.com/YiXiaoZhou/p/6396674.html

http://www.cnblogs.com/platero/p/4118139.html

安裝時的疑問:

1. *-dev依賴包的下載,linux中有大量的*-devel與*-dev依賴包。*-devel開發包中主要包括一些頭文件和靜態鏈接庫。*-dev或者其他*.devel軟件一般都是C語言編寫的一些頭文件或cpp文件,往往是其他模塊或這我們自己寫的模塊在編譯時,需要依賴這些*-devel軟件包。

2. 在安裝cuda的時候,由於涉及到NVIDIA驅動的安裝,使得nouveau驅動與NVIDIA驅動衝突,爲了能夠繼續安裝,必須禁用此驅動。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章