Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04


Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04

0. 前記

之前的博客已經寫過如何進行Tensorflow1.5.0+cuda8.0+cudnn6.0+gtx1080的環境搭建了,由於最近需要安裝caffe2,所以考慮對環境進行升級。可以說,環境的配置問題真的是一個很麻煩的問題,所以我也有必要寫一篇博客,幫助你們能少踩些坑吧。這次搭建的時候我特意注意了官網給出的說明,按照說明進行搭建。

一路走過來先說幾個建議:

  • 下載cuda文件就下載runfile吧,deb軟件包是官方的推薦,如果實在不會安裝,可以用這個。

  • cudnn文件盡量下載壓縮文件,不要下載deb包。

  • cudnn下載版本問題,下邊會有說明

  • 這樣可能稍微少走一點彎路。最后需要感謝的是我的老師,他也提供給我一個救命稻草:救命博客,所以也很感謝寫出這篇博客的博主。ps:之前參考了一個博客,說是1.6.0的tensorflow與cuda9&cudnn適配,但是我這里沒有成功。

  • 最后提供了官方說明文檔,還是需要仔細看看的,但還是沒有博客好~~hh

1. 環境說明

  • GeForce gtx 1080

  • ubuntu16.04

  • Nvidia驅動版本:nvidia-390

  • Cuda 9.0(原有環境Cuda 8.0)

  • Cudnn 8.0(原有環境Cudnn 7.0)

因為原有環境的原因,可能需要先卸載,再重裝,這也是官網建議的(但是我的一個小伙伴他沒有卸載8.0,還是照常使用了,所以再次建議你們先保留,如果不行的話,再重頭再來)

2. 安裝GTX1080顯卡驅動

1、在官網下載對應自己系統的驅動(官網也可以檢測驅動),選擇自己對應的系統即可,版本號是390.77,下載為一個.run文件。

此處無法用apt直接下載更新,是因為apt源里的NVIDIA驅動是非常久遠的版本了

2、打開終端,首先卸載一下之前安裝的

$ sudo apt-get --purge remove nvidia-*

3、打開blacklist:

$ sudo gedit /etc/modprobe.d/blacklist.conf

在最后添加幾行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

這個地方容易出現的問題是明明把nouveau添加到了blacklist里,安裝驅動的時候還是會出現這個錯誤,后面會講解決辦法。

保存退出。

【接下來是針對nouveau的雙重保險】

這個時候在終端嘗試一下

$ lsmod | grep nouveau

如果沒有輸出,可以忽略下面這一段,直接開始安裝1080的驅動,如果仍有輸出,終端輸入:

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

直接寫入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

保存關閉,再嘗試

$ sudo update-initramfs -u
$ reboot
$ lsmod | grep nouveau

應該OK了,如果不OK,再往下看。

4、開始安裝驅動,記住你的驅動的.run文件的下載路徑和完整文件名(如果你的版本號和我的不同,請自行修改),注銷賬戶,按Ctrl+Alt+F1進入命令界面,登入

$ sudo /etc/init.d/lightdm stop
$ sudo init 3
$ sudo /path/to/NVIDIA-Linux-x86_64-390.42.run -no-x-check -no-nouveau-check -no-opengl-files
$ sudo /etc/init.d/lightdm start

這里是關閉x server,nouveau和不下載opengl文件(我也不太明白是個啥),安裝complete后用

$ nvidia-smi

檢查一下,是否出來你的顯卡信息

最后reboot
sudo reboot

3. CUDA 9.0安裝

(如果你之前已經安裝了,可以先看)

官網下載9.0版本,選擇對應系統,請下載runfile

img

在下載文件夾終端輸入(根據下載的文件名來)

$ sudo sh cuda_9.0.176_384.81_linux.run

具體選項:

Do you accept the previously read EULA? (accept/decline/quit): accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64? ((y)es/(n)o/(q)uit): n
Install the CUDA  Toolkit? ((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is /usr/local/cuda-9.1 ]:
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
Install the CUDA Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /home/user ]:

有一個關鍵是會讓你選擇是否安裝Graphics Driver for Linux-x86_64:XXXX版本,這個地方必須選擇no!否則會覆蓋之前的驅動。

