摘要:
本文主要记录cuda,cudnn安装过程。
1.通过建立软连接,可以在多个版本里切换cuda版本
2.更新tensorflow版本,遇到Numpy版本低,又更新Numpy
3.更新显卡驱动
1.cuda10下载
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
至此,结束,可以正常训练啦~