Ubuntu16.04+2080ti+cuda10.0環境配置

建議:裝環境之前,先把自己安裝的版本弄清楚,後面出現版本不匹配的問題再重裝就會比較煩。

注意tensorflow-gpu-2.0有幾處代碼改動,在跑faster-rcnn的時候有點問題,所以後面需要把tensorflow-gpu版本改成1.1+的。

我這裏的環境是:

Ubuntu16.04+2080ti+Display Driver430.50+cuda10.0+cudnn7+Anaconda(python3.6)+tensorflow-gpu-1.13.1

 

1. 顯卡驅動: 版本430.50,有不同的安裝格式,這裏我下的是runfile。

安裝顯卡驅動步驟:

(1)lsmod |grep nouveau,查看到源生的驅動在。如果有就是會出現紅色的nouveau,沒有就什麼都沒有。

(2)如果有原生的驅動在,需要禁用自帶的 nouveau nvidia驅動 (important!)

-->創建一個文件通過命令 sudo vim /etc/modprobe.d/blacklist-nouveau.conf

--> 按一下 i 進入編輯狀態,並添加如下內容:

blacklist nouveau

options nouveau modeset=0

編輯完了:esc--> :-->wq! (保存並退出)

-->再更新一下

sudo update-initramfs -u

-->修改後需要重啓系統。確認下Nouveau是已經被你幹掉,使用命令: lsmod | grep nouveau

(3)禁掉lightdm桌面管理器,安裝驅動(secure boot disabled)

sudo /etc/init.d/lightdm stop

接下來會變黑好像什麼都沒有,這時候ctrl+alt+f1(命令行出來了)

(4)然後找到你放run文件的文件夾下:

sudo sh ./NVIDIA-Linux-x86_64-375.20.run –no-opengl-files(這個參數不知道什麼用,別人說有用我就加了)

(5)然後這樣:sudo /etc/init.d/lightdm start,就可以進入正常的界面了。

安裝好了可以查看顯卡驅動版本:cat /proc/driver/nvidia/version

 

2. 安裝CUDA10.0

2080ti 似乎和cuda9有問題,再裝了cudnn之後跑cudnn_samples報錯,後面改成了cuda10之後就成功了。

1)下載cuda:https://developer.nvidia.com/cuda-toolkit-archive , 我用的是10.0.

cuda安裝參考: https://zhuanlan.zhihu.com/p/47330858

2)安裝之前驗證一下電腦是否已經插上了支持CUDA的GPU,用win+alt+t調出終端,然後輸入:

lspci | grep -i nvidia

如果顯示出你的NVIDIA GPU版本信息應該就沒問題。

3)驗證系統是否安裝了gcc,在終端中輸入:

gcc --version 

如果裝了結果會顯示類似信息:

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0

如果沒有就自行安裝。sudo apt-get  install  build-essential  (Ubuntu默認gcc5.4)

4)驗證系統是否安裝了kernel header和 package development

a、查看正在運行的系統內核版本:
在終端中輸入:

uname --r
結果顯示類似就可以:4.10.0-40-generic

b、在終端中輸入:

sudo apt-get install linux-headers-$(uname --r)
以安裝對應kernel版本的kernel header和package development

結果如果顯示:

升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 4 個軟件包未被升級。

則表示系統裏已經有了,不用重複安裝。

5)禁用 nouveau驅動
終端中運行:

lsmod | grep nouveau

如果有輸出則代表nouveau正在加載。需要我們手動禁掉nouveau。

以下是Ubuntu的nouveau禁用方法:
a、我們需要在電腦根目錄的/etc/modprobe.d文件夾中創建文件blacklist-nouveau.conf

先用apt-get安裝vim編輯器,然後

這需要輸入命令:

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

此時會出現一個窗口 (我們利用vi編輯器的指令來編輯和保存文件)

按鍵盤上的insert鍵進入輸入模式,然後在文件中輸入以下兩行內容:

blacklist nouveau

options nouveau modeset=0

然後按ESC鍵退出編輯模式,在鍵盤上摁下“ :wq ”這三個鍵再回車,就保存並退出了。

b、然後在終端輸入執行:

sudo update-initramfs -u

之後重啓電腦
c、重啓後在終端執行:

lsmod | grep nouveau

或者

lspci | grep -i nouveau


若終端無內容輸出了,則禁用成功,若仍有內容輸出,請檢查上述操作,可以百度一下尋求解決。

注:vi是Linux終端下或控制檯下常用的編輯器,要用vi打開一個文件,就輸入:

vi /路徑/文件名    (例如:終端輸入 vi /etc/fstab 就會顯示/etc/fstab文件裏的內容)

基本操作:

  • 使用鍵盤上的Page Up和Page Down鍵可以上下翻頁;
  • 按下Insert鍵,可以見到窗口左下角有“Insert”字樣,表示當前爲插入編輯狀態,這時從鍵盤輸入的內容將插入到光標位置;
  • 再按下Insert鍵,左下角將有“Replace”字樣,表示當前爲替換編輯狀態,這時從鍵盤輸入的內容將替換光標位置的內容。
  • 編輯完內容後,按下Esc鍵,並輸入“:wq”,然後回車就可以保存退出。
  • 如果不想保存而直接退出,則按下Esc鍵後,輸入“:q!”,然後回車即可。“wq”表示Write和Quit,即保存退出;“q!”表示忽略修改強行退出。

