深度學習-在ubuntu16.04安裝CUDA9.1-總結(問題完全解決方案)
深度學習大火,為了趕上AI的班車,許多研究生本科生們都在搞深度學習。然而深度學習環境搭建必不可少,這篇文章是我多次為實驗室搭建環境所積累起來的經驗總結,希望所有看到這篇文章的同志們,可以順利解決環境搭建的問題。
我們在用很多深度學習的框架,TensorFlow、Pytorch、caffe,都需要cuda的底層運算庫,在windows上安裝cuda庫是比較容易的事情,但是在…linux上,麻煩那就大了。
我們一般遇到的問題
在裝在n卡的伺服器上,安裝ubuntu16.04和Nvidia Driver,一般會出現以下問題:
- 開機直接黑屏,無法安裝ubuntu系統,或者一進去卡到紫屏;
- 可以正確安裝,但是進去的時候無限迴圈登入;
- 安裝cuda9.1的時候會報錯:
“The driver installation is unable to locate the kernel source. Please make sure that the kernel source packages are installed and set up correctly. If you know that the kernel source packages are installed and set up correctly, you may pass the location of the kernel source with the `--kernel-source-path` flag.”
以上的問題是我在多次安裝的時候遇到的問題,當然還有很多細小的問題不一一提出,如果大家按照下面的解決方案都考慮到的話,安裝應該會順利很多。
解決方案有先後順序
解決方案
1 禁用”nouveau” driver
首先將nouveau新增到黑名單blacklist.conf中,這樣在linux啟動時,就不會載入nouveau。
首先檢視檔案屬性,如果受保護則修改屬性:
ll /etc/modprobe.d/blacklist.conf
修改檔案屬性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
使用vim進行修改
sudo vim /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
更新完核心後重啟系統
重啟系統後使用lsmod命令檢視核心已經載入好的模組
lsmod | grep nouveau
如果執行後什麼也不顯示,說明禁用成功。
Ubuntu系統整合的顯示卡驅動程式是nouveau,不支援cuda而且效能不如nvidia driver,如果系統輸入密碼無法進入桌面,無限閃退重新輸密碼,這是因為nouveau驅動影響,可以在ubuntu系統啟動顯示登入介面後,按ctrl+alt+F1進入tty文字模式。將nouveau從linux核心解除安裝掉再安裝NVIDIA官方驅動。就可以順利進行桌面。
2 關閉你的X server服務
CTRL+ALT+F1進如無介面終端,輸入命令:sudo service lightdm stop
x服務管理伺服器上所有的顯示功能,當需要Linux提供介面的時候,系統就會建立一個或者數個X server,通過X協議跟視窗管理器互動,由獨立於系統的應用程式來產生視窗,狀態列,按鈕之類的互動介面。因為N卡驅動和X服務有一些衝突,這裡我們選擇關閉。
3 更新系統
使用命令:
sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y
更新系統是必須的,但是這裡需要注意的是,CUDA9.1和ubuntu16.04中4.10-4.13的核心不相容,根據官方推薦使用4.4.0核心,如果你發現你的核心不是4.4.0(uname -r
)那麼必須更換核心才可以繼續往下走,更換方法:
https://oldpan.me/archives/install-cuda9-1-unable-to-locate-the-kernel-source
4 安裝 build-essential package
命令:sudo apt-get install build-essential
一些包需要c/c++編譯器,所以這個必須安裝。
5 安裝 linux source and headers
命令:
apt-get install linux-source apt-get source linux-image-$(uname -r) apt-get install linux-headers-$(uname -r)
如果你的系統核心比4.4.0舊,那麼上面的命令應該可以解決“unable to locate the kernel source”這個問題,根據英偉達toolkit中的說法:”The CUDA Driver requires that the kernel headers and development packages for the running version of the kernel be installed at the time of the driver installation, as well whenever the driver is rebuilt. For example, if your system is running kernel version 3.17.4-301, the 3.17.4-301 kernel headers and development packages must also be installed.”
核心相關headers也必須都有才可以正確安裝,當然如果你的核心夠新,那麼上面第一個命令可能不適合你,也可能會遭遇上述第3個方案中說的那個問題。
安裝cuda9.1
安裝步驟和9.0相仿,具體可以看我之前寫的這篇:
https://oldpan.me/archives/pytorch-gpu-ubuntu-nvidia-cuda90
總結
linux尿性就是這樣,各種不相容各種不合適,所幸我們有強大的網路後援團,也是多虧了很多網上的同志們無私分享技術才有這些總結,希望這篇文章對大家有用。
相關文章
- 在Linux上安裝Oracle時DISPLAY問題解決方案LinuxOracle
- 解決npm 安裝部分依賴失敗問題總結NPM
- Ubuntu16.04 php5安裝失敗解決方案UbuntuPHP
- flutter安裝問題總結Flutter
- Anaconda 安裝 國內映象問題解決方案
- windows安裝tomcat遇到問題及解決方案WindowsTomcat
- 轉:Git伺服器安裝詳解及安裝遇到問題解決方案Git伺服器
- RecyclerView的使用總結以及常見問題解決方案View
- 瀏覽器相容性問題解決方案 · 總結瀏覽器
- 深度學習也解決不掉語音識別問題深度學習
- Web 學習之跨域問題及解決方案Web跨域
- VMware下安裝Ubuntu遇到的問題及解決方案Ubuntu
- RAC安裝配置和使用過程的問題解決方法總結一
- RAC安裝配置和使用過程的問題解決方法總結二
- Windows安裝Filebeat遇到問題總結Windows
- 用深度學習解決競爭性編碼問題 | DeepMind深度學習
- MySQL 5.7 Window安裝手冊以及問題方案解決大全MySql
- redis安裝及問題解決Redis
- Hbase學習筆記問題總結筆記
- 前端解決跨域問題總結前端跨域
- 安裝npm報錯,安裝淘寶映象cnpm時出現問題及解決方案NPM
- redis 安裝及安裝遇到的問題解決Redis
- 在Centos和Docker上安裝STF 遇到的若干問題總結CentOSDocker
- 接續:RAC安裝配置和使用過程的問題解決方法總結二
- 在Ubuntu上原始碼安裝MySQL+安裝問題解決+安全優化Ubuntu原始碼MySql優化
- 在CentOS上原始碼安裝MySQL+安裝問題解決+安全優化CentOS原始碼MySql優化
- 深度學習庫安裝list深度學習
- 學習Google在解決問題方面的4種思想Go
- 解決問題oracle學習篇Oracle
- 2015異常問題解決方案經驗總結(一)
- 深度學習模型調參總結深度學習模型
- 深度學習調參tricks總結!深度學習
- 深度學習調參tricks總結深度學習
- 機器學習、深度學習資源總結機器學習深度學習
- 【深度學習篇】--神經網路中解決梯度彌散問題深度學習神經網路梯度
- Android學習: 疑難問題總結Android
- 回溯法解決全排列問題總結
- Js深度拷貝解決雙向繫結問題JS