深度学习的梦想
最近,有相当多的人想知道如何选择机器学习的GPU。以现状来说,深度学习的成功依赖于拥有合适的硬件。当我在构建我的个人深度学习盒时,我查看了市场上所有的GPU。在本文中,我将分享关于选择合适的图形处理器的见解。同时,我们也需要了解:
- 为什么深度学习需要GPU?
- 哪个GPU规格很重要,为什么?
- 在选择GPU时要注意什么?
- GPU的性价比;
- 关于预算的建议。
GPU + 深度学习 = ❤(但是为什么呢?)
深度学习(DL)是机器学习领域的一部分。DL采用 DL通过使用神经网络逼近问题的解决方案。关于神经网络的一个很好的特性是,他们在数据(特征)中找到了模式。这与原来不得不告诉算法要查找什么是不同的。然而,通常这意味着模型以一个空白状态开始(除非我们是转移学习)。为了捕捉数据的本质,神经网络需要处理大量的信息。可以用两种方法——CPU或GPU。
计算机的主要计算模块是中央处理单元(即CPU)。它的目的是快速计算少量的数据。例如,在CPU上增加几个数字是非常快的。但在大量数据的操作下,它会陷入困境。例如,增加几万或几十万个数字的矩阵。在幕后,DL主要由矩阵乘法之类的操作组成。
有趣的是,3D电脑游戏依靠这些相同的操作来呈现你在《古墓丽影》中看到的美丽风景。因此,开发了GPU来处理大量的使用数千个内核的并行计算。而且,它们有一个大的存储带宽来处理这些计算的数据。这使它们成为实现DL的理想商品硬件。或者至少,直到像谷歌的TPU这样的机器学习的ASICs进入市场。
总的来说,虽然在技术上可以用CPU进行深度学习,但对于任何小真正的结果,你都应该使用GPU。
在GPU中寻找什么?
与DL相关的GPU主要特征是:
- 储存带宽——如上所述,GPU处理大量数据的能力。最重要的性能指标。
- 处理功率——指示GPU处理数据的速度。我们将计算它作为乘以每个核心时率速度的CUDA核心的数量。
- 视频RAM大小——你可以立刻在视频卡上拥有的数据量。如果你要使用计算机视觉模型,你希望它能像负担得起的那样大。特别是,如果你想参加CV Kaggle的比赛。VRAM的数量对于自然语言处理和处理分类数据(NLP)来说并不是很重要。
潜在缺陷
多个GPU
有多个GPU的原因有两个:一次训练好几个模型,或者做一个模型的分布式训练。我们会检查每一个。
一次训练几个模型是测试不同原型和超参数的好方法。它也缩短了你的反馈周期,让你一次尝试很多事情。
分布式训练或在多个视频卡上训练单个网络正在稳扎稳打地获得牵引力。如今,Tensorflow和Keras(通过Horovod),CNTK和PyTorch都可以轻松使用。分布式训练库提供几乎全部的线性加速卡的数量。例如,使用2个GPU可以使训练速度提高1.8倍。
PCIe通道(更新):使用多个视频卡的警告是你需要能够提供数据。为此,每个GPU应该有16个PCIe通道用于数据传输。 Tim Dettmers指出,每张卡上有8个PCIe通道只会使两个GPU的性能降低“0-10%”。
对于单卡,任何台式机处理器和芯片组,如英特尔i5 7500和华硕TUF Z270将使用16通道。
对于两个GPU,可以使用8x / 8x通道,也可以使用处理器和支持32条PCIe通道的主板。有32条通道在桌面CPU玩味之外。带有MSI-X99A SLI PLUS的英特尔Xeon处理器将完成这项工作。
对于3或4个GPU,使用24至32个PCIe通道的Xeon处理器,每张卡使用8个通道。
对3或4个GPU,要有16个PCIe通道可用,你需要一个强大的处理器。带有相应主板的或AMD ThreadRipper(64车道)的东西。
而且,对于更多的GPU,你需要一个更快的处理器和硬盘,以便能够足够快地满足它们的数据,它们才不会闲置。
注意Nvidia或AMD
英伟达专注于深度学习已有一段时间了,现在已经有了回报,他们的CUDA工具包已经根深蒂固了。它适用于所有主要的DL框架——Tensoflow、Pytorch、Caffe、CNTK等。目前为止,这些都没有与OpenCL(CUDA alternative)一起在AMD gpu上运行。我希望OpenCL的支持尽快到来,因为在市场上有很便宜的AMD 的GPU。此外,一些AMD卡支持半精度的计算,这使他们的性能和VRAM大小加倍。
目前,如果你想做DL,想避免主要的麻烦,选择Nvidia。
额外的硬件
你的GPU需要一台电脑:
硬盘:首先,你需要从磁盘上读取数据。建议使用SSD,HDD也可以。
CPU:数据必须被CPU(如jpeg)解码。幸运的是,任何中等的现代处理器都能做得很好。
主板:数据通过主板到达GPU。对于单视频卡,几乎所有的芯片组都可以工作。如果你正计划使用多种图形卡,请阅读该篇文章(文章地址:http://0.0.22.120/)。
RAM:建议每1G的显卡RAM有2G的内存。在某些情况下有更多的帮助,比如在内存中保存整个数据集时。
电源:它应该为CPU和GPU提供足够的能量,外加100瓦额外的能量。
所有这些花费在500到1000美元之间。如果你买了一个二手工作站花费会更少。
GPU的比较
这是所有显卡之间的性能比较。检查下面的显卡概要。值得注意的是,尽管他们之间存在巨大的价差,但TitanXP和GTX 1080 Ti的性能却非常接近。
性能比较
价格比较表明GTX 1080 Ti,GTX 1070和GTX 1060对其所提供的计算性能有很大的价值。所有的显卡都在同一价格范围,除了泰坦XP。
价格比较
泰坦XP
规格
VRAM:12 GB
存储带宽:547.7 GB/ s
处理功率:3840核@ 1480 MHz(~ 5.49 M CUDA核心时脉)
Nvidia价格:1200美元
当每GB的VRAM很重要时,这张显卡比市场上的任何其他显卡都多。
Titan X的价格,你可以得到两个带有很多的功率和16 GB VRAM的GTX 1080。
GTX 1080 Ti
规格
VRAM:11 GB
储存带宽:484 GB /秒
处理功率:3584核@ 1582 MHz(~ 5.67 M CUDA核心时率)
Nvidia价格:700美元
这张显卡是我目前使用的。这是一个很好的高端选择,它有大量的内存和高流通量。
如果你能负担得起,我推荐这个GPU。它对计算机视觉或Kaggle竞赛非常有用。
GTX 1080
规格
VRAM:8 GB
储存带宽:320 GB/秒
处理功率:2560核@ 1733 MHz(~ 444 M CUDA核心时率)
Nvidia价格:550美元
相当有能力的中高档显卡。当1080 Ti被引入时,价格从700美元降至550美元。8 GB对于大多数计算机视觉任务来说已经足够了。使用该显卡已经做够参加Kaggle了。
GTX 1070 Ti
规格
VRAM:8 GB
储存带宽:256 GB/秒
处理功率:2432核@ 1683 MHz(~ 4,09 M CUDA核心时率)
Nvidia价格:450美元
这是英伟达的最新产品。如果1080的价格超出了你的预算,这张显卡将得到相同数量的VRAM(8 GB)。同样,80%的性能占80%的价格。很合适的交易。
GTX 1070
规格
VRAM:8 GB
储存带宽:256 GB /秒
处理功率:1920核心@ 1683 MHz(~ 3,23M CUDA核心时率)
Nvidia价格:400美元
现在很难得到这些,因为它们被用于加密货币的挖掘。这个价格有相当大的VRAM,但稍微慢一些。如果你能以一个好的价格买到二手的该显卡,那就去买吧。
GTX 1060(6 GB版本)
规格
VRAM:6 GB
储存带宽:216 GB/秒
处理功率:1280核@ 1708 MHz(~ 2,19米CUDA核心时率)
Nvidia价格:300美元
它很便宜,但是6 GB的VRAM是有限的。如果你想用于计算机视觉,那可能是你需要的最小值。它对NLP和分类数据模型都是可以的。
p106 - 100也可用于加密货币挖掘,但它是没有显示输出的同一显卡。
GTX 1050 Ti
规格
VRAM:4 GB
储存带宽:112 GB /秒
处理功率:768核@ 1392 MHz(~ 1,07 M CUDA核心时率)
Nvidia价格:160美元
入门级的显卡,不能让你有很多的选择。不过,如果你不确定是否要进行深度学习,这可能是让深入了解的一种低成本的选择。
注意
Titan X Pascal
它曾经是GPU Nvidia最好的产品。它被1080 Ti淘汰,1080 Ti与它的规格相同,价格却便宜40%。
Tesla GPU
这包括K40、K80(2x K40)、P100和其他。你可能已经在使用Amazon Web Services、谷歌云平台或其他云提供商。
我对GTX 1080 Ti与K40做了一些基准测试。1080比特斯拉显卡快5倍,比K80快2.5倍。K40有12 GB VRAM,K80的VRAM高达24 GB。
从理论上讲,P100和GTX 1080 Ti在性能方面应该是一致的。 不过,这种加密货币比较在每个基准中都有P100滞后。 值得注意的是,你可以在P100上进行半精确的处理,从而使性能和VRAM大小倍增。
最重要的是,K40售价超过2000美元,K80售价超过3000美元,P100售价大约是4500美元。他们还会被桌面级的显卡吃掉。很明显,我不建议你去买。
建议
以下是我关于GPU建议,具体取决于你的预算:
超过1000美元:尽可能多地获取GTX 1080 Ti或GTX 1080。 如果你在同一个箱中运行3或4个GPU,请注意提供数据的问题。同时记住机箱内的气流和主板上的空间。
700到900美元:强烈推荐使用GTX 1080 Ti。如果你想要使用多GPU,可以使用2个GTX 1070(如果你能找到它们)或2个GTX 1070 Ti。
400到700美元:推荐GTX 1080或GTX 1070 Ti。 如果你真的想要2个GPU,也可以使用2个GTX 1060。 但是,要知道每个模型6 GB是有限制的。
300到400美元:使用GTX 1060。除非你能找到一个二手的的GTX 1070。
不到300美元:如果你真的想认真学习深度学习,可以使用GTX 1050 Ti或保存为GTX 1060。