1. 程式人生 > >ubuntu16.04安裝nvidia驅動+cuda9.0+cuDnn7.0

ubuntu16.04安裝nvidia驅動+cuda9.0+cuDnn7.0

本文參考了

http://www.cnblogs.com/5211314jackrose/p/7081020.html

https://jingyan.baidu.com/article/4853e1e55679491909f726f4.html

http://www.cnblogs.com/iloveblog/p/7683349.html

1. 檢查自己的GPU是否是CUDA-capable

[email protected]:~$ lspci | grep -i nvidia
03:00.0 VGA compatible controller: NVIDIA Corporation Device 1b00 (rev a1)
03:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)

2.下載安裝包

下載NVIDIA-Linux-x86_64-384.90.run

網址http://www.geforce.cn/drivers/results/123918

網址https://developer.nvidia.com/cuda-downloads

 下載cudnnv7.0,我下載地時候只有一個版本支援cuda9.0

網站是https://developer.nvidia.com/rdp/cudnn-download

3.安裝nvidia驅動

這裡遇到了很多坑,有的比較獨特,我在網上很難查到

3.1 禁用nouveau

ubuntu自帶的nouveau驅動會影響cuda安裝,不當操作會導致黑屏和登陸迴圈。 終端執行:

lsmod | grep nouveau

如果有輸出則代表nouveau正在載入。則需要禁用nouveau,在/etc/modprobe.d中建立檔案blacklist-nouveau.conf,再用getid開啟

cd /etc/modprobe.d
/etc/modprobe.d$ sudo touch blacklist-nouveau.conf
sudo gedit blacklist-nouveau.conf
在檔案中輸入以下內容並儲存:
blacklist nouveau  
options nouveau modeset=0 

之後更新

sudo update-initramfs -u

再次檢視

lsmod | grep nouveau

這種方式也可能不能徹底禁用nouveau,在此基礎上可以移除以下檔案:nouveau.ko;nouveau.ko.org,此檔案一般是隱藏的具體操作

cd /lib/modules/4.4.0-83-generic/kernel/drivers/gpu/drm/nouveau 
sudo rm -rf nouveau.ko 
sudo rm -rf nouveau.ko.org

再更新

sudo update-initramfs –u

此時重啟,再用終端檢測一下

lsmod | grep nouveau

沒有輸出即為禁用成功。

3.2 安裝驅動

1) 解除安裝掉原有驅動

sudo apt-get remove --purge nvidia-*

2)安裝一些依賴(不一定需要)

我在安裝過程中遇到下圖中的問題

網上查詢發現遇到的人不多,經查詢,可能是因為缺少32位的庫檔案(我安裝64位的,為啥需要這個。。。暈),需要安裝依賴

sudo apt-get install lib32ncurses5 sudo apt-get install lib32z1 安裝後可解決 3)出現Invalid Signature detected Check Secure Boot Policy錯誤(不一定需要)

出現Invalid Signature detected Check Secure Boot Policy錯誤,是因為bios中設定不對。

重啟電腦,按f1進入bios設定(或者delete,esc.....),然後找到Security裡面的 Secure Boot選項,回車鍵進入,Secure Boot選擇Disabled,按f10儲存,重啟。

這樣雖然不會再次出現剛才的錯誤,通常會出現新的問題,啟動卡死,一直處於windows正在啟動介面,需要再次進入bios,將startup中的csm項改為Enable,然後儲存,即可順利進入windows。

4)安裝驅動

1 解除安裝掉原有驅動

sudo apt-get remove --purge nvidia-*

2 Ctrl+alt+F1進入字元介面,關閉圖形介面

sudo service lightdm stop

此時可能關不了,即使現實該操作OK,但是一會再開啟時會有問題,可以在此基礎上增加操作,手動刪除X影象介面,影象介面X/tmp路徑下,具體操作:

cd /tmp  
sudo rm -rf .X*

