手把手教学!Win10深度学习GPU开发环境搭建步骤 | 教程

 

如果从现在开始决定学习深度学习,写代码、搭建自己的模型,那么准备开发环境将是你艰难的第一步。橘子当时搜必应、查谷歌 忘了度娘吧,安装攻略没少看,结果真到自己上手实践的时候,依然碰到了不少问题。

本文将尝试站在萌新的视角,尽力还原这一过程中可能碰到的种种问题,希望它能指引着你顺利完成配置过程、帮你省下一些宝贵的时间。

01.

硬件准备

一个完整的深度学习GPU开发环境需要硬件和软件两方面的支持,在硬件部分,我将从GPU、CPU、散热、主板、电源、内存、硬盘和显示器几方面分别介绍。

  • GPU

深度学习需要进行大量矩阵运算,如果不考虑云端服务提供的TPU资源,一块足够好的GPU就是普通人的性价比之选。

目前最常用的是NVIDIA显卡,主要关注的GPU性能参数是显存CUDA计算能力

显存关系到你能训练多大的深度学习模型。8-11GB的显存对现阶段而言是够用的,预算充足的前提下,建议选择更高的显存。

显卡的CUDA计算能力会影响模型训练的速度。不同版本的TensorFlow要求不同,最新版本的最低要求是3.5以上

2020年Lambda推荐的显卡型号有:

  • RTX 2060 (6 GB): 如果你只是想在空闲时间玩玩深度学习模型。

  • RTX 2070/2080 (8 GB): 如果你是认真想做深度学习,但预算又非常有限。8 GB的显存能满足大多数模型的需求。

  • RTX 2080 Ti (11 GB): 如果你是认真想做深度学习,并且预算稍高一些。RTX 2080 Ti比RTX 2080提速40%。

  • Titan RTX/Quadro RTX 6000 (24 GB): 如果你需要频繁使用当下最好的深度学习模型,但没有足够的预算购买RTX 8000。

  • Quadro RTX 8000 (48 GB): 你在为未来投资!甚至有可能幸运地在今年就研究出下一个最先进的深度学习模型。

你也可以选择购买二手的GTX 1080ti (11 GB)

  • CPU

首先要明确的是,相比于GPU,深度学习并不那么需要高性能的CPU,在运行深度神经网络时CPU承担的运算量很少,所以挑选CPU不是越贵越好

在深度学习任务中,CPU主要承担的工作是数据预处理。为了不让这一步成为瓶颈,至少保证每个GPU能对应4个CPU线程,CPU主频最好在3.6 GHz以上

  • 散热

不可忽视的环节。一般GPU温度达到80℃就会触发保护、降低性能。因此无论是选择风冷还是水冷,必须要配备散热系统

另外,由于NVIDIA显卡首先都是游戏显卡,已经针对Windows操作系统做了优化,可以很方便地在Windows系统中更改风扇相关选项。而大部分深度学习库都是为Linux操作系统写的。这一矛盾我将在之后提供一种解决方案。

  • 主板

没什么特别的,保证有足够的PCIe端口

  • 电源

一种说法认为,将GPU和CPU的功率相加乘以110%就是最低要求;还有一种说法认为,电源在50%负载下转换效率最高,因此应该将所有配件的功耗相加乘以200%,这两种说法都供你参考。此外,还是要保证有足够的PCIe端口。

  • 内存

记住一个原则:内存应该大于显存

理想情况是配备32 GB及以上的内存,如果预算有限,那么16 GB也可以接受。

  • 硬盘

主要关注的性能参数是存储容量读取速度

其中,存储容量决定了你能用多大的数据集,读取速度会影响到训练过程中的I/O操作

固态硬盘(SSD)的读取速度显著超过普通机械硬盘,建议选择一块256 GB以上的SSD。如果同时有机械硬盘和SSD,记得在实际训练之前,先把要用到的数据从机械硬盘复制到SSD。

  • 显示器

既然是做数据分析而不是做设计,没什么特殊要求,够用就行。而根据经验,多一个显示器可以 用来打游戏 显著提升你的工作效率。

橘子目前使用的工作站配备了Intel Xeon CPU,NVIDIA GTX 1080ti (11 GB) GPU,16 GB内存以及256 GB的SSD。

这个配置大概是什么概念呢?

在这台电脑上训练一个拥有10,484,994参数的深度卷积神经网络,大致需要7分38秒。

02.

软件准备

