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
b、在終端中輸入:
sudo apt-get install linux-headers-$(uname --r)
結果如果顯示:
升級了 0 個軟體包,新安裝了 0 個軟體包,要卸載 0 個軟體包,有 4 個軟體包未被升級。
則表示系統里已經有了,不用重複安裝。
5.禁用 nouveau驅動
lsmod | grep nouveau
如果有輸出則代表nouveau正在載入。需要我們手動禁掉nouveau。
以下是Ubuntu的nouveau禁用方法:
先用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
之後重啟電腦
lsmod | grep nouveau 或者 lspci | grep -i nouveau
註:vi是Linux終端下或控制台下常用的編輯器,要用vi打開一個文件,就輸入:
vi /路徑/文件名 (例如:終端輸入 vi /etc/fstab 就會顯示/etc/fstab文件里的內容)
基本操作:
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
(這是64位系統的,32位系統自行百度)
保存文件,並重啟。因為source /etc/profile是臨時生效,重啟電腦才是永久生效。
到這裡安裝應該就成功了,後面是一些驗證的工作,其實一般不用驗證。
9.重啟電腦,然後檢查上述的環境變數是否設置成功
cat /proc/driver/nvidia/version
結果顯示
b、 驗證CUDA Toolkit
nvcc -V
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 |