這樣就可以把關於X的影象介面檔案全部刪除(每次重啟都會再次生成,所以會在alt+ctrl+f1介面下操作)

3 安裝nvidia driver

sudo chmod a+x NVIDIA-Linux-x86_64-384.90.run //獲取許可權
sudo ./NVIDIA-Linux-x86_64-384.90.run –no-x-check –no-nouveau-check –no-opengl-files //安裝驅動
  • –no-x-check 安裝驅動時關閉X服務
  • –no-nouveau-check 安裝驅動時禁用nouveau
  • –no-opengl-files 只安裝驅動檔案,不安裝OpenGL檔案

Accept->Continue installation->sign the kernel module(為核心模組簽名)?選擇是->使用已有的金鑰給模組簽名還是重新生成?選重新生成金鑰->是否刪除已生成的金鑰檔案?選擇否->安裝完成

問題:The target kernel has CONFIG_MODULE_SIG set,which means that it supports cryptographic signatures on kernel module. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key.This system also UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?

解決:禁用UEFI安全啟動功能

啟動電腦,然後按電腦的設定訪問UEFI,本機器按[F2]鍵,不同的製造商可能有不同的設定,具體請參考主機板說明書。

根據不同的UEFI版本,安全啟動選項通常在一個選項卡下,這個選項卡可能被命名為“Boot”、“Security”或者“Authentication”,在類似的選項卡中查詢,我們會發現一個“Secure Boot”選項,該選項預設設定為“Enabled”,選中它並回車,將其設定為“Disabled”,按[Apply]鍵儲存設定,重新啟動電腦即可安裝我們需要的作業系統。

檢查 NVIDIA Driver是否安裝成功

nvidia-smi

顯示上圖則說明成功

4.安裝CUDA9.0

找到下載檔案的路徑

sudo sh cuda_9.0.176_384.81_linux.run

單擊回車,一路往下執行,直到提示“是否為NVIDIA安裝驅動nvidia-384?”,選擇否,因為已經安裝好驅動程式了,其他的全都是預設,不過要記住安裝位置,預設是安裝在/usr/local/cuda資料夾下。

配置環境變數,執行如下命令開啟profile檔案

sudo gedit  /etc/profile

開啟檔案後在檔案末尾新增路徑,也就是安裝目錄,命令如下:

export  PATH=/usr/local/cuda-9.0/bin:$PATH

export  LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH

  儲存,然後重啟電腦

sudo reboot

測試CUDA的例子

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

如果顯示的是關於GPU的資訊,則說明安裝成功了。

最後你會看到cuda驅動、sampletookit已經安裝成功,但是缺少一些庫。

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

環境變數配置

安裝完畢後,再宣告一下環境變數,並將其寫入到 ~/.bashrc 的尾部:

  1. export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

  2. export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

然後設定環境變數和動態連結庫,在命令列輸入:

$ sudo gedit /etc/profile

在開啟的檔案末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

儲存之後,建立連結檔案:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在開啟的檔案中新增如下語句:

/usr/local/cuda/lib64

然後執行

sudo ldconfig

使連結立即生效。

5.安裝cudnn

1) 繼續Ctrl+alt+F1進入的字元介面

2) 進入解壓後的cudnn-9.0-linux-x64-v7.0.tgz檔案cuda,在終端執行下面的指令安裝:

tar -zxvf cudnn-9.0-linux-x64-v7.0.tgz
cd cuda    
sudo cp lib64/lib* /usr/local/cuda/lib64/    
sudo cp include/cudnn.h /usr/local/cuda/include/ 

然後更新網路連線:

cd /usr/local/cuda/lib64/  
sudo chmod +r libcudnn.so.7.0.3  # 自己檢視.so的版本  
sudo ln -sf libcudnn.so.7.0.3. libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig  

重新啟動圖形化介面

sudo service lightdm start

Ctrl+alt+F7退出Text Mode。