Ubuntu 16.04 安裝cuda9.0 &udnn7.0 之妙法:NVIDIA 驅動->cuda->cudnn->安裝tensorflow-gpu(windows 也可參考),試一下?

1. 安裝Ubuntu16.04

系統下載地址: http://releases.ubuntu.com/16.04/
下載64位系統:ubuntu-16.04.4-desktop-amd64.iso
製作系統盤安裝,推薦使用rufus,這個簡單便捷,大力推薦。
下載網址:https://rufus.ie/en_IE.html
(隨便科普下,後續要在windows上重裝系統,沒必要製做U盤啓動盤了),直接在系統之家或者直接搜索在線重裝系統就可以了,大把的軟件可以使用,方便快捷,傻瓜式安裝,全程不費心!!
點擊rufus的 exe後,會出現以下界面
在這裏插入圖片描述
插上U盤,會自動識別,上面鏡像文件選擇自己下載好的鏡像iso文件就好,然後分區類別基本上可以不動的,MBR和GPT看自己的電腦適合,不過還是一般推薦MBR的分區類型,具體的區別可以去查下!
然後就是開始就好了,等待鏡像製作完畢!

重裝系統時就是插入電腦上重啓時,進入 BIOS 的界面(一般是按F10或者F12),這個看電腦類型吧,可以查看下自己的電腦是哪種!
這是第二步,也是重要的一步,針對於新裝Tensorflow和Cuda,Cudnn的同學,建議一步一步來,不要急!
大體步驟: 安裝NVIDIA驅動 – > 安裝Cuda --> 安裝CUDNN – > 安裝Tensorflow-gpu,記得哦,不要亂了次序!!

2.安裝NVIDIA驅動

2.1 修改更新源
系統安裝完成後,應該首先修改的更新源,
輸入
sudo apt-get update
或者
sudo apt-get upgrade

2.2 驅動下載和安裝以及一些問題解決
接下來開始安裝NVIDIA驅動了,我的顯卡是GTX1080Ti,安裝顯卡驅動有3種方法:
1.系統更新驅動
2.添加官方ppa源
3.NVIDIA官網下載安裝
感興趣的同學可以去查找對應的安裝方式,這裏我選擇的安裝方式是去NVIDIA官網下載Linux版本的驅動,
官網地址:https://www.geforce.cn/drivers 或者 https://www.nvidia.cn/Download/index.aspx?lang=cn
建議去左邊的地址可以選擇版本,右邊的地址會直接給你推薦最新版本,選擇你對應版本的系列選擇,操作系統別選錯了
在這裏插入圖片描述
搜索出來這麼多結果,先別急着下載,BETA版本爲測試版就別下載了,其次這麼多版本,到底下載哪個比較好,比如我們圖上第二個版本是390.77,這需要看我們CUDA的版本要求的驅動版本是多少
我們打開CUDA下載網站:https://developer.nvidia.com/cuda-downloads
我這裏目前最新的版本是CUDA9.2,再選擇了一系列的選項後會給出CUDA9.2的下載地址如下圖:
在這裏插入圖片描述

可以看到,下載的文件名爲cuda_9.2.148_396.37,這個396.37就是我們NVIDIA驅動版本的最低要求,可是顯卡驅動目前提供的Linux版本最高也就390.77,所以我們不能安裝CUDA9.2,於是我選擇安裝CUDA9.0,下面給出一個驅動要求表格,如果要下載CUDA其他版本請到cuda的存檔地址:https://developer.nvidia.com/cuda-toolkit-archive
在這裏插入圖片描述
上面講了這麼多,終於要開始安裝NVIDIA驅動了,CUDA9.0文件可以先下載好
1)打開終端,先刪除舊的驅動:

**sudo apt-get purge nvidia**

2)禁用自帶的 nouveau nvidia驅動
先執行下面命令,可以發現會顯示一些東西,我們現在要禁用掉,使它不顯示出來

**lsmod | grep nouveau**

執行以下命令創建一個文件

**sudo gedit /etc/modprobe.d/blacklist-nouveau.conf**