安裝完畢之后,聲明環境變量,終端輸入

$ 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}}

保存退出

$ source ~/.bashrc

在profile中也輸入上面兩行聲明

$ sudo gedit /etc/profile

保存退出,reboot一下

驗證驅動版本:390.42

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  390.42  Sat Mar  3 04:10:22 PST 2018
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 

驗證CUDA版本:9.0

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

還有可能遇到的問題是沒有安裝gcc或者gcc版本過高需要手動進行降級,都比較好解決,我好像沒有遇到這種問題,如果出現個這兩種問題手動解決一下即可,很簡單的。

4. cuDNN安裝

在官網下載,需要注冊賬號,目前提供的不同版本為:

之前那個博主寫的時候還是:

1535333903329

之前看到for CUDA9.0就開始下載,下了一個7.2的所以導致失敗 ,應該下載cudnn-9.0-linux-x64-v7.tgz(7后邊沒有別的版本號了),那篇博客中這樣說的,選擇以下的內容:

1535334047331

很不幸,發現現在已經是這樣了:

1535333870233

所以只好從CSDN中下載了一份,你們可以直接搜索剛才那個軟件包的名字,這里提供一個我上傳的鏈接https://pan.baidu.com/s/1IQFchjn7K8G_3RsG0bwsrQ吧:

因為我是修改cuDNN版本,所以還要卸載之前裝的7.1.1,沒裝過的可以直接安裝

$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*

3、官網下載的是一個后綴為.solitairetheme8的文件,修改一下即可

$ cp  cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz

4、在下載路徑解壓文件,復制到本地路徑,這里解壓出來的文件名比較重要,后面會要對照着看

$ tar -zxvf cudnn-9.0-linux-x64-v7.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.0.3
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

5、到本地cuda路徑,創建軟連接,終端輸入,

這里的文件名就參照之前解壓出來的文件名對照着寫

,就算和我下的不是一個版本也能搞定啦

$ sudo chmod +r libcudnn.so.7.0.3
$ sudo ln -sf libcudnn.so.7.0.3 libcudnn.so.7  
$ sudo ln -sf libcudnn.so.7 libcudnn.so  
$ sudo ldconfig  

6、在本地cuda路徑檢測一下

$ ll

出現cuDNN對應的版本號就證明安裝成功啦

lrwxrwxrwx  1 root root        13 3月  19 16:02 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 3月  19 16:02 libcudnn.so.7 -> libcudnn.so.7.0.4*
-rwxr-xr-x  1 root root 287641664 3月  19 16:00 libcudnn.so.7.0.4*

5. Tensorflow-GPU安裝

我直接采用的pip安裝,也是最簡單最直接的安裝方式,喜歡別的方式的可以在網上搜一下

我用的是anaconda3,所以開啟一個環境

$ conda create -n tensorflow python==3.5(我用的那個庫支持3.5比較好,版本看你們情況)
$ source activate tensorflow
$ sudo pip uninstall tensorflow
$ sudo pip install --upgrade --ignore-installed tensorflow-gpu==1.5.0

測試

$ python
import tensorflow as tf

如果沒有報錯,那就恭喜啦~~

6. Cuda的卸載,cuDNN的卸載

處理之前安裝的cuda文件

之前安裝的版本會對現有版本造成沖突,需要卸載

Use the following command to uninstall a Toolkit runfile installation:

$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

Use the following command to uninstall a Driver runfile installation:

$ sudo /usr/bin/nvidia-uninstall

Use the following commands to uninstall a RPM/Deb installation:

$ sudo yum remove <package_name>                      # Redhat/CentOS
$ sudo dnf remove <package_name>                      # Fedora
$ sudo zypper remove <package_name>                   # OpenSUSE/SLES
$ sudo apt-get --purge remove <package_name>          # Ubuntu

處理之前安裝的cuDNN

$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*

7. Reference

https://blog.csdn.net/weixin_41864878/article/details/79621210?tdsourcetag=s_pctim_aiomsg

官網說明-cuDNN安裝手冊

官方說明-Cuda安裝手冊

官方說明-tensorflow安裝手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM