环境搭建|深度学习爱好者如何配置带GPU电脑环境
作者 | 沈浩
最近开始学习深度学习(Deep Learning)技术,特别是google的Tensorflow深度学习包开源后,深度学习已经成为大数据领域的重大计算革命,配合Teras顶层框架,使得Deep learning的学习成本降低。
目前Deep learning技术应用越来越广,一切数据都是图,CNN卷积神经网络技术充满了神奇的计算魅力。DL技术广泛应用于:图像处理、人脸识别、自动驾驶、聊天机器人、AI人工智能、机器语言翻译、图片推荐系统、声音处理、音乐作曲、机器写作等领域。
俺当时为了可能的深度学习,看很多文章都提及GPU(图形处理器)是实现DL的基本要素。因为不懂太多硬件需求,就买了新出的苹果电脑,带有两块GPU图形卡,结果悲剧了,目前的DL并不支持。
没办法,先用CPU作为处理器玩玩Teras的tensorflow吧。在处理3100张电影海报图片过程中,大概需要30分钟的建模训练时间;在另一个处理11000多张烟盒图片的VGG16建模训练大概需要2个小时,能忍受但自然需要考虑建模效率和时间问题了。
接下来开始寻找解决路径,首先想到的是采用云计算,目前Google Cloud和AWS都提供带有GPU的实例,这是一种比较理想的学习方式和工程层面的可扩展模式。
理由:
有一些深度学习课程本身就在AWS云中部署和提供教学案例及代码。
可扩展应用架构,比如linux的Ubuntu操作系统,已经安装或自动更新很多支撑包,大部分DL包也已经安装就绪,将来根据需要扩展GPU个数或存储空间等。
最低端的配置大概在1美金/每小时,看别人经验大致一个月需要5000人民币。
关键是google要翻墙,AWS服务区域也不是很明确是否适合大陆地区。
下面是google的GCE instance
自然就需要考虑是否可以自己配置带GPU的电脑来玩Deep learning。开始寻找这方面的信息了,其实过去自己组装过电脑,从使用Apple电脑后已经不熟悉组装电脑了,市场行情如何,大致多少钱,如何配置GPU和软件,价值如何?
恰好找到一篇国外文章,比较详细叙述了配置选型和安装过程,我把文章整理一些留个备份也供大家参考!
这是文章提到的电脑配置:
我没有查国内报价,大致体量可以换算一下。这台大致在14000人民币。最贵的就是GPU了,5000人民币左右。
电脑组件:
GPU ——Nvidia GTX 1080 Ti
GPU的重要性在于:
DL中的大多数计算是矩阵运算,如矩阵乘法。如果在CPU上完成,它们可能很慢。
由于我们在一个典型的神经网络中进行了数千次这样的操作,因此慢速度真的加起来就更慢了。
GPU相当方便地能够并行运行所有这些操作。它们有大量的内核,可以运行更多的线程。
GPU还具有更高的内存带宽,使其能够一次对一堆数据执行这些并行操作。
作者可选择的是Nvidia的几张牌:GTX 1070($ 360),GTX 1080($ 500),GTX 1080 Ti(700美元),最后是Titan X(1320美元)。
在性能方面:GTX 1080 Ti和Titan X类似,大致来说,GTX 1080比GTX 1070快25%,而GTX 1080 Ti比GTX 1080快约30%。
以下是作者提到采购GPU时要考虑的事项:
制造商:好像目前没得选,只能是Nvidia英伟达出品。英伟达多年来一直专注于机器学习,支撑GPU运算的CUDA工具包根深蒂固,它是DL从业者的唯一选择。
预算:泰坦X在这方面的表现非常糟糕,因为它提供与1080 Ti相同的表现约500美元。
一个或多个:我考虑挑选一些1070s而不是1080或1080 Ti。这样可以让我在两张卡上训练一个模型,或者一次训练两个模型。目前在多卡上训练一个模型有点麻烦,尽管随着PyTorch和Caffe 2的改变,GPU的数量几乎是线性缩放。另一个选择 - 同时训练两个模型似乎有更多的价值,但我决定现在获得一个更强大的卡,并在之后增加一个。
GPU内存:更多内存更好。有更多的内存,我们可以部署更大的模型,并在训练期间使用足够大的批量(这有助于梯度流)。
内存带宽:这使得GPU能够在大量内存上运行。这是GPU的最重要的特征。
考虑到这一切,作者选择了GTX 1080 Ti,主要是为了提高训练速度。今后再添加第二个1080 Ti。
中央处理器——i7最好
即使GPU是深入学习的MVP,CPU仍然重要。例如,数据准备通常在CPU上完成。如果我们要并行化所有这些数据准备,每个核心的内核和线程数量很重要。
为了保持预算,我选择了中档CPU,Intel i5 7500约为190美元。它比较便宜,但不够好,不能减慢事情。
编辑:考虑CPU,“大概是唯一的DL /多GPU最大的小问题,就是要关注的CPU /主板支持PCIe通道”。我们希望每个GPU都有16个PCIe通道,以便尽可能快地获取数据(PCIe 3.0为16 GB / s)。这意味着对于两张GPU卡,我们需要32个PCIe通道。如果选择的CPU只有16个车道。那么2个GPU将以2x8模式运行(而不是2x16)。这可能是一个瓶颈,导致图形卡的使用效果不理想。因此建议使用40线的CPU。
一个很好的解决方案将是像E5-1620 v4($ 300)这样的英特尔至强处理器。或者如果您想要像桌面i7-6850K($ 590)一样使用更高端的处理器。
内存(RAM)——32GB
如果我们要使用相当大的数据集,那么有很多内存是很好的。我有2支16 GB,总共32 GB的RAM为$ 230,并计划再购买另外32 GB。
磁盘——固态硬盘
需要一块快速的SSD磁盘,以保持操作系统和当前的数据运算存储,深度学习需要巨大数据集(如ImageNet-预先训练好的),如果慢转速硬盘不太好。
SSD:我记得当我第一个Macbook Air几年前,我以SSD的速度感到震惊。令我高兴的是,名为NVMe的新一代SSD已经开始上市。一个480 GB的MyDigitalSSD NVMe驱动器,230美元是很大的。这个宝贝以每秒千兆字节的速度复制文件。
硬盘——2 TB
虽然SSD已经变得越来越快,但硬盘已经变得越来越便宜。可以用来存储或备份大规模数据集。
母板
在选择主板时,能够支持两个GTX 1080 Ti,包括PCI Express通道数(最小为2x8)和2个卡的物理尺寸。此外,请确保它与所选的CPU兼容。一个华硕TUF Z270为$ 130是选择。如果您拥有Intel Xeon CPU,MSI - X99A SLI PLUS应该会很好。
电源——750W
经验法则:它应该为CPU和GPU提供足够的电力,加上额外的100瓦特。
英特尔i5 7500处理器使用65W,GPU(1080 Ti)需要250W,75美元的价格获得了一个Deepcool 750W Gold PSU。这里的“Gold”是指功率效率,即消耗的功率是多少作为热量浪费。
软件设置
硬件到位后需要安装支撑深度学习的软件了。具体细节keras文档有描述。
安装Ubuntu
大多数DL框架被设计为首先在Linux上工作,也支持其他操作系统。在Ubuntu安装期间,默认选项一般都能正常工作,尽量先默认安装选项。选择了以前的版本(16.04)。
接下来安装:
支持GPU运算的深度学习驱动程序和深度学习软件包、
GPU driver — 操作系统支持GPU的驱动程序
CUDA — 支持GPU运行通用代码的驱动程序.
CuDNN —支持运行深度神经网络的算法程序
安装Python3.6 通过Anacoda4.2的安装方式推荐
安装Jupyter Notebook
安装numpy,scikit-learn,scikit-image,pandas,matplotlib等(一般都安装好了)
安装HDF5
安装Tensorflow
安装PyTorch
安装Theano(可选,按吧有些案例是用的)
安装Keras
其他包,随用随按吧
Keras文档关于计算机的硬件配置说明 - https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/
推荐配置
如果您是高校学生或者高级研究人员,并且实验室或者个人资金充沛,建议您采用如下配置:
主板:X99型号或Z170型号
CPU: i7-5830K或i7-6700K 及其以上高级型号
内存:品牌内存,总容量32G以上,根据主板组成4通道或8通道
SSD: 品牌固态硬盘,容量256G以上
显卡:NVIDIA GTX 1080ti、NVIDIA GTX TITAN、NVIDIA GTX 1080、NVIDIA GTX 1070、NVIDIA GTX 1060 (顺序为优先建议,并且建议同一显卡,可以根据主板插槽数量购买多块,例如X99型号主板最多可以采用×4的显卡)
电源:由主机机容量的确定,一般有显卡总容量后再加200W即可
最低配置
如果您是仅仅用于自学或代码调试,亦或是条件所限仅采用自己现有的设备进行开发,那么您的电脑至少满足以下几点:
CPU:Intel第三代i5和i7以上系列产品或同性能AMD公司产品
内存:总容量4G以上
先可以玩玩Keras文档说明中的几个案例,都有详细的代码和说明。
一般我们也可以将这台配置的GPU电脑作为服务器,通过设置SSH Key和SSH tunnel用平时的苹果电脑远程访问进行深度学习算法建模,通过模型训练后将模型save后,在不带GPU的电脑调用load模型或weights模型,进行预测和分类。
这篇文章是看国外写的内容,我摘录了些内容,没有实际落实,现在还是CPU状态。