Ubuntu16.04 + CUDA 8.0 (GTX 1050ti)


在個人PC上使用游戲級的顯卡安裝CUDA要比在服務器上的安裝麻煩一些,在安裝的過程中也遇到了不少的坑,所以在此總結一下。

參考了不少的博客,下面列出一部分吧:

http://blog.csdn.net/iotlpf/article/details/54175064(主要參考的這個,但是這個博客安裝的過於順利了~_~)

http://blog.csdn.net/cybertan/article/details/8101883   ####    http://blog.csdn.net/zhyj3038/article/details/52412273(關於GCC的升級或降級問題)

http://blog.csdn.net/10km/article/details/61191230(針對第一個連接中的網站下載不了的問題的解決方案)

 

系統:Win7+Ubuntu 16.04 ,在Ubuntu下安裝的, 顯卡:GXT1050ti   CUDA8.0

 

為了確保cuda能安裝成功,首先需要確認安裝前的環境是否符合要求,具體細節請查閱NVIDIA CUDA Installation Guide for Linux

 

一.更換ubuntut16.04的源,這里使用的是中科大的源。

CTRL+ALT+T, 打開終端,輸入以下的命令:

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 版本(這一步如果按照鏈接1走的話,會遇到安裝安gcc-5.3.0后,檢測版本仍然是Ubuntu自帶的情況)

這里要注意的一點是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

 以上的下載鏈接,反正我用的是下載不下來,所以換成用以下的鏈接:

http://ftp.gnu.org/gnu/gcc/