6)重啓電腦,進入登錄界面的時候,不要登錄進入桌面(否則可能會失敗,若不小心進入,請重啓電腦),直接按Ctrl+Alt+F1進入文本模式(命令行界面),然後登錄賬戶。

登陸後輸入:sudo service lightdm stop

以此來關閉圖形化界面,然後切換到cuda安裝文件的路徑:例如我的cuda在下載文件夾裏所以我要輸入:

 cd Downloads

然後輸入(根據cuda版本不同自行修改):sudo sh cuda_10.0.130_410.48_linux.run

開始安裝,按提示一步步操作,按住回車看完聲明。按照提示輸入相應字符,例如有的需要輸入accept,有的需要輸入yes。

注意:(1)遇到提示是否安裝openGL ,選擇no(如果你的電腦跟我一樣是雙顯,且主顯是非NVIDIA的GPU在工作,需要選擇no),其他都選擇yes或者默認即可。(如果您的電腦是雙顯卡且在這一步選擇了yes,那麼你極有可能安裝完CUDA之後,重啓圖形化界面後遇到登錄界面循環問題:輸入密碼後又跳回密碼輸入界面。這是因爲你的電腦是雙顯,而且用來顯示的那塊GPU不是NVIDIA,則OpenGL Libraries就不應該安裝,否則你正在使用的那塊GPU(非NVIDIA的GPU)的OpenGL Libraries會被覆蓋,然後GUI就無法工作了。(2)要不要再裝driver,記得選No。(3)另外cuda samples我也沒有裝。

安裝成功後,會顯示installed,否則會顯示failed。

7)重新啓動圖形化界面,輸入 :

sudo service lightdm start

如果沒反應,需要同時按住Alt + ctrl +F7,返回到圖形化登錄界面,輸入密碼登錄。

如果能夠成功登錄,則表示不會遇到循環登錄的問題,基本說明CUDA的安裝成功了。

8)重啓電腦,檢查Device Node Verification。

執行 ls /dev/nvidia*        可能出現a、b兩種結果,請對號入座。

a、若結果顯示

/dev/nvidia0      /dev/nvidiactl      /dev/nvidia-uvm

------------------------這部分我沒有出現-------------------------------------------------------------------

或顯示出類似的信息,應該有三個(包含一個類似/dev/nvidia-nvm的),則安裝成功。

b、大多數結果可能會是這樣

ls: cannot access/dev/nvidia*: No such file or directory

或是這樣的,只出現 /dev/nvidia0     /dev/nvidiactl

但沒有/dev/nvidia-num,即文件顯示不全。

我的解決方法參考了一篇博客,找到文件夾

/usr/local/cuda/samples/1_Utilities/deviceQuery,進去以後有個deviceQuery.cpp, make一下(在文件夾啓動終端,輸入sudo make),然後

./deviceQuery

這樣你再查看

ls -la /dev | grep nvidia

就會發現有三個啦。

-----------------------------------------------------------------------------------------------------------------

8)設置環境變量
終端中輸入:

sudo gedit /etc/profile

在打開的文件末尾,複製添加以下兩行:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(這是64位系統的,32位系統自行百度)

保存文件,並重啓。因爲source /etc/profile是臨時生效,重啓電腦纔是永久生效。

到這裏安裝應該就成功了,後面是一些驗證的工作,其實一般不用驗證。

9)重啓電腦,然後檢查上述的環境變量是否設置成功

a、 驗證驅動版本
敲入:cat /proc/driver/nvidia/version

結果顯示
NVRM version: NVIDIA UNIX x86_64 Kernel Module 420
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

b、 驗證CUDA Toolkit
敲入:nvcc -V

會輸出CUDA的版本信息。
如果是這樣的:
The program 'nvcc' is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
可能是環境配置沒有成功,請重複上述步驟8。

最後查看cuda版本:cat /usr/local/cuda/version.txt

3. 安裝CUDNN

參考官網步驟:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/

  1. Navigate to your <cudnnpath> directory containing cuDNN Debian file.
  2. Install the runtime library, for example:
    sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
  3. Install the developer library, for example:
    sudo dpkg -i libcudnn7-devel_7.0.3.11-1+cuda9.0_amd64.deb
  4. Install the code samples and the cuDNN Library User Guide, for example:
    sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb

驗證前注意重啓,如果裝cuda9,驗證的時候會出錯Cublas failure,換成cuda10就好了。

4. Anaconda-python3.6

5. Tensorflow-gpu 1.13.1

pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

6. 關於gcc版本:

切換gcc版本參考: https://www.cnblogs.com/uestc-mm/p/7511063.html

改變優先級: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100  (100代表優先級)

選擇可選版本:sudo update-alternatives --config gcc

查看當前gcc版本:gcc --version

最後附上一個版本對應:

 

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