Win10+MX250+CUDA10.1+cuDNN+Pytorch1.4安装+测试全过程(吐血)

最近疫情很严重,很多地方不让出门,很多人也都害怕被传染,包括我,咱一学生也出不了太多力,老老实实在家呆着不添乱就是最好的贡献。但是在家呆着实在无聊,学校又延迟开学,想在家做一些深度学习项目练练手(新手上路,大神勿喷哈哈哈),但是无法连上学校实验室服务器,笔记本CPU跑个demo都费劲。我这一想,笔记本不是还有个鸡肋的MX250吗?很好奇MX250和CPU哪个跑更快一点?于是乎就开始了一波操作。。。

1、配置和模块

  1. CPU == i7-10710U
  2. RAM 16GB
  3. GPU == MX250 显存2GB
  4. CUDA10.1
  5. cudnn-10.1-windows10-x64-v7.6.5.32
  6. PyTorch1.4

2、安装CUDA和cuDNN

CUDA

首先需要确定计算机是否有独立显卡,可以在设备管理器-设备显示器下查看,如果有NVIDIA字样的设备就是拥有独立显卡。
MX250
确定有独立显卡之后,还需要确定自己的显卡是否支持CUDA。可以到NVIDIA官网查看是否支持,我是在电脑上的NVIDIA控制面板-系统信息-组件处查询的。
在这里插入图片描述
可以看到,MX250是支持CUDA的。接下来就是到此处下载相应版本的CUDA。
我下载的版本是CUDA10.1。
CUDA10.1
等一顿下载完后就可以进行安装了。 安装会先解压文件到临时目录,这个目录不是安装目录,所以保持默认即可。解压完成后会进入正式安装界面,如下图 在这里插入图片描述
因为安装时没有截图,所以在网上找了10.0版本的截图,都是一样的,感谢原作者
在安装时推荐选择自定义安装,如果电脑安装有VS2017,在选项时建议取消Visual Studio Integration选项,如下图 在这里插入图片描述
之后选择自己的安装路径,默认是安装到C盘,你也可以安装到自己指定的位置,但是要记住位置,添加环境变量时要用,我就是安装到D盘D:\NVIDIA GPU Computing Toolkit\CUDA10.1目录下。安装完毕后确认系统变量是否存在以下两个路径 。在这里插入图片描述
将以下目录添加到环境变量中。
在这里插入图片描述
完成后,可以通过CMD输入nvcc -V测试是否安装成功。
在这里插入图片描述
可以看到,咱安装成功了!如果没有返回该信息,可能是安装失败,自行查找原因或者重装。。。

cuDNN

安装完CUDA之后就是安装cuDNN了。点击这里下载与CUDA对应版本的cuDNN。如果你是第一次使用,网站会要求你注册一个账号,很快就完事了。之后就可以下载了。因为我的CUDA是10.1,所以我下载的是以下版本:
在这里插入图片描述
下载完后进行解压,得到以下文件,
在这里插入图片描述
将以上文件夹内的文件复制到安装CUDA所在的对应目录下即可。

3、安装PyTorch

安装Anaconda

如果电脑里没有安装python,建议先安装Anaconda,十分方便,直接网上搜官网,或者清华镜像,下载很快。我使用的是Anaconda3-5.2.0版本。安装好后将目录添加到环境变量即可。

Conda安装PyTorch

pytorch官网选择相应版本的pytorch,复制网站的下载命令,打开Prompt,黏贴
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch即可下载。在这里插入图片描述
这是官网推荐的默认下载方式,由于某些众所周知的原因,国内下载很慢甚至会失败,所以建议采用清华镜像。在conda下运行以下命令设置从清华镜像源下载。

# 添加Anaconda的清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 设置搜索时显示通道地址
config --set show_channel_urls yes 

设置完成后再运行

conda install pytorch torchvision cudatoolkit=10.1

注意,这里没有-c pytorch
之后就是等待下载安装。安装完成后,打开CMD,进入python,输入以下命令

import torch
torch.cuda.is_availabe()

在这里插入图片描述
返回True,则说明安装成功,能够使用GPU加速啦!!!

4、模型测试

既然能够使用GPU加速了,那就用个模型来实验一下吧!LeNet作为最经典的网络之一,简单又实用,先拿它来看看效果怎么样。

基于LeNet测试速度

LeNet作为最经典的网络之一,具体结构大家应该都很熟悉,我就不仔细讲解了,数据集采用的是cifar-10,直接上结果。
首先是CPU跑的速度:平均速度17S左右。
在这里插入图片描述
好像速度还挺快的,用GPU跑会快多少呢?
来看看MX250的威力吧!!!
在这里插入图片描述
Emm…11S左右好像并没有快多少…
难道MX250真的这么辣鸡吗??容我再试试。。

基于自定义网络测试速度

为了试一试250到底有几斤几两,我自己写了一个更大的网络(没有什么严谨的研究依据,就自己随便写的结构),由6个卷积块,每个卷积块由1个卷积层、1个BN层和ReLU组成,1个全连接层,3个池化层和3个dropout组成。具体如下:
在这里插入图片描述
在这里插入图片描述
这个模型比LeNet要复杂不少,应该能有一些区分度了吧?
先康康CPU跑的结果吧!
在这里插入图片描述
在这里插入图片描述CPU已经是满负载运行了,平均速度在560S/epoch左右,这个相对复杂的模型竟然要这么“久”,有点慢了,顶不住了。

再康康GPU的情况吧:
在这里插入图片描述
我去,平均63S左右,竟然快了9倍,很惊喜了!但是为什么LeNet的效果才差这么一点??是 因为LeNet模型太简单还是别的什么问题?请大神指教。

5、总结

经过一下午的折腾,最终在我这小新Pro13上实现了GPU加速神经网络训练的小目标(虽然加速有限,但是打发了无聊,学到了技术,美滋滋)。经过实验对比发现,MX250在这两个小网络上相比于i7-10710U还是有相当可观的加速效果的。如果假期无聊,没有好的GPU,又想尝试GPU加速的小伙伴可以试一试哈!(还是实验室的GPU香啊![滑稽])

6、参考

https://blog.csdn.net/Mind_programmonkey/article/details/99688839
https://blog.csdn.net/kan2281123066/article/details/93789303

猜你喜欢

转载自blog.csdn.net/weixin_40313940/article/details/104152125