来源:AI 研习社
文章翻译自:
Which GPU(s) to Get for Deep Learning(http://t.cn/R6sZh27)
随着时间的变化,CPU和GPU的带宽比较:带宽是GPU比CPU更快的主要原因之一。
带宽可以直接在芯片的体系结构上进行比较,例如像GTX 1080和GTX 1070这样的Pascal卡,其性能可以直接通过单独查看内存带宽进行比较。例如,GTX 1080(320GB / s)比GTX 1070(256 GB / s)快25%(320/256)。然而,不同的结构,例如像GTX 1080与GTX Titan X之类的Pascal与Maxwell不能直接比较,因为不同制造工艺(以纳米为单位),导致不同的架构对于如何利用给定的内存带宽的方式不同。这使得一切都有点棘手,但仅仅基于整体带宽就能让我们很好地评价GPU的速度到底有多快。为了确定在一个给定的条件下,一款GPU最快能多快,可以查看这个维基百科页面,以GB / s为单位查看带宽;这里列出的关于这些新卡(900和1000系列)的价格是相当准确,但较旧的卡明显比较便宜 - 特别是如果你通过eBay购买这些卡。例如,一个普通的GTX Titan X在eBay上的售价约为550美元。
另一个需要考虑的重要因素是,并不是所有的架构都与cuDNN兼容。由于几乎所有深度学习库都使用cuDNN进行卷积运算,这就限制GPU的选择只能是Kepler GPU或更高的版本,即GTX 600系列或更高版本。最重要的是,Kepler GPU一般都很慢。所以这意味着应该选择GTX 900或1000系列的GPU,以获得更好的性能。
为了粗略地估计一下这些卡在深度学习任务上的表现,我构建了一个简单的GPU等值图。如何阅读这个?例如,一个GTX 980与0.35 Titan X Pascal一样快,或者换句话说,Titan X Pascal几乎是GTX 980的三倍。
请注意,我自己并没有所有的这些卡,我并没有在所有这些卡上运行然后得到深度学习的benchemarks。比较的结果通过卡片规格以及一些可得到的计算benchmarks(一些用于加密货币挖掘的情况,这一性能在深度学习相关的计算能力上是可比较的)得出的。所以这些结果粗略的估计。实际的数字可能会有所不同,但通常错误应该是比较小的,卡的顺序应该是正确的。另外请注意,那些不足以充分利用GPU性能的小型网络会让GPU的性能看上去不好。例如,GTX 1080 Ti上的小型LSTM(128个隐藏单元;批量大小> 64)不会比在GTX 1070上运行速度快很多。为了获得图下表中显示的性能差异,需要运行更大的网络,比如具有1024个隐单元的LSTM(批量大小> 64)。
GPU之间粗略的性能比较。此比较建立于充分利用GPU性能情况下。
基于上面绘制的性能比较图,除以它们对应的价格,得到下图的基于成本的排名,越长代表性价比越高,该图某种程度上反映了不同卡之间的性价比差异。
成本效益对比图。请注意,这个数字在很多方面都有偏差,例如它没有考虑到内存。
但请注意,这种对GPU排名的衡量标准考虑并不全面。首先,没有考虑GPU的内存大小。从上面的图看,GTX 1050 Ti性价比最高,但当实际应用中你说需要的内存超过了1050 Ti所能提供的内存时,也不能用。类似地,使用4个小的GPU比仅使用1个大得GPU要复杂的多,因此小型GPU也有很多不足之处。此外,不能通过购买16 GTX 1050 Ti来获得4 GTX 1080 Ti的性能,因为还需要购买3台额外的昂贵的电脑。如果考虑这最后一点,即GPU的内存大小,得到下图所示性价比分析图。
综合考虑其他硬件的价格(比如搭载GPU的电脑价格),对GPU的性价比进行标准化。在这里,比较了一台完整的机器,包含4个GPU,配置价值约1500美元的其他高端硬件(CPU,主板等)条件下。
因此,在这种情况下,如果您想要购买更多的GPU,毫无疑问,内存越大的GPU性价比越高,因为相同内存需求条件下,不需要买更多的机器。但是,这种对GPU选择方法仍然存在缺陷。如果你预算金额有限,没有办法无法负担4 GTX 1080 Ti机器的价格,这种对比就毫无意义。因此,实际情况是,基于你有限的预算下,你可以购买到的哪种系统性能是最好的?同时,你还必须处理其他问题,例如:每天使用此GPU的时间有多长?想在几年内升级GPU或整个计算机?想在未来多长一段时间内卖掉当前的GPU,并购买新的更好的GPU?等等
所以你可以看到,做出正确的选择并不容易。但是,如果你对所有这些问题平衡的看待,就会得出类似于以下的这些结论。
一般的GPU选择建议
一般来说,我会推荐GTX 1080 Ti,GTX 1080或GTX 1070.他们都是优秀的显卡,如果你有钱,应该购买GTX 1080 Ti。GTX 1070比普通的GTX Titan X(Maxwell)便宜一些。GTX 1080的性价比比GTX 1070低一些,但是自GTX 1080 Ti推出以来,价格大幅下滑,现在GTX 1080的性价比已经能够与GTX 1070比拟。所有这三款显卡应该比GTX 980 Ti要好,因为它们具有11GB和8GB(而不是6GB)的内存。
8GB的内存可能看起来有点小,但是对于许多任务来说这已经足够了。例如对于Kaggle比赛,大多数图像数据,deep style和自然语言理解任务,这些你可能会遇到几个问题。
对于入门级的人来或是偶尔想用GPU来参加类似Kaggle比赛的人,GTX 1060是一个不错的选择。我不推荐内存只有3GB的GTX 1060 variant产品,因为6G的内存就已经很有限了。但是,对于许多应用来说,6GB就足够了。GTX 1060比普通的Titan X慢,但与GTX 980具有可比的性价比。
就综合性价比而言,10系列设计得非常好。GTX 1050 Ti,GTX 1060,GTX 1070,GTX 1080和GTX 1080 Ti都非常出色。GTX 1060和GTX 1050 Ti适用于初学者,GTX 1070和GTX 1080是适合于初创公司,部分研究和工业部门,而性能突出的GTX 1080 Ti,对于以上应用都合适。
不推荐NVIDIA Titan Xp,因为它的性价比太昂贵了。可以用GTX 1080 Ti代替。然而,NVIDIA Titan Xp在计算机视觉研究领域中仍然有一定的使用,用于处理大数据集或视频数据。在这些领域中,按照每GB的内存数量计算,NVIDIA Titan Xp只比GTX 1080 Ti多1GB,但在这种情况下也具有一定的优势。不推荐NVIDIA Titan X(Pascal),因为NVIDIA Titan Xp速度更快,但价格几乎相同。但由于市场上这些GPU的稀缺性,如果你找不到NVIDIA Titan Xp,也可以购买Titan X(Pascal)。
如果你已经有了GTX Titan X(Maxwell)GPU,那么升级到NVIDIA Titan X(Pascal)或NVIDIA Titan Xp就没有必要了。
如果你缺钱,但是你需要12GB内存来开展你的研究,那么GTX Titan X(Maxwell)也是一个很好的选择。
对于大多数研究人员来说,GTX 1080 Ti已经完全够用了。大多数研究和大多数应用,GTX 1080 Ti的内存完全够用。
在NLP中,内存限制并不像计算机视觉领域那么严格,所以GTX 1070 / GTX 1080也是不错的选择。通常是,需要解决什么样的任务以及如何进行试验,决定了需要选择哪一款GPU,无论是GTX 1070还是GTX 1080。当你选择GPU时,应该按照类似的方式推理。考虑一下你在做什么任务,如何运行你的实验,然后尝试找到适合这些要求的GPU。
对于预算有限的人来说,选择条件则更加有限。亚马逊网络服务上的GPU相当昂贵和缓慢,如果只有少量的资金,也是一个不错的选择。我不推荐GTX 970,因为它很慢,即使在某些限制条件下也是相当昂贵的(在eBay上150美元),并且存在与卡启动相关的内存问题。相反,建议花更多一点的钱购买更快,有更大的内存,没有内存问题的GTX 1060。如果实在买不起GTX 1060,我建议选择配备4GB内存的GTX 1050 Ti。4GB内存可能有限,但至少可以开展进行你的研究,只是需要你对模型进行一些调整,也可以得到良好的性能。
GTX 1050 Ti一般来说也是一个不错的选择,如果你只是想尝试一下深度学习,而没有其他更多的需求。
结论
有了这篇文章中提供的所有信息,你应该能够考虑选择哪一种合适的GPU,综合考虑所需的内存大小,带宽(GB/s)大小和GPU的价格,这一思路在未来很久也适用。最后,如果有足够的资金,建议购买GTX 1080 Ti,GTX 1070或者GTX 1080。如果刚刚开始研究深度学习,或者资金有限,可以购买GTX 1060。如果资金实在有限,可以购买GTX 1050 ti;如果想要从事计算机视觉研究,可以购买Titan Xp。