Ubuntu16.04 安裝顯卡驅動+cuda8.0+cudnn-v6+opecv2.4.13+caffe

轉載網址:https://blog.csdn.net/ytusdc/article/details/77978511

折騰了將近一週時間,caffe終於安裝成功。中間遇到很多坑,系統也重裝好幾次,一步步終於把caffe環境搭建成功了。

一、說明

系統環境是Ubuntu16.04_x64

二、安裝顯卡驅動

1、在NVIDIA 官網根據條件選擇下載最新的驅動即可 http://www.geforce.cn/drivers 
驅動下載完成後最好使用將驅動複製到Home目錄下,方便後面的操作 
終端進入驅動所在的路徑(也可以手動複製)

sudo cp  NVIDIA-Linux-x86_64-384.69.run  /路徑名/複製後的名字 #
  • 1

(將驅動複製到路徑/home/下,並且重新命名爲a.run,重新命名是方便在非圖形化界面安裝時的命令輸入) 
2、禁用自帶的 nouveau nvidia驅動 (important!) 
參考鏈接 http://blog.csdn.net/u012581999/article/details/52433609

sudo apt-get purge nvidia*   //卸載原有的nvidia驅動,新系統不需要
  • 1

創建一個文件通過命令

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
  • 1

並添加如下內容:

blacklist nouveau
options nouveau modeset=0
  • 1
  • 2

用下面命令,更新一下文件

sudo update-initramfs -u
  • 1

修改後需要重啓系統。確認下Nouveau是已經被你幹掉, 
使用命令:lsmod | grep nouveau 
如果nouveau禁用成功該命令執行後沒有顯示,否則該命令後會顯示nouveau 的相關信息(可以禁用之前用該命令查看nouveau的相關信息)。 
3.開始安裝 
先按Ctrl + Alt + F1到控制檯,首先輸入用戶名和密碼登錄,然後關閉當前圖形環境,通過下面的命令。

sudo service lightdm stop
  • 1

查看顯卡驅動的全名(如果顯卡驅動名字很長,沒記住的話)

cd 目錄名   //進入到顯卡驅動所在目錄
ls         //列出/home下的所有文件和文件夾
  • 1
  • 2

再安裝驅動程序

sudo sh NVIDIA-Linux-x86_64-xxx.run  //sh--是顯示安裝過程
  • 1

然後根據提示完成驅動安裝。 
安裝完成後,重新啓動圖形環境

sudo service lightdm start
  • 1

重啓系統後,執行下面的命令查看驅動的安裝狀態

sudo nvidia-smi
sudo nvidia-settings
  • 1
  • 2

出現下圖所示內容,表示安裝成功 
這裏寫圖片描述

這裏寫圖片描述

或者下面的命令查看顯卡驅動

cat /proc/driver/nvidia/version
  • 1

如下圖 
這裏寫圖片描述

4、有可能出現的問題 
(1) 、Ubuntu 系統循環登錄問題,可能原因是驅動安裝失敗。 
解決辦法:重新進入到控制檯界面,關閉圖形顯示後卸載剛纔安裝的驅動程序 
命令:

sudo sh NVIDIA-Linux-x86_64-xxx.run  --uninstall
  • 1

(2) 、顯卡驅動安裝成功,各個測試命令都沒問題,但是,Ubuntu顯示不正常。 
原因是顯卡使用了轉接頭(自己因爲這個問題折騰了兩天(我是顯卡用DVI轉VGA後連接的顯示器)),顯卡驅動反覆重裝,通過命令顯示安裝成功,但是就是顯示有問題!!!這是坑啊),連接顯示器的視頻線用直連線就可以。

三、配置安裝cuda8.0##

在英偉達官網 https://developer.nvidia.com/cuda-downloads ,根據自己的機器下載最新版的cuda,如下圖 
以前版本地址:https://developer.nvidia.com/cuda-toolkit-archive 
這裏寫圖片描述 
注意這裏下載的是cuda8.0的runfile(local)文件。 
這裏是nvidia給出的官方安裝指南(遇到問題時可以查閱): 
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt

參考鏈接: 
http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%BB%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE-ubuntu-16-04-nvidia-gtx-1080-cuda-8

