ubuntu16.04安裝cuda9.1
1、檢查自己的電腦環境是否具備安裝CUDA的條件
a) 檢查自己的GPU是否是CUDA-capable
在終端中輸入:
$ lspci | grep -i nvidia
會顯示自己的NVIDIA GPU版本資訊
去CUDA的官網檢視自己的GPU版本是否在CUDA的支援列表中
b) 檢查自己的Linux版本是否支援 CUDA(Ubuntu 16.04沒問題)
c) 檢查自己的系統中是否裝了gcc
在終端中輸入:
$gcc –version
可以檢視自己的gcc版本資訊
#gcc降級可參考博文:http://blog.sina.com.cn/s/blog_16e94132c0102y38j.html
d) 檢查是否安裝了kernel header和 package development
在終端中輸入:
$uname –r
可以檢視自己的kernel版本資訊
在終端中輸入:
$ sudo apt-get install linux-headers-$(uname -r)
可以安裝對應kernel版本的kernel header和package development
2、先安裝nvidia 顯示卡驅動
$sudo sh NVIDIA-Linux-x86_64-390.59.run
以上檢查我的電腦系統都滿足要求,如果沒有滿足要求的話,可以參考cuda的官方文件,裡面有詳細的針對每個問題的解決方案。
3、 選擇安裝方式
CUDA提供兩種安裝方式:package manager安裝和runfile安裝
我本來選的是 package manager 安裝,這種方法相對簡單,但嘗試了幾次都失敗。後來是轉換到runfile安裝才成功的。因此此處只介紹runfile安裝方式。
下載cuda安裝包:cuda官網下載,根據系統資訊選擇對應的版本,runfile安裝的話最後一項要選擇 runfile檔案
CUDA 9.1
#檢查安裝包的md5值:
md5sum cuda_9.1.85_387.26_linux.run
md5標準值:https://developer.download.nvidia.com/compute/cuda/9.1/Prod/docs/sidebar/md5sum-b.txt
4、runfile安裝cuda
a) 禁用 nouveau
終端中執行:
$ lsmod | grep nouveau
如果有輸出則代表nouveau正在載入。
Ubuntu的nouveau禁用方法:
在/etc/modprobe.d中建立檔案blacklist-nouveau.conf,在檔案中輸入一下內容
$sudo gedit /etc/modprobe.d
寫入
blacklist nouveau options nouveau modeset=0
開啟終端,執行
$ sudo update-initramfs –u
設定完畢可以再次執行
$ lsmod | grep nouveau
檢查是否禁用成功,如果執行後沒有任何輸出,則代表禁用成功。
b) 重啟電腦,到達登入介面時,alt+ctrl+f1,進入text mode,登入賬戶
c) 輸入
$ sudo service lightdm stop
關閉圖形化介面
d) 切換到cuda安裝檔案的路徑,執行
$ sudo sh cudaXXX_linux.run
按照提示一步步操作
遇到提示是否安裝openGL ,選擇no(雙顯,且主顯是非NVIDIA的GPU需要選擇no,否則可以yes)
其他都選擇yes或者預設
安裝成功後,會顯示installed,否則會顯示failed。
e) 輸入
$ sudo service lightdm start
重新啟動圖形化介面。
Alt + ctrl +F7,返回到圖形化登入介面,輸入密碼登入。
如果能夠成功登入,則表示不會遇到迴圈登入的問題,基本說明CUDA的安裝成功了。
f) 重啟電腦。檢查Device Node Verification。
檢查路徑/dev下 有無存在名為nvidia*(以nvidia開頭)的多個檔案(device files)
如果沒有的話,可以參考官方文件裡的指導步驟,進行新增。(或者在終端中執行“nvidia-smi”)
g) 設定環境變數。
終端中輸入
$ sudo gedit /etc/profile
在開啟的檔案末尾,新增以下兩行。
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
儲存檔案。
這裡有點與官方安裝文件稍有不同,需要說明:
官方文件裡說只需在終端中執行上述兩條export語句即可,但如果不將它們不寫入/etc/profile檔案的話,這樣的環境變數在你退出終端後就消失了,不起作用了,所以寫入才是永久的做法。
h) 重啟電腦,檢查上述的環境變數是否設定成功。
終端中輸入 :
$ env
在輸出的環境變數中檢查有無上述 g) 中設定的變數,如果有則代表設定成功。
到此為止,CUDA的安裝算是告一段落了。為了保險起見,建議進行下述的檢查工作,確保真正的安裝成功。
5、 安裝完畢後的檢查工作。
a) 檢查 NVIDIA Driver是否安裝成功
終端輸入 :
$ cat /proc/driver/nvidia/version
會輸出NVIDIA Driver的版本號
b) 檢查 CUDA Toolkit是否安裝成功
終端輸入 :
$ nvcc –V
會輸出CUDA的版本資訊
如果沒有說明cuda沒有正常安裝,進入/usr/local/cuda/bin看有沒有執行檔案,如果有就去新增環境變數(沒有隻能重灌了),開啟
$vim ~/.bashrc
新增環境變數
export PATH=$PATH:/usr/local/cuda/bin
c) 嘗試編譯cuda提供的例子
切換到例子存放的路徑,預設路徑是 ~/NVIDIA_CUDA-9.1_Samples
(即 /home/xxx/ NVIDIA_CUDA-7.5_Samples, xxx是你自己的使用者名稱)
然後終端輸入:
$ make
如果出現錯誤的話,則會立即報錯停止,否則會開始進入編譯階段。
我的第一次執行時出現了報錯,提示的錯誤資訊是系統中沒有gcc
然後在終端執行
$ sudo apt-get install gcc
安裝完gcc後 再make就正常了
整個編譯的時間持續比較長,耐心等待,大概十幾分鍾是需要的。
d) 執行編譯生成的二進位制檔案。
編譯後的二進位制檔案 預設存放在~/NVIDIA_CUDA-9.1_Samples/bin中。
切換路徑 :
cd ~/NVIDIA_CUDA-9.1_Samples/bin/x86_64/linux/release
終端輸入 :
$ ./deviceQuery
看到類似如下圖片中的顯示,則代表CUDA安裝且配置成功(congratulation!!)
再檢查一下系統和CUDA-Capable device的連線情況
終端輸入 :
$ ./bandwidthTest
看到類似如下圖片中的顯示,則代表成功