深度学习环境配置(一)- CUDA安装

Taihua 于 2020-04-12 发布

一个人要走多少路,才有资格叫做一名男子汉?

一个人要仰望多少次,才能拥有属于自己的蓝天?

一个人要碰到多少次重装电脑系统,才能开始学会记录怎样配置环境?


a.png

经常碰到电脑黑屏后只剩一个鼠标的情况,第一次花了几天时间找原因,什么方法都试过了,最后都只能靠重装系统来解决问题。虽然重装系统一般不会影响非系统盘的文件,但是每次所有软件都重新安装简直太麻烦了,尤其是anaconda,cuda等深度学习环境,简章一路是坑。从最开始的两天时间把系统配置成原来的状态,到现在一上午就能搞定,还是有很多经验教训可以拿出来分享一下的。

首先,先将一些容易装的软件装上,像Adobe,IDM,GIT,PotPlayer,微信之类的,基本上一步一步来就行。

接下来就是配置深度学习(Deep Learning)的实验环境了,基本上现在不管做计算机视觉(CV)还是自然语言处理(NLP),由于数据量太大,庞大的计算量对电脑的性能提出了较高的要求,都需要用到显卡加速。

显卡是电脑进行数模信号转换的设备,承担输出显示图形的任务。就像电脑联网需要网卡一样,电脑里的数据要显示在屏幕上就需要显卡,其核心原件是GPU(Graphic Processing Unit,图形处理单元)。GPU刚开始仅用于电脑图形渲染,但随着显卡的不断发展,GPU变得越来越强大,在计算上已经超越了通用的CPU,只用来做图形处理太浪费了。并且CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务),于是人们提出可以用GPU来做浮点计算。

直接把浮点运算交给GPU是做不到的,因为它只能用于图形处理,但是可以把浮点运算做一些处理,包装成图形渲染任务,然后交给GPU来做。不过这样做有一个缺点,就是你必须有一定的图形学知识,否则你不知道如何包装。于是,为了让不懂图形学知识的人也能体验到GPU运算的强大,显卡厂商英伟达(NVIDIA)提出了CUDA(Compute Unified Device Architecture)的概念。CUDA是NVIDIA推出的运算平台,包含了CUDA指令集架构以及GPU内部的并行计算引擎。

GPU加速基本用的都是的NVIDIA显卡,而要用GPU加速深度学习计算就必须先安装CUDA。由于不同系统可能存在不一样的情况,以下方法只在我的电脑环境下尝试过:

系统:Win10 64位
显卡:NVIDIA GTX 1060 CUDA 10.2
Anaconda 3
Python 3.7

1. 安装Visual Studio

安装CUDA前需要提前更新好显卡驱动,一定要安装Visual Studio。可以参考一下CUDA的安装指南,看一下它支持什么系统,适合安装什么版本的VS,点击链接打开安装指南


cuda.png

可以看到,cuda10.2支持64位Win10 和众多版本的Visual Studio。我选的是Visual Studio 2015社区版的联网下载(下载链接),2017等历史版本见官网离线安装请自行百度。

其中,最重要的组件是Visual C++语言支持,不知道Python语言支持需不需要,反正我把它选上了,另外一个必要的组件是Win 10 SDK,有三个,都装的话要24G,看网上别人只选了其中一个,记得之前一次安装好像只选了其中一个通用TOOL和Win 10 SDK …4393也能用,所以就先只选了这些,就这几个就已经要17个G了,安装时间还特别长,安装前请注意一下用的是不是流量。


vs.jpg

2. 安装CUDA

接下来进入漫长的等待过程,等待的时候可以先把CUDA准备一下,打开CUDA下载官网。根据提示,选择自己电脑系统适合的CUDA版本:


cuda.jpg

我下载完之后是CUDA 10.2,下载下来的cuda_10.2.89_441.22_win10.exe是可执行文件,但是我们可以用WinRAR将这个exe解压。我们打开cuda_10.2.89_441.22_win10.exe解压后cuda_10.2.89_441.22_win10的文件夹,进入到..\CUDAVisualStudioIntegration\extras\visual studio integratin\MSBuildExtensions路径下,有4个文件。将它们拷贝出来保留着。安装完VS后,默认电脑已经装好了显卡的驱动(包括GeForce Experience等等)。

下面开始安装CUDA,进入解压后的cuda_10.2.89_441.22_win10文件夹,双击setup.exe,也可以直接双击下载的cuda_9.2.88_win10.exe。只是双击cuda_9.2.88_win10.exe也是需要解压的,浪费时间,既然之前已经解压了,就不要麻烦程序再解压一遍了,还费时间。双击setup.exe后,安装程序选择自定义安装(网上有人选精简安装,后面没装成功,连自己本身电脑的显卡驱动都坏了,重新下显卡驱动也装不上,记得事先备份显卡驱动)。


cuda2.png

只勾选CUDA里的Development、Runtime、Documentation、Samples。千万不要勾选Visual Studio Integration,按理说不勾选Visual Studio Integration之后是能顺利完成的,据说精简安装就是因为安装了Visual Studio Integration才失败的。安装过程中有时候会提示你安装一些CUDA的补丁文件,修复CUDA中的一些问题,直接安装就是了。


cuda3.png

安装完毕后,打开刚刚MSBuildExtensions路径下保留的4个文件,将所有文件拷贝到VS的对应目录下,参考路径如下C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations。

安装结束后,一般系统变量会自动添加,看一看环境变量有没有自动添加,没有的话自己手动加一下,CUDA就安装完毕了。 (查看环境变量Tips:右键桌面图标“此电脑”–>属性–>高级系统设置–>环境变量)


cuda4.jpg

验证CUDA安装:cmd命令后输入nvcc -V,能看到CUDA的版本信息说明CUDA安装成功了。


cuda5.jpg

3. 安装cuDNN

接下来安装cuDNN ,cuDNN是NVIDIA推出的用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。CUDA就好像是一个工作台,cuDNN就是工作上进行深度神经网络加速必不可少的工具。cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。

打开cuDNN 下载官网,下载对应CUDA 10.2版本的cuDNN ,没有账号的需注册账号才能下载,我下载的cudnn版本是7.6.5。从官方安装指南可以看出,只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。


cudnn.jpg

解压cudnn-10.2-windows10-x64-v7.6.5.32.zip,将文件夹里的内容拷贝到CUDA的安装目录并覆盖相应的文件夹,CUDA目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2。由于cuDNN只是简单的插入式设计,只要拷贝进去就算安装成功了。

下一篇介绍安装Anaconda,以及对应版本的Tensorflow、Pytorch等深度学习框架,再测试深度学习能否成功使用GPU加速。



参考资料:
吴一奇:显卡、GPU和CUDA简介
籥鸑:tensorflow-gpu1.8.0+win10+vs2017+CUDA9.2 安装——从挖坑到跳坑到出坑
Sunglam:CUDA与cuDNN
houzupi2534:win10 cuda10.0 cudnn安装 卸载cuda9.0