(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  --prefix=/usr/local/gcc-5.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib

 注:/usr/local/gcc-5.3.0是自定的安裝目錄。將GCC安裝在/usr/local/gcc-5.3.0目錄下。為了以后的配置環境變量確立位置。

(6)編譯: 

sudo make -j4 

以上的編譯過程大約40分鍾左右。PS:最好不要在編譯過程中再去做別的什么事,整個過程CPU都是滿載的。

(7)編譯結束以后,我們就可以執行安裝了: 

sudo make install 

(8)環境設置(這里需要將gcc的頭文件和庫文件指向新的版本,否則電腦用的還是Ubuntu自帶的gcc)

打開配置文件夾:

cd $HOME
ls -a
sudo vi .bashrc

向其中添加以下語句:

GCCHOME=/usr/local/gcc-5.3.0               #指定新安裝gcc的搜索路徑
PATH=$GCCHOME/bin:$PATH
LD_LIBRARY_PATH=$GCCHOME/lib
export GCCHOME PATH LLD_LIBRARY_PATH

重新引導,並查看gcc版本:

source $HOME/.bashrc
 which gcc

會顯示gcc新的路徑為 /usr/local/gcc-5.3.0:

檢查gcc和g++版本 :

gcc --version 
g++ --version

 

三. nvidia 驅動安裝

如果從nvidia官網下載驅動安裝時,有可能重啟后進入不了系統,輸入我的登錄密碼會發現屏幕一閃,然后又重新跳回到登錄界面,就是進入了login loop的狀態,造成這種問題的與原因是更新后的NVIDIA驅動與現在的GPU不匹配。(連接1中的敘述,沒有出現過) 
讓系統自動安裝nvidia驅動有兩種辦法: 
(1)第一種是進入ubuntu系統設置-軟件與更新-附加驅動中選擇下圖所示選項進行驅動安裝

 這種方法的缺點是:所安裝的驅動(如圖中所示nvidia-361)並不是最新版本的,以至於在最后進行樣例測試的時候報錯:

cuda driver version is infufficient for cuda runtime version

(2)第二種方法是添加ppa源,同時在nvidia驅動官網上查看自己GPU驅動的最新版本號(不需要下載):(連接1中的ppa源一直打不開,所以使用的另外的方案)

 1.禁用nouveau。

Ubuntu系統集成的顯卡驅動程序是nouveau,我們需要先將nouveau從linux內核卸載掉才能安裝NVIDIA官方驅動。 

因為nouveau驅動的影響,ubuntu安裝后無法登入桌面,所以在ubuntu系統啟動顯示登錄界面后,需要按ctrl+alt+F1進入tty文本模式進入下面的操作。

由於blacklist.conf文件的屬性不允許修改。所以需要先修改文件屬性。 
查看屬性:

ll /etc/modprobe.d/blacklist.conf

修改屬性:

sudo chmod 666 /etc/modprobe.d/blacklist.conf

用vi編輯器打開:

sudo vi /etc/modprobe.d/blacklist.conf

在文件末尾添加如下幾行:

blacklist vga16fb 
blacklist nouveau 
blacklist rivafb 
blacklist rivatv 
blacklist nvidiafb

修改並保存文件后,記得把文件屬性復原:

sudo chmod 644 /etc/modprobe.d/blacklist.conf

再更新一下內核:

sudo update-initramfs -u

修改后需要重啟系統。 
重啟系統確認nouveau是否已經被屏蔽掉,使用lsmod命令查看:

lsmod | grep nouveau

lsmod命令用於顯示已經加載到內核中的模塊的狀態信息,參見《lsmod命令》

2.安裝NVIDIA驅動。

因為系統中不光有NVIDIA顯卡還有一塊集成intel顯卡能正常驅動,所以經過上一步禁用nouveau驅動后,再次重啟,已經系統可以正常登錄進入桌面了。

使用如下命令添加Graphic Drivers PPA:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

尋找合適的驅動版本:

ubuntu-drivers devices

以上的圖片是直接用的鏈接中的圖片。我用的GTX1050ti,目前最適用的版本是nvidia-387.

安裝NVIDIA driver:
記住給出的推薦驅動型號(帶recommended選項的驅動)。 
按ctrl+alt+F1進入tty文本模式 。
關閉(圖形)桌面顯示管理器LightDM:

sudo service lightdm stop

安裝nvidia driver,這一過程是需要聯網的。如果網速度不好,可能要花比較長的時間。
安裝完成后重啟:

sudo apt-get install nvidia-378
sudo reboot

重啟系統后,執行下面的命令查看驅動的安裝狀態顯示安裝成功:

sudo nvidia-smi
sudo nvidia-settings

(以上圖片來自連接3,所以型號不對應,其他一切正常)

四. cuda 8.0 安裝

cuda 8.0 Downloads下載cuda 8.0 的 runfile安裝包。 

以上鏈接已經是9.1的了,所以提供新鏈接:https://developer.nvidia.com/cuda-80-ga2-download-archive.
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默認安裝路徑,該安裝路徑測試完可以刪除。

五,因為cdnn是NVIDIA專門針對深度神經網絡(Deep Neural Networks)中的基礎操作而設計基於GPU的加速庫。這里用不到cdnn,所以就沒有安裝,其過程也很簡單,只是一個庫函數的安裝過程。

六。環境變量等

 設置環境變量,終端輸入:

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默認安裝路徑(一般在安裝目錄的.../cuda/samples目錄下),終端輸入:

sudo make all -j4    #(4核)
需要幾分鍾的編譯時間。
完成后繼續向終端輸入:
cd bin/x86_64/linux/release 
./deviceQuery

如果看到下面畫面,則成功:

通過以上的步驟就完成了所有的工作。

 

下面這部分留出來作為以后遇到問題的解決板塊:

1.遇到一個奇怪的問題:在一般用戶的條件下輸入:nvcc --version能夠正常顯示,在root的條件下,說未安裝nvcc:

解決辦法是重新配置一下環境變量:

1)查看/usr/local/cuda/bin下是否有nvcc可執行程序,如果沒有說明cuda沒有正常安裝,需要重新安裝,如果有,進入下一步。

2)添加環境變量,打開~/.bashrc ,添加環境變量export PATH=$PATH:/usr/local/cuda/bin。

3)再在terminal中輸入nvcc --version可以看到已經可以顯示為8.0版本了。

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM