关闭
当前位置:首页 - 中超联赛 - 正文

小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机

admin 2019-04-13 376°c

大数据文摘出品

来历:timdettmers

编译:刘佳玮、钱天培

深度学习是一个对算力要求很高的范畴。GPU的挑选将从根本上决议你的深度学习体会。

一个好的GPU能够让你快速取得实践经历,而这些经历是正是树立专业知识的要害。假如没有这种快速的反应,你会花费过多时刻,从过错中吸取教训。

那么,现在问题来了。

假如你想购买新的GPU,应该重视哪些目标呢?GPU RAM,内核,仍是Tensor Core?

各种厂商形形色色。英伟达,英特尔,仍是谷歌?我又应该挑选哪家的产品?

本文将深入研讨这些问题,并将为你供给主张,协助你做出适宜的挑选。

本文结构如下:

首要,我会评论具有多个GPU的用处,然后评论全部相关的硬件选项,如英伟达和AMD GPU,Intel Xeon Phis,Google TPU和草创公司的硬件。然后我会评论哪些GPU规范目标是深度学习功用的杰出目标。终究,我会总结GPU的选购主张。

只想阅览终究收买主张的同学能够直接跳到文末。

多个GPU能让我的练习更快吗?

我的中心观念是,卷积和循环网络很简略并行化,特别是当你只运用一台核算机或4个GPU时。可是,包含Google的Transformer在内的全衔接网络并不能简略并行,而且需求专门的算法才干很好地运转。

图1:主核算机中的设置:你能够看到三个GPU和一个InfiniBand网卡。这是一个很好的深度学习装备吗?

像TensorFlow和PyTorch这样的现代库非常适宜并行化循环和卷积网络。以卷积为例,2/3/4 块GPU的期望加快大约分别是1.9x / 2.8x / 3.5x。关于循环网络,序列长度是最重要的参数,在常见的NLP问题中,对应的加快比与卷积网络相似或稍差。

可是小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机,全衔接网络(包含Transformer)一般具有较差的数据并行功用,而且需求更高档的算法来加快网络的这些部分。假如你在多个GPU上运转Transformer,你应该也测验在单个GPU上运转,并比较检查是否真的有加快。

在不考虑并行性的情况下运用多个GPU

除了并行运算,具有多个GPU能带来的更明显协助是,让你能够在每个G上火PU上独自运转多个算法或试验。

高效的超参数查找是多个GPU的最常见用处。尽管你没有取得加快,但你能够取得有关不同超参数设置或不同网络架构的功用的更快信息。这对新手来说也非常有用,由于你能够快速取得练习不熟悉的深度学习架构的见地和经历。

以这种办法运用多个GPU一般比经过数据并行在多个GPU上运转单个网络更有用。购买多个GPU时,请记住这一点:当你购买多个GPU时,用于进步并行性的目标(如PCIe通道数量)并不重要。

别的,请注意,单个GPU应该足以满意简直全部使命的要求。单GPU的体会规划与4个 GPU的体会不会差太多。仅有的区别是,你能够在给守时刻内运用多个GPU运转更多试验。

你该怎么挑选:英伟达 vs AMD vs 英特尔 vs 谷歌 vs 亚马逊 vs 微软 vs 草创公司

英伟达:领导者

英伟达的规范库使得在CUDA中树立第一个深度学习库非常简略,而AMD的OpenCL没有这样强壮的规范库。这一前期优势与英伟达强壮的社区支撑相结合,敏捷增加了CUDA社区的规划。这意味着只需你运用英伟达 GPU,假如呈现问题,你将很简略找到支撑;假如你自己编写CUDA,你会找到支撑和主张;而且你会发现大多数深度学习库都对英伟达 GPU供给最佳支撑。在曩昔的几个月里,英伟达仍将更多的资源投入到软件中。例如,Apex库支撑在PyTorch中完结安稳的16位梯度,还包含交融快速优化器,如FusedAdam。总的来说,软件是英伟达 GPU非常强壮的一步。

另一方面,英伟达现在有一项方针,即只答应Tesla GPU在数据中心运用CUDA,而不答应GTX或RTX卡。现在外界尚不清楚“数据中心”的严厉界说,但这意味着,由于忧虑58二手车法律问题,安排和大学将被逼购买价格贵重且性价比低的Tesla GPU。可是,Tesla卡与GTX和RTX卡比较没有真实的优势,本钱却高达10倍。

英伟达能够在没有任何严重阻力的情况下做到这一点,正表明晰他们独占的力小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机量——他们能够为所欲为地做,咱们有必要承受这些条款。假如你挑选了英伟达 GPU在社区和支撑方面的首要优势,你也需求一起承受随时或许呈现的各种束缚。

AMD:功用强壮但缺少支撑

HIP经过ROCm将英伟达和AMD GPU一致为一种通用编程言语,在七星直播编译成GPU组件之前编译成相应的GPU言语。假如咱们将全部GPU代码都放在HIP中,这将是一个重要的里程碑,但这很困难,其中就包含了移植TensorFlow和PyTorch代码库。 TensorFlow和PyTorch对AMD GPU有一些支撑,全部首要网络都能够在AMD GPU上运转,但假如你想开发新网络,或许会遗失一些细节,这或许会阻挠你完结你需求的东西。 ROCm社区也不是太大,因而很难直接处理问题。 AMD对他们的深度学习软件投入很少,因而不能盼望英伟达和AMD之间的软件距离将在未来缩小。

现在,AMD GPU的功用还能够。它们现在具有16位核算才干,这是一个重要的里程碑,但英伟达 GPU的Tensor中心为Transformer和卷积网络供给了更高的核算功用(不过关于词级循环网络而言,没有进步那么多)。

总的来说,我以为关于那些只期望GPU能够顺畅运转的普通用户,我不太引荐AMD GPU。更有经历的用户应该能够削减问题,而且经过支撑AMD GPU和ROCm / HIP开发人员,他们有助于冲击英伟达的独占位置,由于这将使每个人长期获益。假如你是GPU开发人员并期望为GPU核算做出重要贡献,那么AMD GPU或许是长期发挥杰出影响力的最佳办法。关于其他全部人来说,英伟达 GPU或许是更安全的挑选。

英特尔:尽力追逐

以我的亲身经历而言,我对英特尔Xeon Phis非常绝望,我不以为它们是英伟达发型规划与脸型调配或AMD显卡的真实竞赛对手,因而我只简略描绘一下:假如你决议运用Xeon Phi,你或许会遇到以下问题:很差的技术支撑,代码运转得比CPU还慢,编写优化代码困难,没有彻底支撑C ++ 11特性,不支撑某些重要的GPU规划形式,难以兼容依托BLAS例程的其他库(NumPy和SciPy)等等。

除了Xeon Phi之外,我非常等候英特尔的doskoinpoNervana神经网络处理器(NNP),由于它的规范对GPU开发人员而言非常强壮,而且它将答应新的算法,这或许从头界说神经网络的运用办法,但这一项目现已无休止地推迟,有传言称大部分研制都打了水漂。NNP计划于2019年第三季度/第四季度开端。假如你想等候那么长时刻,请记住,从AMD和英特尔自己的Xeon Phi能够看出,好的硬件并非全部。或许直到2020年或2021年,NNP才有才干与setmaGPU或TPU竞赛

谷歌:强壮,廉价的按需处理

Google TPU已开展成为一种非常老练的依据云的产品,具有本钱效益。了解TPU的最简略办法是将其视为打包在一起的多个专用GPU——而且只为了一个意图:进行快速矩阵乘法。假如咱们看一下Tensor-Core-enabled V100与TPU v2的功用目标,咱们发现两个体系在运转ResNet50模型时的功用简直相同。

可是,Google TPU更具本钱效益。由于TPU具有杂乱的并行化根底架构,假如你运用多于1个云TPU(适当于4个GPU),TPU将比GPU具有更大的速度优势。

尽管仍在试验中,鸡西但PyTorch现在也支撑TPU了,这将有助于加强TPU社区和生态体系。