假设你已经有了足够好的电脑,接下来需要安装:

  • MinGW-w64 和 MSYS2 – 用于在Windows下搭建类Unix环境(也就是上文提到的解决方案:Windows、Linux,一个都不能少~)

  • NVIDIA 显卡驱动 – 允许系统使用GPU带来的运算加速

  • Visual StudioWindows 10 SDK – CUDA需要,如果不提前装好,CUDA安装程序也会在最后一步提醒你的

  • CUDA Toolkit – GPU C语言库,为高性能GPU加速应用程序提供开发环境

  • cuDNN – 基于CUDA,深度学习使用的GPU加速基元库

  • Python 和 pip – 机器学习领域最常用的编程语言及其包管理工具

  • Pytorch/TensorFlow – 两个都是主流的深度学习框架,可以二选一

为了以后更好的编程体验,你还会需要:

  • Sublime Text – 文本编辑器,用来写代码和看代码,换一个同类的也可以

  • Jupyter Notebook – 以网页的形式打开,可以在浏览器页面中直接写代码、运行代码,运行结果也会直接在代码块下显示

  • 安装MinGW-w64和MSYS2

我把这一步提到最前面来讲,因为一旦类Unix环境配置好,后续操作就可以在Powershell中无缝使用Linux系统的常用命令,体验非常顺畅。

Win 10 (64位) 的用户请在MSYS2官网下载页面选择msys2-x86_64的安装包。

下载安装完成之后,打开MSYS2,在窗口中输入以下命令安装:

pacman -S mingw-w64-x86_64-gcc

(可选)以上一步安装的gcc为例如果还需要安装其他Linux库,可以先输入以下命令查询,mingw-w64-x86_64-gcc可替换为其他任何库的名称:

pacman -Ss mingw-w64-x86_64-gcc

查询之后安装命令同前

在搜索框中搜索「编辑系统环境变量」,「系统属性」–「高级」中选择「环境变量」

将MSYS2相关的三个目录(如图)添加到「系统变量」的「Path」中。

以后类似的步骤如何添加环境变量就不再重复啦

这样就可以在Powershell中使用Linux命令了。

  • 安装NIVIDIA显卡驱动

NVIDIA官网可以按照GPU型号下载最新的显卡驱动程序。如果已经安装,强烈建议你在开始下一步之前先检查更新。

在开始菜单图标上右键「Windows Powershell (管理员)」,以管理员身份打开Powershell,进入nvidia-smi所在目录:

cd ‘C:Program FilesNVIDIA CorporationNVSMI’

以后打开Powershell都默认管理员,不再重复

运行「nvidia-smi」命令:

.nvidia-smi

可以看到当前显卡的型号、显存、驱动版本以及正在使用显卡的进程。后续安装了CUDA之后,也可以看到CUDA版本。

如果这个命令不起作用,请先检查你的显卡驱动有没有安装好。

  • Visual Studio和Windows 10 SDK

在开始安装CUDA之前,先检查一下自己电脑上有无Visual Studio和Windows 10 SDK。在VS官网选择Community版本。

安装程序还会进行两次下载,需要耐心等待。

两次下载完成后,为了后续安装和测试CUDA,「使用C++的桌面开发」和「Windows 10 SDK」两项是必须安装的,其他组件可以看个人需要。

  • 安装CUDA Toolkit

根据当前显卡驱动版本,选择对应的CUDA版本。最新版本的TensorFlow (>= 2.1.0)支持CUDA 10.1,需要显卡驱动版本高于418.x。

在所有CUDA版本列表中选择,以CUDA 10.1为例下载本地安装包。

双击下载好的文件,安装过程会自动开始。

安装过程中,软件协议选择「同意并继续」

选择默认的「精简」模式,然后下一步。

如果跳出Windows安全中心的提示,继续「安装」

最后一步会检查Visual Studio,如果前面已经安装好,就没有问题,按要求重启电脑。

正常安装完成后,CUDA的目录应该已经存在于系统环境变量「Path」中,为了保险可以检查一下。

打开图中目录,根据你的Visual Studio版本打开对应的文件,比如我选择「nbody_vs2017.sln」

注意「ProgramData」可能是隐藏文件夹,在「文件」–「查看」勾选「隐藏的项目」

选中「nbody」,菜单栏中选生成解决方案。

在「输出」栏中得到下图结果说明生成成功。

在Powershell中输入以下命令打开nbody目录:

cd ‘C:ProgramDataNVIDIA CorporationCUDA Samplesv10.1binwin64Debug’

运行nbody:

.nbody.exe

运行成功结果如图,可以看到CUDA使用的GPU。

CUDA官方文档中有更详细的安装步骤说明。

  • 安装cuDNN

接下来安装cuDNN。进入cuDNN网站页面并选择「download」之后会要求登录。

注册一个NVIDIA账号即可。

按照当前CUDA版本选择对应的cuDNN版本下载。

将下载好的压缩包解压,分别替换到CUDA目录下对应的文件夹中(这步操作需要管理员权限)

