由于最近的tensorflow2.0和pytorch都纷纷需要cuda10的支持,即使是使用conda安装,也要跟新driver 到410以上,以前的384版本的driver也不行了。索性就一起升级了,其中遇到很多坑,记录一下,希望能帮助大家,不过安装有风险,安装需谨慎!
===============================================================
PS:推荐一个网站,所有驱动都可以在这里下 Ubuntu 环境,这位博主真是功德无量啊
===============================================================
1、下载安装文件
(1)下载驱动
在Nvidia官网下载驱动,其中选取你们适合的驱动
点击搜索后,会到下面这个页面,然后点击下载就好
如果仅仅更新driver,执行第三行命令,删除384的驱动
#ln -sf /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so.1 缺libGL时再运行,不过不管用
#apt-get install nvidia-384 nvidia-modprobe nvidia-settings 安装384相关
apt-get remove --purge nvidia-384 nvidia-modprobe nvidia-settings #删除384相关
sh NVIDIA-Linux-x86_64-410.104.run #我这里下载的是410
(2)下载CUDA安装文件
进入CUDA官方下载地址,然后选择适合的系统,然后下面就会有下载链接,可以下载。
最后,下载的文件放在服务器上,然后统一更改权限,可以顺利安装
chmod 755 *.run
2、删除cuda9
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
此处一般会建议你 auto remove 一些没有用的,如果执行了,也会删除一些有用的包,到时候安装会报错,比如说
(1)
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
此时,按照这位同学的做法,再安装回去。。。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev \
libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
#原文链接:https://blog.csdn.net/10km/article/details/61915535
又比如说:
The driver installation is unable to locate the kernel source
查找解决方法是参照这个网址,再安装一些
apt search linux-source //查找对应版本的kernel source
sudo apt install linux-source-4.8.0
#2、再装dkms
sudo apt install sysdig-dkms
所以说大家可以试试不auto remove ,要不删除的太多了。
3、关闭显示驱动 X-server
如果是界面进入的,需要按住ctrl+alt+f1,进入命令行模式,如果连接远程服务器,就不用了。
然后输入:
sudo /etc/init.d/lightdm stop
等安装完CUDA没问题以后,如果要重启,再输入
sudo /etc/init.d/lightdm restart
4、安装驱动driver
现在就可以安装驱动了,其实CUDA的run文件里面也包含了driver文件,也可以直接安装,不过我这里直接安装不成功,我又重新安装了驱动才好,不知为什么,我有410 的安装文件
sh NVIDIA-Linux-x86_64-410.104.run
然后一路点统一,就好了,直到最后输入 nvidia-smi ,能运行就好
如果你有anaconda,你可以直接使用conda安装tensorflow了,conda会自动安装好虚拟环境中的cuda和cudnn,但是、、、但是,今天我直接安装tensorflow2是不行的,他没有自动安装。参考了这位同学的方法使用conda安装tensorflow-gpu 2.0
我们可以先按照tensorflow-gpu1.13,它是会按照cuda和cudnn的,然后再升级到tensorflow2
conda install tensorflow-gpu=1.13
pip install tensorflow-gpu==2.0
或者霸气的同学可以直接安装相关依赖
conda install cudnn=7.6.0 # 有同学说要先安装cudnn,要是后安装,conda匹配的是cuda10.1 摔。。。
conda install cuda = 10.0
conda install tensorflow-gpu=2
或者初始conda 的env就建立好cuda环境
conda create -n tf_2 python=3.7 cudnn cupti cudatoolkit=10.0
5、 安装CUDA
都走到这里了,不安装CUDA10,那肯定不行,所以就直接安装cuda10,
sh cuda_10.0.130_410.48_linux.run
然后一路确定,我记得我前面有教程,不过没有也没事,需要注意的就是:
(1)跳过前面一堆说明,按q,他就到最后了
(2)一路默认过,然后他说要不要它的驱动,点No,因为我们已经安装了
然后成功了的话,就会说安装成功,不成功有日志,查查有什么问题
他会提醒我们更改环境变量,把他们加到path和librarypath
vim ~/.bashrc
#找到当年的配置,一般都配到9.0了,现在都改为10.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
#改完后刷新环境
source ~/.bashrc
6 、安装CuDNN
这个也是要安装的,网上找一个cudnn-10.0-linux-x64-v7.6.0.64.tgz,然后解压开
tar xzvf cudnn-10.0-linux-x64-v7.6.0.64.tgz
cp cuda/lib64/* /usr/local/cuda-10.0/lib64/ #直接拷贝到cuda10下面
sudo ln -sf libcudnn.so.7.6.0 libcudnn.so.7 # 建立软连接
sudo ldconfig # 更新软连接
这就是主要的流程,如果还有其他问题,积极在网上找方法,实在不行就重启,再不行重装系统吧。。。