1、gcc/g++版本 
cuda8.0安裝前要進行gcc版本降級,參考我寫的另一篇文章,鏈接 
http://blog.csdn.net/ytusdc/article/details/77980915 
注意:我在安裝過程中,沒有進行降級,caffe環境配置成功,可能是最新版本的cuda能夠支持高版本的gcc/g++ 
2、安裝cuda8.0 
(跟安裝顯卡驅動過程類似,把文件複製到/home 目錄下) 
1、在你的用戶登錄界面按ctrl+alt+F1進入tty模式 
關閉圖形界面

sudo service lightdm stop
  • 1

cd切換到下載的文件目錄下進行安裝:

sudo sh cuda_8.0.44_linux.run
  • 1

啓動安裝程序,一直按空格到最後 
注意:執行後會有一系列提示讓你確認,但是注意,有個讓你選擇是否安裝nvidia驅動時,一定要選擇否: 
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62? 
此處一定選擇否 
因爲前面我們已經安裝了更加新的nvidia367,所以這裏不要選擇安裝。其餘的都直接默認或者選擇是即可。

大概有以下選項 
輸入accept接受條款 
輸入n不安裝nvidia圖像驅動,之前已經安裝過了 
輸入y安裝cuda 8.0工具 
回車確認cuda默認安裝路徑:/usr/local/cuda-8.0 
輸入y安裝CUDA 8.0 Samples,以便後面測試 
回車確認CUDA 8.0 Samples默認安裝路徑,該安裝路徑測試完可以刪除

安裝成功後會出現如下界面:

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3、cuda安裝後配置 
安裝完畢後,再聲明一下環境變量,並將其寫入到 ~/.bashrc 的尾部:

打開~/.bashrc文件

sudo gedit ~/.bashrc
  • 1

將以下內容寫入到~/.bashrc尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
  • 1
  • 2

4、測試cuda的Samples

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make    //該命令首次執行即可
sudo ./deviceQuery
  • 1
  • 2
  • 3

執行完之後出現下圖 
這裏寫圖片描述
如果顯示的是一些關於GPU的信息,則說明安裝成功了。

四、安裝cudnn-v6

參考鏈接:http://www.h3399.cn/201705/86033.html 
參考鏈接:http://blog.csdn.net/qq_25073253/article/details/72571714 
下載cudnn相應版本. 
以前版本:https://developer.nvidia.com/rdp/cudnn-download 
cd到下載的文件目錄下,解壓:

tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz 
  • 1

解壓後,在當前目錄下產生一個cuda目錄

cd cuda/include/ 
sudo cp cudnn.h /usr/local/cuda/include/  #複製頭文件 
cd ../lib64    #打開lib64目錄 
sudo cp lib* /usr/local/cuda/lib64/    #複製庫文件 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*    #給所有用戶增加這些文件的讀權限 
  • 1
  • 2
  • 3
  • 4
  • 5

建立軟連接 
在終端輸入

cd /usr/local/cuda/lib64/     #進入到lib64目錄進行操做
sudo rm -rf libcudnn.so libcudnn.so.6 #刪除原有動態文件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 #生成軟銜接
sudo ln -s libcudnn.so.6 libcudnn.so #生成軟鏈接
  • 1
  • 2
  • 3
  • 4

注意此處的 libcudnn.so.6.0.21、libcudnn.so.6 都是根據cudnn解壓之後的文件定的,我用的是cudnn-8.0-linux-x64-v6 的所以此處是libcudnn.so.6.0.21、libcudnn.so.6 
安裝完成後可用 nvcc -V 命令驗證是否安裝成功,若出現以下信息則表示安裝成功 
這裏寫圖片描述

五、安裝opencv2.4.13

參考鏈接:http://blog.csdn.net/sinat_17196995/article/details/53466524 
預安裝一些軟件和庫等

sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev 
  • 1

opencv可以通過下面兩個鏈接下載 
https://github.com/Itseez/opencv/archive/2.4.13.zip 
http://opencv.org/releases.html

解壓壓縮包,然後放到/home/ —普通用戶的默認目錄,在該目錄下,每個用戶擁有一個以用戶名命名的文件夾的目錄下