TPU依然存在一些小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机各式各样的问题,例如,2018年2月的一份陈述称,当运用LSTM时TPUv2没有收敛。我至今没有找到该问题现已处理的报导。

另一方面,在TPU上练习大型Transformer取得了巨大成功。GPT-2,BERT和机器翻译模型能够在TPU上非常有效地进行练习。依据我的估量,TPU比GPU快约56%,而且由于它们与云GPU比较价格较低,因而它们是大型Transformer项意图绝佳挑选。

可是,在TPU上练习大型模型的一个问题或许是累积本钱。TPU具有高功用,最适宜在练习阶段运用。在原型规划阶段,你应该封闭云端来降低本钱。因而,最佳挑选是,在你的个人GPU上进行原型规划,然后在TPU练习终究模型。

总而言之,现在TPU好像最适宜用于练习卷积网络或大型Transformer,而且应小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机该结合其他核算资源一起运用,而不是作为首要的深度学习资源。

亚马逊AWS和微软Azure:牢靠但贵重

来自Amazon AWS和微软Azure的GPU实例非常具有吸引力,由于你能够依据需求轻松扩展和缩小实例。这关于赶paper或许更大的一次性项目非常有用。可是,与TPU相似,本钱会随实例数增加而敏捷累加。现在,GPU云实例太贵重而无法独自运用,我主张在云中发动终究练习作业之前,运用一些专用的廉价GPU进行原型规划。

草创公司:具有革命性的硬件概念但缺少软件

有面部提高一系列草创公司旨在出产下一代深度学习硬件。这些公司一般具有超卓的理论规划,然后被谷歌、英特尔或其他公司收买,以取得完结规划和出产芯片所需的资金。下一代芯片的开发本钱非常贵重(约10亿美元)。一旦这个阶段完结,软件就成了首要问题。现在,还没有草创公司能够出产出适用于当时深度学习硬件的软件。需求开发一个完好的软件套件才干具有竞赛力,这一点从AMD与英伟达的比如中能够清楚地看出:AMD具有超卓的硬件,但只要90%的软件——这还不足以与英伟达竞赛。

现在,没有任何公司能够完结全部的硬件和软件过程。英特尔NNP或许是最接近的,但现在来看,咱们不能盼望在2020年或2021年之前呈现有竞赛力的产品。所以现在咱们需求持续运用GPU和TPU。

因而,你就先别盼望草创公司的新硬件了。

一个优异的GPU应该具有什么功用?

练习深度学习模型时,GPU功用中最重要的特性究竟是什么?是CUDA Core吗?仍是时钟频率?或是RAM巨细?

GPU的挑选真实令人困惑:16位核算才干,Tensor Core,没有Tensor Core的16位GPU,多代GPU依然可行(Turning,Volt床戏韩国a,Maxwell)。

所幸咱们依然有一些牢靠的功用目标,咱们能够运用这些目标作为经历规律。这里有一些针对不同深度学习架构的优先级攻略:

网络和Transformer:Tensor Core> FLOP>存储器带宽> 16位核算才干

循环网络:存储器带宽> 16位核算才干>Tensor Core> FLOP

解说如下:假如我想运用卷积网络,我应该首要优先考虑具有Tensor Core的GPU,然后是高FLOP指数,然后是高内存带宽,然后是具有16位核算才干的GPU 。在确认优先级时,你也需求依据模型巨细挑选具有满足内存的GPU。

为什么优先级是这样的呢?

GPU能够快速完结两个最重要的张量操作:矩阵乘法和卷积。

考虑矩阵乘法A * B = C。将A,B的存储器复制到芯片上比核算A * B更贵重。这意味着,假如你想运用LSTM和其他常常进行很多小矩阵乘法的循环网络,则内存带宽是GPU最重要的特性。矩阵乘法越小,内存带宽就越重要。

相反,卷积受核算速度的束缚。因而,GPU上的TFLOP是ResNets和其他卷积架构功用的最佳目标。Tensor Core能够明显增加FLOP。

图2:GPU和TPU的规范化功用数据。越高越好。RTX卡假定16位核算。RNN编号指的是长度小于100的短序列的biLSTM功用。运用PyTorch 1.0.1和CUDA 10完结基准测验。