在Powershell中检查cuDNN版本需要两步:

cd ‘Program FilesNVIDIA GPU Computing ToolkitCUDAv10.1include’
cat cudnn.h | grep CUDNN_MAJOR -A 2

运行结果中对应的三个数字就是cuDNN的版本号,如图cuDNN版本为7.6.5。

  • 安装Python和pip

Python官网下载所需安装包,需要哪个版本可以看深度学习框架的要求,比如TensorFlow 2.0要求Python版本为3.5-3.7。

我安装的是Python 3.6.7。

完成后在Powershell中输入「python」,如果出现如下界面说明安装成功,quit()退出。

pip官网文件列表中下载.tar.gz安装包。

在Powershell中,先用「cd」命令打开安装包所在目录,然后输入如下命令解压:

gzip -dv pip-20.0.2.tar.gz
tar -xf .pip-20.0.2.tar

解压之后输入如下命令,回车,将自动安装pip:

python setup.py install

输入以下命令可查看pip是否可用:

python -m pip –version

  • 安装Pytorch或TensorFlow

– Pytorch –

Pytorch官网查询安装最新版本Pytorch的「pip」命令。需要旧版本的Pytorch也可以在官网查到,在Powershell中输入对应的命令即可安装。

如果安装过程中因为网络问题超时报错,橘子在文末提供了适用于Python 3.6、Pytorch 1.3.1的.whl文件,使用方法是在Powershell中「cd」到.whl文件所在目录,然后敲以下命令:

pip3 install .torch-1.3.1-cp36-cp36m-win_amd64.whl

安装完成后可以输入如下命令验证:

python -c 'import torch; print(torch.Tensor([1]))'

如果结果是「tensor([1.])」说明安装成功。

– TensorFlow –

在TensorFlow官网可以找到最新版本以前版本的TensorFlow。与Pytorch类似,有两种安装方式,第一种是使用「pip」直接安装:

pip3 install --upgrade tensorflow

第二种是下载.whl文件并安装,橘子使用的是适用于Python 3.6的、TensorFlow 2.0.0的.whl文件:

pip3 install .tensorflow_gpu-2.0.0-cp36-cp36m-win_amd64.whl

安装完成后可以输入如下命令验证:

python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

安装成功的结果如下。

  • 安装Sublime Text

直接从Sublime Text官网下载安装就好。

  • 安装及配置Jupyter Notebook

在Powershell中输入如下命令安装Jupyter:

pip install notebook

除了文档中写的Jupyter Notebook运行方法,在Windows中还可以写一个.bat文件,简单三步就可以将Jupyter notebook运行目录改到任何位置:

1、打开Powershell并输入如下命令,生成文件「C:Userslenovo.jupyterjupyter_notebook_config.py」记录默认配置(「lenovo」替换为你电脑中的用户名)

Jupyter notebook --generate-config

2、使用Sublime Text打开这个文件。

3、用快捷键「Ctrl+F」找到如下行:

#c.NotebookApp.notebook_dir = ‘’

去掉「#」注释,把你想要的目录写进去,比如在D盘新建一个目录叫「jupyter」

c.NotebookApp.notebook_dir = ‘D:/jupyter’

这三步操作完之后,打开Jupyter的默认方式是先「cd」到这个配置好的目录,然后输入「jupyter notebook」

这种方法有点麻烦,更省事的办法是写一个.bat文件,无论这个文件放在哪,下次想要打开Jupyter的时候只要以管理员身份运行这个文件就可以了。

例如,打开Sublime Text新建一个文件,写入如下语句并将文件存为「open_jupyter.bat」

@echo offD:cd jupyterjupyter notebook

成功在浏览器打开Jupyter Notebook并新建一个Python 3文件的效果。

03.

最后的总结

目前为止,橘子已经尽力回忆了安装过程中可能遇到的所有坑,但毕竟没法面面俱到。框架一直在更新换代,而我永远不知道哪里会出现新的问题。

如果你按照本文的步骤依然碰到了问题,我诚恳地建议你,在开口问之前先自己去查,因为搜索引擎和Stack Overflow大概率会给出答案。

这里有份重点可以帮你避开大部分坑(敲黑板):

  • 更新NVIDIA显卡驱动为最新

  • 始终以管理员身份打开Powershell

  • 安装CUDA之前检查一下电脑上有没有装好Visual Studio和Windows SDK

  • 根据NVIDIA显卡支持的CUDA版本选择对应的cuDNN、Pytorch/TensorFlow

  • 确定Python版本与CUDA、cuDNN和深度学习框架兼容

  • 报错时优先检查Windows系统环境变量

未经允许不得转载:大自然的搬运工 » 手把手教学!Win10深度学习GPU开发环境搭建步骤 | 教程

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址