並添加如下內容:

**blacklist nouveau
options nouveau modeset=0**

然後保存文件退出,執行下面命令更新一下

sudo update-initramfs -u

然後重啓電腦,重啓後打開終端再次輸入命令

**lsmod | grep nouveau**

如果發現什麼都沒顯示,那麼說明禁用nouveau 成功了,然後開始安裝NVIDIA驅動

首先按Ctrl+Alt+F1進入控制檯,然後輸入用戶名密碼登陸,執行下面命令關閉圖形界面

**sudo service lightdm stop**

然後跳轉到存放文件的路徑再運行安裝文件,比如我的文件放在Downloads目錄下,命令如下:

cd Downloads
sudo sh NVIDIA-Linux-x86_64-390.42.run --no-opengl-files

必須加上 --no-opengl-files ,否則會出現題主要是三種,
(1)循環登錄,也就是登錄之後在退出來到登錄界面;
(2)界面變得很大,看着心慌,哈哈;
(3)登錄進去了,顯示正常了,結果只有桌面背景和鼠標等等
安裝過程種有出現提示選項,這裏主要注意兩點(如果看不懂選項的英文,自己查字典):
第一點(不是所有電腦都會遇到,如果沒有請忽視這
第一點是安裝提示 “sign the kernel module” 安裝過程中提示是否sign the kernel module(爲內核模塊簽名)
我當時是選擇了不簽名安裝,於是我這裏出現了錯誤提示 log:/ver/log/nvidia-installer.log ,查找到了相關文章:https://blog.csdn.net/lipi37/article/details/79465685
大意是在支持UEFI的設備上打開Secure Boot 後,Ubuntu 16.04對於添加到內核的模塊更加保守, 需要持有簽名才能添加到模塊中, 而顯卡驅動由於要添加到內核中, 所以需要簽名. 在安裝過程中我們也會看到NVIDIA顯卡會提示是否生成簽名. 如果生成成功則沒有問題。如果不想生成簽名就需要進入BIOS關閉Secure Boot,在Key Management中Clear Secure Boot keys。雖然找到了解決辦法但我還是選擇生成簽名。
選擇生成簽名安裝,參考文章:https://www.cnblogs.com/marky/p/8243607.html 。接下來會繼續問使用已有的密鑰給模塊簽名還是重新生成。這裏選在重新生成密鑰。繼續下去之後,密鑰會在/usr/share/nvidia/下生成一個nvidia*.der(私鑰)文件和nvidia*.key(公鑰)文件(這些都不用管),當提示是否刪除已生成的密鑰文件時,選擇不刪除,因爲之後要用到這兩個文件。繼續安裝程序到最後會提示無法啓動模塊。這是因爲生成的密鑰還沒有添加到內核的信任庫中,我們在安裝完成後再導入。
第二點提示是”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什麼的,選擇 No。
待安裝結束後,添加密鑰到內核的信任列表中:

sudo /etc/init.d/lightdm start      //打開圖形界面
sudo mokutil --import /usr/share/nvidia/nvidia*.der    //必須加上 sudo

接下來提示輸入密碼,再次輸入密碼,然後

sudo  reboot  //重啓

在電腦剛啓動的時候會出現一個界面,就是叫你添加密鑰操作,選擇 “enroll the mok” ,然後按照步驟操作,輸入密碼什麼的,如果進錯了就再執行上面的 sudo mokutil…
導入成功後就進入系統就可以了,圖如下(取自http://elrepo.org/tiki/SecureBootKey):
在這裏插入圖片描述
進入系統後測試一下是否安裝成功
nvidia-smi

nvidia-settings

出現類似下面的顯示,則安裝成功
在這裏插入圖片描述

3.安裝CUDA9.0

在上面已經說過了,CUDA9.2版本所需要的顯卡驅動版本過高,所以這裏我選擇安裝CUDA9.0(CUDA9.1也支持)
安裝方法和上面類似
首先按Ctrl+Alt+F1進入控制檯,然後輸入用戶名密碼登陸,執行下面命令關閉圖形界面

sudo service lightdm stop

然後跳轉到存放文件的路徑再運行安裝文件,比如我的文件放在Downloads目錄下,命令如下:

cd Downloads
sudo sh cuda_9.0.176_384.81_linux.run

安裝開始以後,首先是一個協議,一直按空格到底以後,輸入accept。其他的操作如下所示:

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n(記得這裏輸入 n, 因爲你已經之前安裝過了,所以沒必要安裝了,而且通過這個安裝會出現一些問題,莫名其妙的那種)

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
 
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:
 
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
 
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y

複製代碼
第二個安裝顯卡驅動一定要選擇no,否則之前安裝的驅動就白裝了,有默認選項的直接選擇默認選項就可以了(直接回車)
安裝完成後,打開圖形界面配置環境變量,運行如下命令打開profile文件

sudo service lightdm start   //打開圖形界面
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 ldconfig
sudo reboot

查看版本和測試CUDA的例子
查看版本

nvcc --version

編譯例子測試

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

執行成功的話會出現下面信息:
在這裏插入圖片描述
編譯例子的時候如果報錯顯示:CUDA driver version is insufficient for CUDA runtime version 解決方法卸載重新安裝參考文章:https://www.cnblogs.com/wolflzc/p/9117291.html

找到對應版本,下載後先把前面的安裝的卸載再安裝
如果安裝錯了版本比,如我一開始裝了CUDA9.2,卸載操作如下:

sudo apt-get remove cuda 

sudo apt-get autoclean

sudo apt-get remove cuda*

然後在目錄切換到/esr/local/下

cd /usr/local/ 
sudo rm -r cuda-9.2

然後按照前面的安裝CUDA的教程來就可以了
接下來再添加下環境變量

sudo gedit ~/.bashrc

打開文件後,將下面內容添加到文件的最後面,保存後退出

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
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

4.安裝cuDNN7.0

下載地址:https://developer.nvidia.com/rdp/cudnn-archive
進去後下載自己對應的CUDA版本的cudnn文件,如下圖:
在這裏插入圖片描述
我是選擇 cuDNN v7.0.5 Library for Linux 千萬別選[Power8]的版本,我查了一下,這個是給Power8處理器使用的,由於v7.1.2版本還沒提供普通版本,所以就下載了v7.0.5
這裏下載是需要註冊登陸的,要填一些調查表什麼的之後才能下載,如果版本和我相同我這裏提供cuDNN的百度雲下載地址:
鏈接:https://pan.baidu.com/s/1Yi6IkjUDbiBmAd9Dm4YruQ 密碼:k73g
安裝過程也比較簡單,下載後是一個壓縮包,解壓下來放在cuda的路徑中就可以了
繼續Ctrl+alt+F1進入命令模式,關閉圖形界面

sudo service lightdm stop

使用命令解壓文件cudnn-9.0-linux-x64-v7.tgz,並且複製到cuda路徑中

tar -zxvf cudnn-9.0-linux-x64-v7.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.5  //自己查看.so的版本 對應更改  
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig 

重新啓動圖形化界面

sudo service lightdm start

沒有顯示出圖形界面的話 按Ctrl+Alt+F7進入圖形界面

安裝完成後可用 nvcc -V 命令驗證是否安裝成功,若出現版本信息則表示安裝成功
到這一步已經大功告成了,接下來就安裝Anaconda,配置Python,tensorflow等軟件

5.安裝Tensorflow-gpu版本,如果此時你都完成了,那麼恭喜你可以安裝Tensorflow-gpu版本了,然後安裝方式推薦是通過pip安裝,輸入命令:

pip install tensorflow-gpu

如果通過Anaconda安裝會出現一些問題,切記,因爲Anaconda自帶安裝cuda和cudnn等,看着方便,其實安裝了會出現一些問題,很淡疼。。如果可以還是通過pip安裝,推薦的!

安裝好了就是進入python編譯器,輸入:

import tensorflow as tf 

查看是否可以引入,然後嘗試一些輸出就可以了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章