性价比剖析

GPU的性价比或许是挑选GPU的最重要规范。本文的功用剖析如下:

1.关于Transformer,我对Transformer-XL和BERT进行了基准测验。

2.关于词级伊芙蕾雅和字符级RNN,我对最先进的biLSTM模型进行了基准测验。

3.(1)和(2)中的基准测验是针对Titan Xp,Titan RTX和RTX 2080 Ti进行的。关于其他卡,我线性地缩放了功用差异。

4.我运用现有的CNN基准。

5.我运用亚马逊和eBay的均匀本钱作为GPU的参阅本钱。

图3:卷积网络(CNN),循环网络(RNN)和Transformer的规范化功用/本钱。越高越好。RTX 2060的本钱功率是Tesla V100的5倍以上。RNN编号指的是长度小于100的短序列的biLSTM功用。运用PyTorch 1.0.1和CUDA 10完结基准测验。

从这些数据中,咱们看到RTX 2060比RTX 2070,RTX 2080或RTX 2080 Ti更具性价比。为什么会这样呢?运用Tensor Core进行16位核算的才干远远超越具有更多Tensor Core中心的更大的硬件。运用RTX 2060,你能够以最低的价格取得这些辛伐他汀片功用。

可是,这种剖析存在一些应该考虑的误差:

1.这种剖析激烈倾向于较小的显卡。较小而经济高效的GPU或许没有满足的内存来运转你真实感兴趣的模型!

2.GTX 10xx卡标价过高:现在,由于游戏玩家不喜欢RTX卡,GTX 10XX卡好像加价格被哄抬过高。

3.单GPU偏置:一台具有4个低本钱卡(4x RTX 2080 Ti)的核算机比具有最高本钱/功率卡(8x RTX 2060)的2台核算机更具性价比。

正告:多GPU RTX发热问题

假如你运用多个互相相邻的GPU,那么RTX 2080 Ti和其他具有规范双电扇的RTX GPU就存在问题了——特别是一台核算机中的多个RTX 2080 Ti。多个RTX 2080和RTX 2070也会受到影响。

RTX卡上的电扇是由英伟达开发的一种新规划,用于改进运转单GPU的游戏玩家的体会(静音,低发热)。可是,假如你运用具有此开放式双电扇规划的多个GPU,那么这种规划非常糟糕。假如你想运用多个互相相邻的RTX卡(直接鄙人一个PCIe插槽中),那么你应该取得具有“鼓风式”单电扇规划的版别。关于RTX 2080 Ti卡特别如此。华硕和PNY现在市场上有RTX 2080 Ti类型,带有鼓风式电扇。假如你运用两个RTX 2070,你能够运用任何电扇,可是,我仍乐意挑选运用一个鼓风式电扇,以便在互相周围运转2个以上的RTX 2070。

所需内存巨细和16位练习

GPU上的内存关于某些使用程序(如核算机视觉,机器翻译和某些其他NLP使用程序)至关重要,你或许以为RTX 2070具有性价比,但其内存太小,只要8 GB。但请注意,经过16位练习,你简直能够具有16 GB的内存。任何规范类型都能够被轻松放入RTX 2070。

RTX 2080和RTX 2080 Ti也是如此。但请注意,在大多数软件结构中,16位运算并非默许选项,由于某些结构以32位存储权重以履行更准确的梯度下降。一个好的经历规律是,运用16位核算往往能够节约50%的内存。因而,16位8GB内存的巨细与12 GB 32位内存大致适当。

GPU引荐

现在,我的首要主张是购买RTX 2070 GPU并运用16位练习。我永久不会主张购买XP Titan,Titan V,任何Quadro显卡或任何Founders Edition GPU。可是,有一些特定的GPU也有它们的用武之处:

1.假如要额定内存的话,我主张运用RTX 2080 Ti。假如你真的需求很多的内存,RTX Titan是最好的挑选——但要保证你真的需求那么多内存!

2.假如想要额定的功用,我主张运用RTX 2080 Ti。

