天天看點

caffe安裝 Ubuntu14.04 cuda 8.0 cudnn 5.1

第一部分,準備材料(NVIDIA官網下載下傳):

顯示卡驅動NVIDIA-Linux-x86_64-367.44.run

Cuda8.0cuda_8.0.27_linux.run

網址:https://developer.nvidia.com/cuda-downloads

Cudnncudnn-7.0-linux-x64-v4.0-prod.tgz

網址:https://developer.nvidia.com/cudnn

第二部分,安裝步驟

2.1系統安裝

系統選擇ubuntu14.04,下載下傳後ultrISO制作到U盤安裝,不細說了。關閉系統更新。

2.2、安裝依賴

安裝編譯工具:$sudo apt-get install build-essential # basic requirement

$sudo apt-get install cmake git

$sudo apt-get update    #update source

安裝依賴項: $sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

$sudo apt-get install --no-install-recommends libboost-all-dev

$sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

$sudo apt-get install python-numpy python-scipy python-matplotlib

2.3、禁用nouveau驅動

ALT+CTRL+F1,進指令行;

$sudo service lightdm stop

$sudo apt-get --purge remove nvidia-*

建立黑名單,禁止系統自帶驅動:$sudo vi /etc/modprobe.d/blacklist-nouveau.conf

輸入: blacklist nouveau

options nouveau modset=0

儲存推出(:wq)

然後執行:$sudo update-initramfs –u   #更新核心

執行 $lspci | grep nouveau,檢視是否有内容,沒有說明禁用成功,如果有内容,就$sudo reboot

重新開機:$sudo reboot

重新開機後,在登入界面,不要登入進桌面,直接ALT+CTRL+F1進指令行

2.4、安裝cuda8.0

進入cuda_8.0.27_linux.run所在目錄

$cd /home/smith/Downloads

$sudo chmod +x cuda_8.0.27_linux.run

$sudo ./cuda_8.0.27_linux.run

按q鍵退出RELU文檔,按照如下選擇,顯示卡驅動一定要選n,不裝

Do you accept the previously read EULA?

accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?

(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?

(y)es/(n)o/(q)uit: y

Enter Toolkit Location

[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?

Install the CUDA 8.0 Samples?

Enter CUDA Samples Location

[ default is /home/zhou ]:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …

完成後看到

Driver: Not Selected

Toolkit: Installed in /usr/local/cuda-8.0

Samples: Installed in /home/zhou, but missing recommended libraries

最後,配置環境變量,直接放在系統配置檔案profile裡面:

$sudo gedit /etc/profile

在最後面加入兩行代碼:

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

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

儲存退出.

執行:$sudo ldconfig

此時,顯示卡驅動沒裝,等待下一步顯示卡驅動裝好後檢查cuda8.0是否裝好。

關于解除安裝cuda:

$cd /usr/local/cuda-8.0/bin

$sudo ./uninstall_cuda_8.0.pl

2.5、顯示卡驅動安裝

進入顯示卡驅動目錄

$sudo su

$sudo ./NVIDIA-Linux-x86_64-367.44.run

一路按照提示選擇安裝,具體不記得了,主要有接受協定,在系統核心注冊,用新路徑注冊,更新X-server,安裝完成後會自動回到指令行

重新開機電腦:$sudo reboot

輸入密碼進入桌面

2.6、檢查之前的安裝

此時在home目錄下會出現檔案夾NVIDIA_CUDA-8.0_Samples,打開終端,進入該目錄:

$sudo make –j8  #編譯samples,我電腦8線程,全開編譯

等待2分鐘左右,編譯完成,執行下條指令:

$sudo ./1_Utilities/deviceQuery/deviceQuery

出現如下資訊,cuda8.0安裝成功(忘記截圖了,下面資訊是gtx670裝cuda6.5的)

./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 bdeclared as function returning an arrayytes  

 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

可以看到,最後出現了PASS,安裝cuda完成。

還可以:

$nvcc –version

檢視nvcc版本

$nvidia–smi

顯示(具體機子不一樣,這圖不是我的):

2.7、Atlas安裝

sudo apt-get install libatlas-base-dev

實際上這步在之前安裝依賴項時已經安裝過了。

2.8、cuDNN安裝

$tar -zxvf cudnn-7.0-linux-x64-v5.1-prod.tgz

$cd cuda

$sudo cp lib64/lib* /usr/local/cuda/lib64/  

$sudo cp include/cudnn.h /usr/local/cuda/include/

更新軟連接配接:

$cd /usr/local/cuda/lib64/

$sudo chmod +r libcudnn.so.5.1.5

$sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5

$sudo ln -sf libcudnn.so.5 libcudnn.so

更新設定:

$sudo ldconfig

2.9拉取caffe源碼

git clone https://github.com/BVLC/caffe.git

2.10.安裝python的pip和easy_install,友善安裝軟體包(超慢的下載下傳。。。)

$sudo wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py

$sudo python ez_setup.py --insecure

$wget https://bootstrap.pypa.io/get-pip.py

$sudo python get-pip.py

2.11.安裝python依賴(路徑根據自己的目錄可能要調一下)

$cd caffe/python

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

這步安裝也有點慢,别急,等會兒,先去幹點别的 ^_^(幹點别的回來還沒好。。。)

2.12.編輯caffe所需的Makefile檔案,配置

$cd caffe

$cp Makefile.config.example Makefile.config

$sudo gedit Makefile.config

$Makefile.config裡面有依賴庫的路徑,及各種編譯配置,取消USE_CUDNN := 1的注釋,開啟GPU,USE_LMDB := 1

配置運作環境,調用CUDA庫,在/etc/ld.so.conf.d目錄建立caffe.conf,

$sudo gedit /etc/ld.so.conf.d/caffe.conf

添加:

/usr/local/cuda/lib64

儲存退出,執行:

2.13、編譯caffe、pycaffe

進入caffe根目錄,

$sudo make –j4

測試一下結果,

$sudo make test –j4

$sudo make runtest –j4

(runtest中個别沒通過沒關系,不影響使用)

$sudo make pycaffe –j4

$sudo make distribute

第三部分,拿cifar10測試下效果

$cd /home/smith/caffe

$sudo sh data/cifar10/get_cifar10.sh  (腳本下載下傳速度太慢,找個迅雷下載下傳拷進來,再照腳本解壓)

# sudo sh examples/cifar10/create_cifar10.sh

# sudo sh examples/cifar10/train_quick.sh

下面,網絡開始初始化、訓練了,loss會開始下降,很快的就會出現優化完成。

PS:

1、嘗試了安裝opencv3.0.0,可惜失敗了,有部落格說是cuda8.0版本太新,不支援了,後面有時間再搞了。

2、Python出現import caffe出錯時,添加;

import sys

sys.path.append(“/home/smith/caffe/python”)

or: $export PYTHONPATH=$PYTHONPATH:/home/smith/caffe/python