cd opencv-2.4.13    #進入opencv文件夾
mkdir build         #新建一個文件夾用於存放臨時文件
cd build            #切換到該臨時文件夾
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  #開始編譯
make -j4            #編譯,開啓線程 按照自己的配置
sudo make install   #編譯成功後安裝,此處用sudo,因爲要在/usr/local路   
#徑下創建相關文件,必須root權限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

安裝完成後通過查看 opencv 版本驗證是否安裝成功:

pkg-config --modversion opencv 
  • 1

命令執行後顯示opencv版本號 
這裏寫圖片描述

六、安裝高級語言接口

1、安裝其他依賴項

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 
  • 1

上面依賴項不全,在執行上述命令後可能有一些依賴庫沒法安裝,則通過以下的命令逐個安裝 
安裝各種更新包

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy
sudo apt-get install -y libopencv-dev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2、下載caffe源碼 
首先在你要安裝的路徑下(一般下載到Home下) clone :

cd     #進入Home目錄
git clone https://github.com/BVLC/caffe.git
  • 1
  • 2

3、修改配置文件 Makefile.config 
進入 caffe 文件夾下,將 Makefile.config.example 文件複製一份並更名爲 Makefile.config,也可以在 caffe 目錄下直接調用以下命令完成複製操作 :

cd caffe     //進入caffe目錄
cp Makefile.config.example Makefile.config
  • 1
  • 2

複製一份的原因是編譯 caffe 時需要的是 Makefile.config 文件,而 Makefile.config.example 只是 caffe 給出的配置文件例子,不能用來編譯 caffe。 
然後修改 Makefile.config 文件,在 caffe 目錄下打開該文件:

gedit Makefile.config
  • 1

修改 Makefile.config 文件內容: 
(1) 、應用 cudnn 
如果使用GPU的話,將#USE_CUDNN := 1修改成:

USE_CUDNN :=1
  • 1

(2) 、應用 opencv 版本 
如果使用的是opencv 3 的版本,將#OPENCV_VERSION := 3 修改爲:

OPENCV_VERSION :=3
  • 1

(3) 、使用 python 接口 
將#WITH_PYTHON_LAYER := 1 修改爲

WITH_PYTHON_LAYER :=1
  • 1

(4) 、 修改 python 路徑

//重要的一項將
#Whatever else you find you need goes here.
//下面的 
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 
//修改爲: 
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial 
//這是因爲ubuntu16.04的文件包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(5)、然後修改 caffe 目錄下的 Makefile 文件:(Makefile本人沒有配置)

//將
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
//替換
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
  • 1
  • 2
  • 3
  • 4

然後修改 /usr/local/cuda/include/host_config.h 文件 :(因爲我的gcc沒有降版本所以此處沒有修改)

//將
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
//改爲
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
  • 1
  • 2
  • 3
  • 4

(6)、pycaffe相關依賴庫安裝 
然後進入caffe目錄下的python文件夾 
執行

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

等待執行完畢可以編譯caffe了 
如果pip命令找不到,需要安裝

sudo apt-get install python-pip
  • 1

(7)、編譯caffe 
在 caffe 目錄下執行 :

cd ..               //此時位置應該處於caffe文件夾下
make all -j4        //j8代表計算機cpu有8個核,因此可以多線程一起make,這樣make的速度會快很多。一般常用的還有j4
make test -j4
make runtest -j4  //如果此處不使用sudo編譯不過,可能前面一些步驟安裝命令用sudo,以後安裝注意,sudo導致後面的腳本文件必須用root權限運行,很不方便調試
make pycaffe   //如果以後用python來開發的話必須執行這一句,一般不管你是否用 python,都會執行這一句
  • 1
  • 2
  • 3
  • 4
  • 5
make runtest -j4 //測試成功會如下圖所示
  • 1

測試成功出現下圖 
這裏寫圖片描述

如果編譯過程出現錯誤,用下列命令清楚剛纔的編譯,然後解決問題後,重新進行編譯

make clean
  • 1

錯誤集錦

可能遇到的錯誤,請移步http://blog.csdn.net/ytusdc/article/details/79229369

文章標籤: ubuntucudacaffe

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