深度学习环境升级指南 CUDA9.1+cuDNN7.1+ Pytorch

距离上次搭建环境已经过去了五个月了,在这期间pytorch终于支持了CUDA9.0和9.1,于是升级版本迫在眉睫,这就开始动手吧。

整个升级计划步骤很清晰:卸载原显卡驱动,安装新显卡驱动,卸载CUDA8.0,安装CUDA9.1,卸载cuDNN7.0,安装cuDNN7.1,卸载Pytorch-cuda8.0,安装Pytorch-cuda9.1。

  1. 准备工作

预先下载好更新的显卡驱动,CUDA9.1以及三个补丁,cuDNN7.1的压缩文件,仍然放在/home/你的用户名/Downloads下

  1. 更新显卡驱动

由于nouveau上次仍然处于被屏蔽的状态,我们不需要再关它一次,按下Ctrl+Alt+F1,登录账户,然后输入:

sudo service lightdm stop

接下来卸载原有显卡驱动,输入:

sh -s
sh ./NVIDIA.run --unistall

这里要注意,NVIDIA.run实际是你当时安装的文件的名字,希望你没有删了它。然后就和之前安装的步骤一样:

cd  /home/你的用户名/Downloads
sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
sudo ./NVIDIA-Linux-x86_64-390.48.run

具体可以参考上一篇搭建指南,最后别忘了重启电脑。

  1. 更新CUDA9.1

首先卸载原有的CUDA8.0,仍然是按下Ctrl+Alt+F1,登录账户,然后输入:

sudo service lightdm stop

然后开始卸载:

sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

卸载之后系统会提示你没有卸载干净,回到原来的安装路径下,我们会看到剩下的是原来测试用的deviceQuery和cuDNN文件。(在路径之下我们会看到两个文件夹,一个叫cuda-8.0,一个叫cuda,其实cuda文件夹只是cuda-8.0的镜像,可能是为了在编辑配置文件时不用输入版本号,这样在升级之后也就不用再去修改某些配置文件了,为了防止新版本的cuda发生冲突,我们要将文件夹清理干净。)

这些文件的权限很高,你必须去终端内一个一个的改变权限来删除,包括文件夹,举一个例子:

sudo chmod 777 / usr/local/cuda-8.0/include
sudo rm –r / usr/local/cuda-8.0/include

权限777将使你获得文件的读写权限,就可以执行删除了,rm命令表示remove,-r表示移除整个路径,重复三次这个步骤直至把原文件夹删除干净。

然后的步骤和安装cuda8.0时完全一样,按下Ctrl+Alt+F1,登录账户,然后输入:

sudo service lightdm stop
cd /home/pil/Downloads
sudo sh cuda_9.1.85_387.26_linux.run

具体步骤可以参考上一篇

安装完成后测试例子:

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

配置环境变量的过程和上一篇完全一致,把所有的cuda-8.0改成cuda-9.1即可。

  1. 更新cuDNN

由于在卸载CUDA的时候就已经把cuDNN一起卸载掉了,所以直接安装新的安装文件即可,过程也和早期版本完全相同,只需要注意相应地按照实际文件名修改指令:

tar -zxvf cudnn-9.1-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.1/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.1/lib64
sudo chmod a+r /usr/local/cuda-9.1/include/cudnn.h/usr/local/cuda-9.1/lib64/libcudnn*

更新网络连接:

cd /usr/local/cuda-9.1/lib64/  
sudo ln -sf libcudnn.so.7.1.2 libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig
  1. 更新Pytorch

首先卸载原来的pytorch:

conda uninstall pytorch
conda uninstall libtorch

安装新版的Pytorch:

conda install pytorch torchvision cuda91 –c soumith

如果网络连接不上,试一试:

pip3 install http://download.pytorch.org/whl/cu75/torch-0.3.1 -cp36-cp36m-linux_x86_64.whl

至此升级就算完成了,Anaconda对于更新了torch代码可能会报警,不过不影响使用。想忽略warning可以在代码中加入如下代码:

import warnings
warnings.filterwarnings("ignore")

如果实在终端运行程序,可以再python和文件之间加入-W ignore:

python -W ignore file.py

    原文作者:弥若无翳
    原文地址: https://zhuanlan.zhihu.com/p/35532314
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