標籤:

ubuntu16.04 安裝 CUDA 10.0最新詳細教程(顯卡是Tesla V100)

2018年10月底寫下這篇,自認為對小白十分的友好,盡量一個坑沒有。

實驗室這台8萬的伺服器之前系統有點問題,於是重新裝了ubuntu16.04,然後就開始裝CUDA了。寫這篇記錄一下,防止以後踩坑。

※CUDA9.0和9.2同樣適用。

1.首先去這裡下載符合自己要求的CUDA:CUDA Toolkit 10.0 Download,然後把這個sh文件的文件名記一下後面用。

安裝方式裡面,我選擇的是第一個runfile

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

如果沒有就自行安裝。

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。

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

安裝成功後,會顯示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。

10. 嘗試編譯cuda提供的例子

1)打開終端輸入:

cd /home/xxx/NVIDIA_CUDA-10.0_Samples

其中xxx是你自己的用戶名,通過命令cd進入NVIDIA_CUDA-10.0_Samples目錄。

然後終端輸入:

make

系統就會自動進入到編譯過程,整個過程大概需要十幾到二十分鐘,請耐心等待。如果出現錯誤的話,系統會立即報錯停止。

第一次運行時可能會報錯,提示的錯誤信息可能會是系統中沒有gcc,

解決辦法就是通過命令重新安裝gcc就行。安裝完gcc後, 再make就正常了。

如果編譯成功,最後會顯示Finished building CUDA samples,如下圖所示。

2)最後再檢查一下系統和CUDA-Capable device的連接情況

終端輸入:

./bandwidthTest

這篇文章所寫的全部流程都是本人親自操作過的,有問題可以留言,能解決就回復你了,解決不了就不回了哈哈。


推薦閱讀:

TAG:Ubuntu |