1. 程式人生 > >ubuntu16.04 + cuda8.0安裝配置

ubuntu16.04 + cuda8.0安裝配置

此次安裝參考了幾位前輩的安裝方法,然後將他們合在一起講述自己的安裝過程:

一.更換ubuntut16.04的源,自己使用的是中科大的源

終端輸入

cd /etc/apt/ 
sudo cp sources.list sources.list.backup  #做備份 
sudo gedit sources.list

然後把如下內容替換到該檔案中:

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse 
deb http://mirrors.ustc
.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.ustc
.edu.cn/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

然後更新源和更新已安裝的包:

sudo apt-get update 
sudo apt-get upgrade

二.gcc 版本

需要注意的一點是ubuntu16.04的gcc版本是5.4,而cuda8.0在該系統中支援的gcc版本不超過5.3,所以第一步需要對GCC版本進行降級。
(1)下載gcc原始碼

wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz

(2)解壓
tar -zxvf gcc-5.3.0.tar.gz
(3)下載編譯所需依賴項:

cd gcc-5.3.0                    //進入解包後的gcc資料夾
./contrib/download_prerequisites                  //下載依賴項
cd ..                          //返回上層目錄

(4)建立編譯輸出目錄:
mkdir gcc-build-5.3.0
(5)進入輸出目錄,執行以下命令,並生成makefile檔案:

cd gcc-build-5.3.0
../gcc-5.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

(6)編譯:
sudo make -j4
接下來就是等待了,整個過程大約40分鐘左右。PS:最好不要在編譯過程中再去做別的什麼事,整個過程CPU都是滿載的,要是莫名終止了,後面麻煩事也不少。
(7)編譯結束以後,我們就可以執行安裝了:
sudo make install
(8)檢查gcc和g++版本
gcc --version
這裡寫圖片描述
g++ --version
這裡寫圖片描述

三. nvidia 驅動安裝

如果從nvidia官網下載驅動安裝時,有可能重啟後進入不了系統,輸入我的登入密碼會發現螢幕一閃,然後又重新跳回到登入介面,就是進入了login loop的狀態,造成這種問題的與原因是更新後的NVIDIA驅動與我現在的GPU不匹配。
讓系統自動安裝nvidia驅動有兩種辦法:
(1)第一種是進入ubuntu系統設定-軟體與更新-附加驅動中選擇下圖所示選項進行驅動安裝
這裡寫圖片描述
這種方法的缺點是:所安裝的驅動(如圖中所示nvidia-361)並不是最新版本的,以至於在最後進行樣例測試的時候報錯:
cuda driver version is infufficient for cuda runtime version
(2)第二種方法是新增ppa源,同時在nvidia驅動官網上檢視自己GPU驅動的最新版本號(不需要下載):
這裡寫圖片描述
看到最新版是375,然後:
1、在你的使用者登入介面按ctrl+alt+F1進入tty模式
2、輸入你的賬戶名和密碼
3、依次執行如下語句(需要聯網):

sudo apt-get purge nvidia-*  //刪除現有驅動
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375   //nvidia-後面的數字是版本號
sudo reboot //重啟

重啟後,終端輸入:

nvidia-smi    //或者
nvidia-settings 

如果沒出錯,則驅動安裝成功

四. cuda 8.0 安裝

cuda 8.0 Downloads下載cuda 8.0 的 runfile安裝包。
cd切換到下載的檔案目錄下進行安裝:
sudo sh cuda_8.0.44_linux.run --override
啟動安裝程式,一直按空格到最後,輸入accept接受條款
輸入n不安裝nvidia影象驅動,之前已經安裝過了
輸入y安裝cuda 8.0工具
回車確認cuda預設安裝路徑:/usr/local/cuda-8.0
輸入y用sudo許可權執行安裝,輸入密碼
輸入y或者n安裝或者不安裝指向/usr/local/cuda的符號連結
輸入y安裝CUDA 8.0 Samples,以便後面測試
回車確認CUDA 8.0 Samples預設安裝路徑,該安裝路徑測試完可以刪除

五. cudnn 安裝

cudnn 下載相應版本.
cd到下載的檔案目錄下,解壓:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
解壓在下載目錄下產生一個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*    #給所有使用者增加這些檔案的讀許可權 

六. 建立軟連線

終端輸入

cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.5 
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5 
sudo ln -s libcudnn.so.5 libcudnn.so 

設定環境變數,終端輸入

sudo gedit /etc/profile 

在末尾加入

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

儲存後,建立連結檔案

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

按a進入插入模式,增加下面一行

/usr/local/cuda/lib64 

按esc退出插入模式,按:wq儲存退出
最後在終端輸入

sudo ldconfig      #使連結生效 

七.cuda Samples測試
切換到CUDA 8.0 Samples預設安裝路徑(即在NVIDIA_CUDA-8.0_Samples目錄下),終端輸入

sudo make all -j4    #(4核) 

完成後繼續向終端輸入

cd bin/x86_64/linux/release 
./deviceQuery

如果看到下面畫面,則成功:
這裡寫圖片描述