ubuntu下安裝cuda10.0和cudnn升級tensorflow

摘要:

本文主要記錄cuda,cudnn安裝過程。

1.通過建立軟連接,可以在多個版本里切換cuda版本

2.更新tensorflow版本,遇到Numpy版本低,又更新Numpy

3.更新顯卡驅動


1.cuda10下載

官網鏈接https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal

2.下載完成後,去文件所在文件夾,執行命令

sudo sh cuda_10.0.130_410.48_linux.run

建立軟鏈接

sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

編輯配置文件

vim ~/.bashrc
#按I切換到插入模式,輸入以下

#added by leng
#added for cuda
#這是錯誤版本,看下面正確滴
#export PATH=$PATH:/usr/local/cuda/bin
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
#export CUDA_HOME=$CUDA_HOME:/usr/local/cuda


#更新,以上寫法有問題,提示找不到libcupti.so.10.0,改爲一下寫法才正確,所以上面的屬性文件是錯的啦

export PATH="$PATH:/usr/local/cuda/bin"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME="$CUDA_HOME:/usr/local/cuda"

#按Esc退出插入模式,回到普通模式,按:鍵輸入命令,輸入wq保存退出

source ~/.bashrc  #更新配置文件

注意:在配置文件裏配置好cuda的路徑後,如果需要在cuda9.0和cuda10.0之間切換,只需要刪除原來指向/usr/local/cuda的軟鏈接,建立一個新的軟鏈接即可,不需要再改配置文件。

3.下載cudnn,選擇cuda10.0對應的版本即可,我選擇的是7.6

4.將下載好的cuDNN壓縮包解壓,得到一個名爲cuda的文件夾

#先將cudnn解壓後cuda中的文件拷貝到 /usr/local/cuda下

$sudo cp cuda/include/*.h /usr/local/cuda/include/
$sudo cp cuda/lib64/lib* /usr/local/cuda/lib64/

#創建軟鏈接

$cd /usr/local/cuda/lib64/
$sudo rm -rf libcudnn.so libcudnn.so.7
$sudo ln -s libcudnn.so.7.6.0 libcudnn.so.7
$sudo ln -s libcudnn.so.7 libcudnn.so

$sudo ldconfig

5.查看cuda和cudnn版本

$ cat /usr/local/cuda/version.txt
CUDA Version 10.0.130
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130


6.這個時候cuda10.0,cudnn7.6,更新tensorflow到新版本

#激活虛擬環境
$ source activate name

#更新tensorflow
#$pip install tensorflow-gpu(好像不行滴)
$ pip install --upgrade tensorflow-gpu

#安裝完成後查看版本
$ python
$ import tensorflow as tf




7.結果這一步import tensorflow失敗,原因是numpy版本低 ,到numpy所在位置刪除Numpy相關文件,再更新numpy

#numpy文件所在文件夾路徑
/home/XX/anaconda3/envs/XX/lib/python3.6/site-packages/

#手動刪除Numpy相關文件

#更新numpy
pip install --upgrade numpy

#這樣就沒有問題啦,查看tensorflow版本
$ python
>>> import tensorflow as tf
>>> print(tf.__version__)
1.14.0


8.下面訓練搞起來,train.py,結果。。。報錯顯示顯卡驅動與cuda不匹配。意思就是之前的cuda9.0裝的顯卡驅動版本太低,裝了cuda10.0需要更新驅動。。下面更新驅動。。。

#關閉X server
#按住ctrl+alt+F1,進入命令行模式
$ sudo /etc/init.d/lightdm stop


#運行cuda10.0的安裝包
#選擇安裝driver,opencl,x
$ sudo sh cuda_10.0.130_410.48_linux.run

#安裝失敗,查看失敗文件
#錯誤:WARNING: One or more modprobe configuration files to disable Nouveau are

         already present at:

         /etc/modprobe.d/nvidia-installer-disable-nouveau.conf.  Please be

         sure you have rebooted your system since these files were written.

         If you have rebooted, then Nouveau may be enabled for other

         reasons, such as being included in the system initial ramdisk or

         in your X configuration file.  Please consult the NVIDIA driver

         README and your Linux distribution's documentation for details on

         how to correctly disable the Nouveau kernel driver.
Note if you later wish to reenable Nouveau, you will need to delete

these files: /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
#找到這個報錯文件,刪除。再來一遍安裝,成功

#退出Xserver
$ sudo /etc/init.d/lightdm restart

查看更新後的驅動版本

nvidia-smi

至此,結束,可以正常訓練啦~

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