Win10/Ubuntu16.04 双系统下在Ubuntu系统安装CUDA10.1 cudnn7.6 PyTorch1.4




是一次花费了不少精力的安装,看了很多博文和经验贴,以下方法在我的笔记本上可用

硬件配置:惠普暗影精灵4,GTX1060显卡

一、安装cuda

1.1 选择cuda版本

       安装cuda之前要先确认自己的GPU是否支持cuda,安装开始我自己陷入了一个误区,以为不同型号的GPU支持的cuda版本有限,而疲于搜索1060显卡对应的cuda版本,实际上nvidia官网上列出来的支持cuda的GPU型号,是支持全范围的cuda的,因此只需要根据自己的需要选择cuda版本就行。我想要安装目前最新的PyTorch1.4-gpu,对应的cuda要求9.2或者10.1,因此我选择安装cuda 10.1。

1.2 如何安装

        选择好cuda版本10.1之后,就可以去官网下载。英伟达的官网下载做的很一般,找了半天只能找到最新的10.2的下载,没有先前版本的链接。于是谷歌搜索,找到了对应的官网页面,如上。

       之前的很多教程,因为时代原因都有些过于繁琐了,看到的一些方案如下:

(1)需要先下载安装对应版本的NVIDIA显卡驱动,再下载.runfile文件安装,安装过程中不再选择装驱动。

(2)先卸载原始英伟达驱动,之后步骤同上。

(3)双系统安装总会出一些问题:如这篇文章所写。我暂时没有遇到。

实际上,现在只需要按照安装界面的提示操作即可,不需要提前对驱动做任何多余操作,安装cuda过程中会安装对应的驱动。

官网截图如下:

我使用的.deb文件安装,按照安装说明依次将命令行复制到终端执行,其中第二条要注意不要使用网站上的,要用你自己终端里执行完第一句之后生成的命令。安装完成后正常来说就cuda安装已经结束了。

但是因为我的双系统设置了UEFI启动,因此我的终端显示要设置密码,重启,这里实际上是因为要验证你安装的显卡驱动,添加对它的信任,这里一开始不知道从哪里输入密码,后来找到了很好的答案:如何输入验证密码?实际上就是按住ctrl键下滑鼠标滚轮就可以。解决 Ubuntu 在启动时冻结的问题这篇文章对这里的设置也有帮助和指导。

重启验证之后,cuda10.1及其以来的显卡驱动就安装好了。完全不像谷歌搜出来的一大把文章说的那么麻烦。

安装完需要添加环境变量:以下方法参考这篇文章

# 用gedit打开这个文件,在他后面追加内容
$ gedit ~/.bashrc

打开文件后添加以下内容,保存再关闭文件。 

# cuda
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

最后再在终端输入命令激活更新我们的设置:

source ~/.bashrc

验证安装成功:

nvcc -V

二、安装cudnn

安装cudnn就很简单了,在官网下载,下载之前需要注册,然后根据cuda版本和系统版本,下载对应的文件,我下载的是7.6.4,然后:

# 首先切换到你存放cuDNN安装包的地方,一般默认放在用户的Download文件夹下
$ cd ~/Downloads/
# 解压下载的cuDNN压缩包
$ tar xvzf cudnn-10.1-linux-x64-v7.6.4.38.tgz
# 将解压的文件复制到对应的cuda的安装路径下,复制完解压的文件就可以删掉了
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 所有用户添加读权限
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安装好了就可以验证一下:参考这篇文章

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

出现对应的cudnn版本号说明成功。至此,cuda,cudnn均已安装完成。

三、安装PyTorch1.4.0-gpu版

之前我一直认为在双系统上安装驱动和cuda是最麻烦的,为此做了一些准备。没想到还比较顺利。

一直认为PyTorch安装直接官网命令行就可以搞定,却因为网络环境的原因出现了各种问题,整个安装历程记录如下:

首先,安装命令行出错:CondaError: Downloaded bytes did not match Content-Length

这是因为网络太差造成的,诡异的是我用代理和不用代理都不能正确安装,都会超时。。。很无奈。。。

之后,脑子一热想新建一个环境安装,然而新建环境未指定python版本,造成的是新的环境下空空如也,没有一个package,我在win10上创建新环境都会有最少的核心的包,而且这环境用remove命令还删除不掉,不知道是不是因为它只会删除内部的包(大概率是应该会删除掉环境,但是我这里就是不行!),因为内部没有包因此会有警告。但是不妨,你可以重新创建一个重名的环境覆盖它,但是重新创建同名环境时,又要conda install一些包,需要下载,然而龟速,很快报错,同上。

(因为用了ss代理,所以创建环境报错:ValueError: Unable to determine SOCKS version from socks://127.0.0.1:1080/ ,每次打开终端都要重新输入:

unset all_proxy && unset ALL_PROXY
export all_proxy="socks5://127.0.0.1:1080"

)来自:https://www.cnblogs.com/DLarTisan/p/11747375.html

还有其他可参考的办法:https://blog.csdn.net/appleyuchi/article/details/79174336

https://www.cnblogs.com/yangwithtao/p/10241888.html      https://zhuanlan.zhihu.com/p/59953975

(中间还出现过这样的警告:Verifying transaction: – WARNING conda.core.path_actions:verify(963): Unable to create environments file. Path not writable. 暂时没有查找原因)

我很快决定按照报错的链接直接下载.whl文件来安装,下载的速度倒还是可以的,但是下一半因为别的原因中断了,我也就暂停配置新虚拟环境,准备直接在base下安装了。

再次,换下载源,试了清华的源与科大的源,都不行,报错:

1-

CondaHTTPError: HTTP 000 CONNECTION FAILED for url Elapsed: – An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. ConnectionError(ReadTimeoutError(“HTTPSConnectionPool(host=’mirrors.tuna.tsinghua.edu.cn’, port=443): Read timed out.”))

2-更频繁的是这个错误

conda.exceptions.UnavailableInvalidChannel: The channel is not accessible or is invalid.

而且解决这个错误还会引入另一个问题:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

貌似是对命令行输入json解析出问题?谷歌了一大圈没找到正确的原因和同样的情况,经过多次尝试还是放弃。

再再次,换用pip命令来安装,但是用官网的pip指令还是不成,又按照一些文章里写的,更改换用阿里、清华的pip源,无一例外下载都异常缓慢会出和conda安装一样的错误。

最后,万般无奈之下,将报错信息的链接打开下载对应的whl文件,在下载好了之后离线安装torch1.4.0和torchvision0.5.0,安装终于成功,此处参考https://blog.csdn.net/yucicheung/article/details/79094657

很坎坷的把原本一行指令就能安好的框架装好了,心酸。

 

 

发布了119 篇原创文章 ·
获赞 11 ·
访问量 3501