3.假如你缺钱,我会引荐eBay上的任何廉价的GTX 10XX卡(取决于你需求多少内存)或RTX 2060。假如太贵,能够看看Colab。

https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d)

4.假如你只想入门深度学习,GTX 1060(6GB)是一个很好的挑选。

5.假如你现已具有GTX 1070或更高版别,请再等等。除非你运用大型Transformer,不然晋级是不值得的。

6.假如你想快速学习深度学习,主张运用多个GTX 1060(6GB)。

云端深度学习

AWS / Azure上的GPU实例和Google Cloud中的TPU都是深度学习的可行全音符挑选。尽管TPU略微廉价一小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机点,但它缺少云GPU的多功用性和灵活性。

TPU或许是训小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机练物体辨认或Transformer模型的首选兵器。关于其他作业负载,云GPU是更安全的挑选——云实例的优点是你能够随时在GPU和TPU之间切换,乃至能够一起运用两者。

可是,请注意这样做的价值:假如你一向运用AWS / Azure完结作业,那么你将无法学到怎么在个人GPU上作业的技术,而且你也无法取得运用TPU的技术。假如你一向运用个人GPU,则无法学会经过云扩展到更多GPU / TPU的技术。

假如你运用TPU,当你需求完好功用时,你或许就只能运用TensorFlow了。学习云GPU / TPU作业流的价值是很高,假如你正在面对TPU、云GPU和个人GPU的挑选,你应该意识到这个价值。

另一个问题是,何时运用云效劳?假如你企图学习深度学习,或许你需求建立原型,那么个人GPU或许是最好的挑选,由于云实例或许很贵重。

可是,一旦你找到了杰出的深度网络装备,而且你只想运用数据并行性练习模型,那么运用云实树木游水的力气例是一种牢靠的办法。小型GPU足以进行原型规划,而人甜言蜜语们能够依托云核算的强壮功用来扩展到更大的试验。

假如你的资金不足,云核算实例也或许是一个很好的处理计划:在CPU上进行原型规划,然后在GPU / TPU实例上试验,以便快速进行练习。这不是最好的作业流程,由于在CPU上做原型规划非常苦楚,但它能够是一个具有高性价比的代替歙县计划。

定论

总的来说,在GPU选取上打卤面,我引荐以下三个战略:

1.坚持运用GTX 1070或更小七,原创做深度学习这么多年还不会挑GPU?这儿有份选购全攻略,波轮洗衣机好的GPU

2.购买RTX GPU

3.运用某种GPU进行原型规划,然后在TPU或云GPU上进行并行练习。

更多主张

佳GPU:RTX 2070

最差GPU:任何Tesla卡、任何Quadro卡、任何草创公司的卡; Titan RTX,Titan V,Titan XP

高性价比但价格贵重:RTX 2070

高性价比且价格廉价:RTX 2060,GTX 1060(6GB)

有点小钱:GTX 1060(6GB)

没钱:GTX 1050 Ti(4GB)或许:CPU(原型)+ AWS / TPa3纸张巨细U(练习);或许Colab。

参与Kaggle:RTX 2070。假如你没有满足的钱,能够从eBay购买GTX 1060(6GB)或GTX Titan(Pascal)进行原型规划,然后运用AWS进行终究练习。运用fastai库。

核算机视觉或机器翻译研讨员:GTX 208葬花吟0 Ti(选用鼓风机规划)。假如你练习非常大的网络,请运用RTX Titans。 NLP研讨员:16位的RTX 2080 Ti。

想认真学习深度学习:从RTX 2070开端。在6-9个月后购买更多RTX 2070。依据你接下来挑选的范畴(创业,Kaggle,研讨,使用深度学习),卖掉你的GPU,并在大约两年后购买更适宜的东西。

只想玩一玩试深度学习:GTX 1050 Ti(4或2GB)。这一般适宜你的规范桌面,不需求新的PSU。假如装得下的话,不要购买新电脑!

相关报导:http://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/

AMD 开发 英伟达
声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间白娜效劳。
admin 14文章 0评论 主页

相关文章

  用户登录