如何训练深度神经网络络,单个GPU和GPU集群有什么区别

本文來源地址:https://www.leiphone.com/news/201705/uo3MgYrFxgdyTRGR.html
与“传统” AI 算法相比,深度学习(DL)的计算性能要求,可以说完全在另一个量级上。
而 GPU 的选择,会在根本上决定你的深度学习体验。那么,对于一名 DL 开发者,应该怎么选择合适的 GPU 呢?这篇文章将深入讨论这个问题,聊聊有无必要入手英特尔协处理器 Xeon Phi,并将各主流显卡的性能、性价比制成一目了然的对比图,供大家参考。
先来谈谈选择 GPU 对研究深度学习的意义。更快的 GPU,能帮助新人更快地积累实践经验、更快地掌握技术要领,并把这些应用于新的任务。没有快速的反馈,从错误中学习要花费太高的时间成本,学习深度学习便很可能变成一个令人反胃、进而望而生畏的经历。
是否需要多卡?
出于最初的激动,我走上了多卡交火的不归路——用 40Gbit/s 的 InfiniBand 桥接器连接,我搭建了一个迷你 GPU “集群”,万分激动地试验多卡是否能有更好的表现。
但很快我就发现,让神经网络在多卡上高效地并行处理,其实是一件挺不容易的事。尤其是对于更密集的神经网络,性能的提升可以用一句“不过如此”来形容。通过数据并行化,小型神经网络倒可以很高效地并行处理,但大型的就不行了。比如 Kaggle 竞赛“Partly Sunny with a Chance of Hashtags”,我用深度学习方法拿下了第二名,多卡就基本没有加速效果。
这之后,我继续探索如何在多卡环境玩深度学习。
我开发了一个全新的 8 bit 压缩技术,其模型并行化比起 32 bit 方法要高效得多,尤其是密集或全连接层。但我同时发现,并行化可以让你极度失望——我幼稚地针对一系列问题优化了并行算法,结果发现,即便有优化的特制代码,多 GPU 的并行化仍然效果一般,尤其考虑到投入的大量精力。
在搞并行化之前,你必须要非常了解你的硬件,以及它与深度学习算法的相互支持程度,来估计是否能从并行化获益。
这是我的 PC。你看到的是三块泰坦以及 InfiniBand 桥接卡。但这个配置适合深度学习吗?
从那时起,对 GPU 并行的支持越来越常见,但离普及还差得远,更不要提高效地运行。到目前为止,唯一一个能在多卡、多机环境实现高效算法的深度学习框架,是 CNTK。它利用了微软特制的具有 1 bit 量化(高效)和 block momentum(非常高效)的并行化算法。
如果在 96 卡 GPU 集群上运行 CNTK,线性速度预计可达到 90 到 95 倍。PyTorch 或许会是另一个能高效地支持多机并行化的框架,但暂时还没到位。如果你在一台设备上搞并行化,你的选择基本就是 CNTK、Torch 或者 PyTorch。这些框架有不错的加速表现(3.6-3.8 倍),对于一机四卡(最多)有预定义的算法。其他支持并行化的库和框架也存在,但它们要么很慢(比如 TensorFlow,只有两到三倍的加速);要么对于在多卡环境很难用(比如 Theano);再要么两个缺点都有。
如果并行化对你很重要,我推荐你用 Pytorch 或 CNTK。
多卡,但不搞并行
多卡的另一个优势是,即便你不对算法做并行化,还可以同时跑多个算法、实验——每个算法在在一个 GPU 上单独运行。你不会获得任何加速,但同时使用不同算法或参数,你会得到更多关于效果表现的信息。如若你的主要目标是尽快积累深度学习经验,这是非常有用处的。对于需要对一个新算法的不同版本做实验的研究人员,这也相当有用。
这是多卡在心理上的价值。处理一个任务与获得结果反馈之间的时间越短,大脑把相关记忆碎片组织起来、建立起该任务知识图的效果就越好。如果数据集不大,你在两块 GPU 上用这些数据同时训练两个卷积网络,你会很快就会知道“一切顺利”的感觉有多好。你会更快地发现交叉验证误差,并做合理解释。你能发现一些线索,让你知道需要添加、移除或调整哪些参数或层。
总的来讲,你可以说对于几乎所有任务,一块 GPU 基本就够了。但用多卡来加速深度学习模型,正在变得越来越重要。如果你的目标是快速入门深度学习,多块便宜的显卡也是不错的。就我个人而言,我更倾向选择多块弱一点的 GPU,而不是一块核弹,对于研究实验也是如此。
应该选哪家的加速器——英伟达 GPU,AMD GPU,还是英特尔 Xeon Phi?
英伟达的标准算法库,使得在 CUDA 中建立第一批深度学习库非常简单。但对于 AMD OpenCL,这样的强大标准库并不存在。现实是,现在 A 卡并没有好用的深度学习库——所以一般人只能选 N 卡。即便将来有了 OpenCL 库,我仍会接着用 N 卡。原因很简单:GPU 通用计算,或者说 GPGPU 的社群基本上是围绕着 CUDA 转的,而没有多少人钻研 OpenCL。因此,在 CUDA 社区,你可以立刻获得好的开源方案和代码建议。
另外,对于深度学习,即便这项技术及其产业尚在襁褓之中,英伟达可谓是全面出击。老黄的投入并没有白费。那些现在才投入资金、精力,想要赶上深度学习风口的公司,由于起步晚,离英伟达的距离有老大一截。当前,使用任何除 NVIDIA-CUDA 之外的软硬件组合玩深度学习,简直是故意跟自己过不去。
至于英特尔 Xeon Phi,官方宣传是你能用标准的 C 语言代码,并轻松把代码转化为加速的 Xeon Phi 代码。该功能听着不错——你也许会想着可以借助海量的 C 语言资源。但实际情况是,只有非常少数的 C 语言代码有支持,而且大部分能用的 C 代码会非常非常的慢。因此,它其实比较鸡肋。
我曾在一个 Xeon Phi 集群工作站搞研究,这期间的经历不忍回想,一把辛酸泪:
我无法运行单位测试,因为 Xeon Phi MKL 和 Python Numpy 不兼容;我不得不重构大部分的代码,因为 Xeon Phi 编译器无法对模板做恰当的 reduction,比如说对 switch statement;我不得不修改 C 界面,因为 Xeon Phi 编译器不支持一些 C++11 功能。
所有这些迫使我在心酸沮丧中重写代码,并且没有单位测试。这过程极度漫长,堪称地狱般的经历。
直到我的代码终于成功执行,但所有东西速度都很慢。有一些问题,搞不清是 bug 还是线程调度程序的原因,总之如果张量大小接连发生改变,性能就会大幅降低。举个例子,如果你有大小不同的全连接层或 dropout 层,Xeon Phi 比 CPU 还要慢。我在独立矩阵乘法上重现了这个问题,并发给英特尔,但没有回音。
所以,如果你真想搞深度学习,离 Xeon Phi 越远越好。
预算有限,怎么挑 GPU?
想到为深度学习挑选 GPU,你脑子里冒出来的第一个问题大概是:最重要的性能参数是什么?Cuda 核心数目?频率?显存大小?
对深度学习性能影响最大的参数是显存带宽。
简单来讲,GPU 为显存带宽而优化,为此牺牲了显存读取时间,即延迟。而 CPU 恰恰与此相反——如果只涉及少量内存,它能非常快速地做计算,比如个位数之间的乘法(3*6*9)。但是对于大量内存之上的运作,比如矩阵乘法(A*B*C),CPU 是非常慢的。由于高显存带宽,GPU 就很擅长处理这类问题。当然,CPU 与 GPU 之间有的是微妙细致的区别,这只是非常重要的一个。
因此,如果你想要买一个玩深度学习快的 GPU,首先要看显存带宽。
从显存带宽评估 GPU
近几年 CPU、GPU 的带宽对比
同一代架构内,GPU 的带宽可以直接比较。比如 Pascal GTX 1080 vs. GTX 1070。单独看显存带宽就可以直接判断它们在深度学习上的性能差距:GTX GB/s) 比 GTX
GB/s) 带宽快 25%,实际情况大约如是。
但不同架构之间,比如 Pascal GTX 1080 vs. Maxwell GTX Titan X,带宽并不能直接比较。这是由于不同的制造工艺对显存带宽的使用情况不同。这使得 GPU 之间的对比会稍嫌棘手。但即便如此,仅仅看带宽还是能大致估出 GPU 的深度学习速度。
另一个需要考虑的因素,是与 cuDNN 的兼容性。并不是所有 GPU 架构都提供支持。几乎所有的深度学习库都借助 cuDNN 进行卷积运算,这会把 GPU 的选项限制到 Kepler 开普勒或之后的架构,即 GTX 600 系列或更新。另外,Kepler GPU 大多很慢。因此,你应该选择 GTX 900 或 1000 系的 GPU 获得理想性能。
为了对每块显卡在深度学习上的性能差异,给大家一个大致估计,我创建了一个简单的条形图。读这张图的姿势很简单。比如说,一个 GTX 980 的速度大约是 0.35 个 Titan X Pascal;或者,一个 Titan X Pascal 几乎比 GTX 980 快三倍。
雷锋网提醒,我自己并没有所有这些显卡,我也并没有在每张显卡上做深度学习跑分评测。这些性能对比,是从显卡参数以及计算评测(与深度学习同一级别的计算任务,比如密码挖掘)中获得。因此,这些只是大略估计。真实数字会有一点变化,但误差应该是极小的,并不会影响排序。
另外需要注意的是,对 GPU 性能利用不足的小型神经网络,会让性能更强的 GPU 在对比中吃亏。比如说,在 GTX 1080 Ti 上跑一个小型 LSTM(128 隐层; batch size & 64),并不会比在 GTX 1070 上快很多。得到下图中的数字,你需要跑更大的神经网络,比如 1024 个隐层的 LSTM(batch size & 64)。
GPU 粗略性能对比
性价比分析
如果我们把上图中的显卡性能除以价格,就得到了每张卡的性价比指数,便是下图。它在一定程度上反映出我们的装机推荐。
性价比对比
新卡的价格来自美亚,旧卡来自 eBay。雷锋网(公众号:雷锋网)提醒,该图的数字在很多方面都有些些微偏颇。首先,它没有考虑显存大小。通常情况下,你需要比 GTX 1050 Ti 更大的显存来玩深度学习。因此,榜上靠前的部分显卡虽然性价比很高,但是并不实用。
同样的,用四个小 GPU 比用一个大 GPU 要困难得多,因此小 GPU 出于劣势。另外,买 16 个 GTX 1050 Ti 不可能得到四个 GTX 1080 Ti 的性能,你还需要另外买 3 个 PC。如果我们把这一点也考虑进去,上图看上去应该是这样的:
这幅修正过的 GPU 性价比条形图,把其他 PC 硬件的成本也纳入考虑——把可兼容 4 GPU 的高端 PC 平台的成本,定为 $1500。该情况下,如果你想要买许多 GPU,不出意料的,更高端的 GPU 会占优势,因为 PC 平台+ 显卡的整体性价比更高。
但其实,这还是有所偏颇的。不管四个 GTX 1080 Ti 性价比有多高,对普通人而言,这并没有意义——因为买不起。因此,开发者真正感兴趣的应是有限预算里的性价比。针对你的预算,最佳系统选项是什么?你还需要考虑一些其它问题:你计划让这个 GPU 服役多久?几年后,你是要升级 GPU 还是升级整机?将来是否希望出手旧 GPU,回收一些成本,再买个新的?
如果你能平衡多方面的考虑,最后的结论应该与下面的建议介意。
通常,我会推荐 GTX 1080 Ti, GTX 1080 或 GTX 1070。如果你的预算足够买 GTX 1080 Ti,就不用犹豫了。GTX 1070 便宜一点,但仍然比上代 GTX Titan X (Maxwell) 要快。相比 GTX 980 Ti,所有这些卡都应该优先考虑,因为更大的显存:11GB、8GB &而不是 6GB。8GB 显存听上去或许不多,但对许多任务是绰绰有余的。对于 Kaggle 竞赛里的大多数图像数据集、deep style 和自然语言理解任务,你基本不会遇到问题。
如果你是第一次尝试深度学习,只是偶尔参加 Kaggle 竞赛,GTX 1060 是最好的入门 GPU。但我不会推荐 3GB 显存的 GTX 1060。
在性价比方面,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 则是全能高端选项。
我通常不推荐新推出的 Titan Xp,相比其性能,它定价过高,不如选 GTX 1080 Ti。但对于摆弄大型数据集或视频数据的计算机视觉研究人员,Titan Xp 仍然有市场。在这些领域,每一 GB 显存都有价值,而 Titan Xp 比 GTX 1080 Ti 多了 1GB。有了这两者,我不会推荐 Titan X (Pascal) 。
如果你已经有了 GTX Titan X (Maxwell),想要升级到 Titan Xp。我的建议是:把钱存着买下一代,不值。
如果你预算有限,偏偏又需要 12GB 的内存,可以考虑买个二手的 GTX Titan X (Maxwell) 。
但是,对于大多数研究人员,最好的选项仍然是 GTX 1080 Ti。泰坦的额外 1GB 在大多数情况下没什么影响。
对我个人而言,会选择多个 GTX 1070 或 GTX 1080 来做研究。我宁愿多运行几个慢一点的试验,而不仅仅是运行一个更快的。在 NLP,内存要求并没有计算机视觉那么高,单只 GTX 1070/GTX 1080 对我来说就够了。我需要处理的任务、如何进行试验,决定了对我而言的最佳选择,不管是 GTX 1070 还是 GTX 1080。
对于预算紧张的开发者而言,选择余地非常有限。租 AWS 上的 GPU 实体价格已经太高,还是买自己的 GPU 更划算。我不推荐 GTX 970,不仅慢,二手的价格也不够实惠,而且它还存在显存启动问题。我的建议是加点钱上 GTX 1060,更快、显存更大而且没有毛病。GTX 1060 超出你的预算的话,我建议 4GB 版 GTX 1050 Ti。4GB 显存确实限制比较大,但如果对模型做些修改,仍可以得到还可以的性能表现。对于大多数 Kaggle 竞赛而言,GTX 1050 Ti 是合适的,在少部分比赛可能会影响你的竞争力。
如果你只是私下玩玩深度学习,没打算认真钻研,GTX 1050 Ti 是一个合适的选择。
有了本文中的所有信息,你大概已经能平衡显存大小、带宽、价格等多方面因素,来做出合理的购买决策。现在,我的建议是若预算充足,就上 GTX 1080 Ti, GTX 1080 或 GTX 1070。刚刚上手深度学习、预算有限的话,选 GTX 1060。预算实在有限,那么 GTX 1050 Ti。计算机视觉研究人员可能会需要 Titan Xp。
阅读(...) 评论()后使用快捷导航没有帐号?
查看: 4800|回复: 8
转帖:芯片之争:CPU、GPU、DSP、NPU,到底哪个更适用于深度学习?
金牌会员, 积分 1160, 距离下一级还需 1840 积分
论坛徽章:35
雷锋网按:为保证内容的专业性,本文已邀芯片领域专家把关审核过,作者铁流。日前,Intel称将于2017年推出针对深度学习市场的CPU Knights Mill。据Intel宣传,Knights Mill 能充当主处理器,可以在不配备其它加速器或协处理器高效处理深度学习应用。可以说,继中国寒武纪和星光智能一号、IBM的真北、谷歌的 TPU,以及英伟达专门为定制的GPU之后,Intel也加入该领域的竞争。那么,这多深度学习处理器都有什么特点,又有什么优势和劣势呢?| CPU、GPU:用轿车运货在英伟达开发出针对人工智能的定制GPU,并坚持DGX-1 系统之后,Intel也不甘落后,在收购深度学习创业公司 Nervana Systems之后,Intel也公布了用于深度学习的Xeon Phi家族新成员,在深度学习处理器领域开辟新战场。在不久前,Intel还发布了一些Xeon Phi 的基准测试结果,其声称内容总结如下:1、四片 Knights Landing Xeon Phi 芯片比四片 GPU要快 2.3 倍;
2、在多节点系统中, Xeon Phi 芯片的能比 GPU 更好地扩展38% ;
3、128 块 Xeon Phi 的服务器组成的系统要比单块 Xeon Phi 服务器快 50 倍,暗示着 Xeon Phi 服务器的扩展性相当好;
4、使用Intel优化版的 Caffe 时,Xeon Phi 芯片要比标准 Caffe 实现快 30 倍。一言蔽之,Intel的众核芯片在深度学习上比英伟达的GPU更为高效。不过,英伟达也随之反击,声称这是Intel使用了其旧的基准测试结果,并表示:1、如果英特尔使用更新一点的 Caffe AlexNet 实现结果的话,它就会发现四块上代英伟达 Maxwell GPU 实际上比四块英特尔 Xeon Phi 服务器集群快 30%。
2、另外,一旦英伟达的 GPU 从 28nm 的平面工艺转移到 16nm 的 FinFET 工艺上时,GPU的性能和效率还会有很大的提升。
3、对于深度学习,英伟达还强调更少的高性能节点无论如何都会比更多低性能节点好。并以其的 DGX-1为例,认为DGX-1比 21 个 Xeon Phi 服务器集群快一点,比四个 Xeon Phi 服务器集群快 5.3 倍。笔者认为,Intel的众核芯片也在一定程度上吸取了GPU的优势,性能不俗,但短时间看还是GPU有优势。不过,无论是针对人工智能的众核芯片还是定制版的GPU,本质上都不是专用处理器,实际上是拿现有的、相对成熟的架构和技术成果去应对新生的人工智能,并没有发生革命性的技术突破。其实,Intel和英伟达是在使用现有的比较成熟的技术去满足深度学习的需求,众核芯片和定制版GPU在本质上来说依旧是CPU和GPU,而并非专门针对深度学习的专业芯片,这就必然带来一些天生的不足。打一个比方,用众核芯片和GPU跑深度学习,就类似于用轿车去拉货,受轿车自身特点的限制,货物运输能力与真正大马力、高负载的货车有一定差距。同理,即便是因为技术相对更加成熟,Intel和英伟达的芯片在集成度和制造工艺上具有优势,但由于CPU、GPU并非针对深度学习的专业芯片,相对于专业芯片,其运行效率必然受到一定影响。 | DSP:和真正芯片有差距6月20日,中星微“数字多媒体芯片技术”国家重点实验室在京宣布,中国首款嵌入式NPU(处理器)芯片诞生,目前已应用于全球首款嵌入式视频处理芯片“星光智能一号”。媒体称,“星光智能一号蕴含了当前计算机领域最前沿的生物人脑神经网络仿生学创新技术,且对严重依赖国外进口产品的中国集成电路产业来说,也是实现‘弯道超车’的一次踊跃尝试。它标志着我国在神经网络处理器领域的研究和开发上取得了重大突破;使我国视频监控行业发展由模拟时代、数字时代跨入智能时代,在全球确立领先地位。”不过,在经过仔细分析后,所谓“中国首款嵌入式神经网络处理器”很有可能是一款可以运行神经网络的DSP,而非真正意义的神经网络专用芯片。 上图是星光智能一号发布的系统架构图。共包含四个NPU核,每个NPU核包含4个内核,每个内核有两个流处理器(Dataflow Processor),每个流处理器具有8个长位宽或16位宽的SIMD运算单元。每个NPU核的峰值性能为38Gops(16位定点)或者76Gops(8位定点)。除了多核流处理器本身用于完成卷积运算外,星光智能一号集成了一个超长指令字(VLIW)处理器用于完成神经网络中的超越函数等运算。另有256KB的L2Cache以及DMA模块用于大块数据的搬移。从其低位宽的定点运算器推断,星光智能一号仅可支持神经网络正向运算,无法支持神经网络的训练。从片上存储结构看,星光智能一号基于传统的片上缓存(Cache),而非像最近流行的神经芯片或FPGA方案一样使用便签式存储。因此,在技术上看星光智能一号是典型的“旧瓶装新酒”方案,将传统的面向数字信号处理的DSP处理器架构用于处理神经网络,主要在运算器方面作了相应修改,例如低位宽和超越函数,而并非是“狭义的”神经网络专用处理器,如IBM的“真北”芯片。因此,星光智能一号其实是DSP,而非NPU,能够适用于卷积神经网路(CNN),而对循环神经网络(RNN)和长短期记忆网络(LSTM)等处理语音和自然语言的网络有可能就无能为力了。换言之,星光智能一号暂时只面向机器视觉任务,而不能用于语音和自然语言类的问题。其实,这种用传统SIMD/DSP架构来适配神经网络的技术思想在国际上已有不少先例,甚至有成熟的产品,例如CEVA公司的XM4处理器、Cadence公司的Tensilica Vision P5处理器、Synopsys公司的EV处理器等。| NPU:为深度学习而生的专业芯片从技术角度看,深度学习实际上是一类多层大规模人工神经网络。它模仿生物神经网络而构建,由若干人工神经元结点互联而成。神经元之间通过突触两两连接,突触记录了神经元间联系的权值强弱。每个神经元可抽象为一个激励函数,该函数的输入由与其相连的神经元的输出以及连接神经元的突触共同决定。为了表达特定的知识,使用者通常需要(通过某些特定的)调整人工神经网络中突触的取值、网络的拓扑结构等。该过程称为“学习”。在学习之后,人工神经网络可通过习得的知识来解决特定的问题。由于深度学习的基本操作是神经元和突触的处理,而传统的处理器指令集(包括x86和ARM等)是为了进行通用计算发展起来的,其基本操作为算术操作(加减乘除)和逻辑操作(与或非),往往需要数百甚至上千条指令才能完成一个神经元的处理,深度学习的处理效率不高。因此谷歌甚至需要使用上万个x86 CPU核运行7天来训练一个识别猫脸的深度学习神经网络。因此,传统的处理器(包括x86和ARM芯片等)用于深度学习的处理效率不高,这时就必须另辟蹊径——突破经典的冯·诺伊曼结构。以中国的寒武纪为例,DianNaoYu指令直接面对大规模神经元和突触的处理,一条指令即可完成一组神经元的处理,并对神经元和突触数据在芯片上的传输提供了一系列专门的支持。另外,神经网络中存储和处理是一体化的,都是通过突触权重来体现。 而冯·诺伊曼结构中,存储和处理是分离的,分别由存储器和运算器来实现,二者之间存在巨大的差异。当用现有的基于冯·诺伊曼结构的经典计算机(如X86处理器和英伟达GPU)来跑神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,因而影响效率。这也就是专门针对人工智能的专业芯片能够对传统芯片有一定先天优势的原因之一。用数字来说话,CPU、GPU与NPU相比,会有百倍以上的性能或能耗比差距——以寒武纪团队过去和Inria联合发表的DianNao论文为例——DianNao为单核处理器,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02平方毫米mm。在若干代表性神经网络上的实验结果表明——DianNao的平均性能超过主流CPU核的100倍,但是面积和功耗仅为1/10,效能提升可达三个数量级;
DianNao的平均性能与主流GPGPU相当,但面积和功耗仅为主流GPGPU百分之一量级。
|&&结语就现阶段而言,传统芯片厂商(如CPU、GPU和DSP)对于深度学习市场非常重视,因此利用他们巨大体量和市场推广、销售能力,大力推广用这些传统芯片来进行深度学习处理,其本质上也是对现有的技术进行微调,用传统SIMD架构来适配神经网络。然而,由于传统CPU、GPU和DSP本质上并非以硬件神经元和突触为基本处理单元,相对于NPU在深度学习方面天生会有一定劣势,在芯片集成度和制造工艺水平相当的情况下,其表现必然逊色于NPU。正如前文所述,无论是再好的轿车要去拉货,也不可能和真正大马力、高负载的货车相比。雷锋网(搜索“雷锋网”公众号关注)注:本文为雷锋网文章,转载请联系授权并保留出处和作者,不得删减内容。
金牌会员, 积分 1853, 距离下一级还需 1147 积分
论坛徽章:13
呵呵,谁牛X,过几年通过市场表现看结果就是啦
金牌会员, 积分 2503, 距离下一级还需 497 积分
论坛徽章:23
感觉这次是由软件带动了硬件革命
金牌会员, 积分 1186, 距离下一级还需 1814 积分
论坛徽章:10
只能说结构不一样,做的东西不一样
金牌会员, 积分 1662, 距离下一级还需 1338 积分
论坛徽章:9
货车无论怎么挑选,最关键还是开的人。
新手上路, 积分 25, 距离下一级还需 25 积分
论坛徽章:2
估计等NPU成熟普及了,人类的日子也不长了,等着被AI统治吧
中级会员, 积分 220, 距离下一级还需 280 积分
论坛徽章:12
老美的专业芯片肯定对天朝禁售,大家不用惦记了
金牌会员, 积分 1660, 距离下一级还需 1340 积分
论坛徽章:25
笔者认为,Intel的众核芯片也在一定程度上吸取了GPU的优势,性能不俗,但短时间看还是GPU有优势。不过,无论是针对人工智能的众核芯片还是定制版的GPU,本质上都不是专用处理器,实际上是拿现有的、相对成熟的架构和技术成果去应对新生的人工智能,并没有发生革命性的技术突破。
金牌会员, 积分 1660, 距离下一级还需 1340 积分
论坛徽章:25
等用户弄明白什么芯片最适合再去使用,基本上也没他什么事情了
dataguru.cn All Right Reserved.深度卷积神经网络必须用gpu加速么_百度知道
深度卷积神经网络必须用gpu加速么
我有更好的答案
不一定,但gpu往往比cpu快数十倍。cpu速度也是非常快的,根据cpu核心数适当开多线程可以成倍提升速度。望采纳
采纳率:61%
为您推荐:
其他类似问题
gpu的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。109被浏览6,005分享邀请回答0添加评论分享收藏感谢收起21ic官方微信 -->
GPU上四大分布式深度学习框架的区别是什么?
随着深度学习应用不断进入商用化,各类框架在服务器端上的部署正在增多,可扩展性正逐渐成为性能的重要指标。香港浸会大学褚晓文团队近日提交的论文对四种可扩展框架进行了横向评测(Caffe-MPI、CNTK、MXNet
与 TensorFlow)。该研究不仅对各类深度学习框架的可扩展性做出了对比,也对高性能服务器的优化提供了方向。本文引用地址:
近年来,深度学习(DL)技术在许多 AI
应用当中取得了巨大成功。在获得大量数据的情况下,深度神经网络(DNN)能够很好地学习特征表示。但是,深度神经网络和大规模数据有着很高的计算资源要求。幸运的是,一方面,硬件加速器例如
GPU,FPGA 和 Intel Xeon Phi 可减少模型训练时间。另一方面,近期的一些研究已经证明,具有非常大的 mini-batch 的 DNN
可以很好地收敛到局部最小值。这对于利用大量处理器或集群而言是非常重要的。单个加速器的计算资源(比如计算单元和内存)有限,无法处理大规模神经网络。因此,人们提出了并行训练算法以解决这个问题,比如模型并行化和数据并行化。这也让科技巨头们在云服务中部署可扩展深度学习工具成为可能。亚马逊采用
MXNet 作为云服务 AWS 的主要深度学习框架,谷歌采取 TensorFlow 为谷歌云提供支持,而微软为微软云开发了 CNTK。此外,浪潮集团开发了
Caffe-MPI 以支持 HPC 的分布式部署。
在英伟达高性能 DNN 库 cuDNN 的帮助下,CNTK,MXNet 和 TensorFlow 除了能在单 GPU 上实现高吞吐率之外,还能在多个
GPU 和多种机器之间实现良好的可扩展性。这些框架为开发者提供了一个开发 DNN 的简便方法。此外,尝试相关算法优化,通过使用多核 CPU、众核 GPU、 多
GPU 和集群等硬件来实现高吞吐率。但是,由于软件开发商的实施方法不尽相同,即使在同一个硬件平台上训练相同的
DNN,这些工具的性能表现也不尽相同。研究者已经对各种工具在不同 DNN 和不同硬件环境下进行了评估,但是深度学习框架和 GPU
的升级太过频繁,导致这些基准无法反映 GPU 和软件的最新性能。另外,多 GPU
和多机平台的可扩展性还没有得到很好的研究,但这是计算机集群最重要的性能指标之一。
本文扩展了我们之前的工作,尝试评估 4 个分布式深度学习框架(即 Caffe-MPI、CNTK、MXNet 和
TensorFlow)的性能。我们使用四台由 56 Gb 的 InfiniBand 架构网络连接的服务器,其中每一个都配备了 4 块 NVIDIA Tesla
P40,以测试包括单 GPU,单机多 GPU,和多机在内的 CNN 架构的训练速度。我们首先测试了随机梯度下降(SGD)优化的运行性能,然后关注跨多 GPU
和多机的同步 SGD(S-SGD)的性能,以分析其细节。我们的主要研究发现如下:
对于相对浅层的 CNN(例如 AlexNet),加载大量训练数据可能是使用较大 mini-batch 值和高速 GPU
的潜在瓶颈。有效的数据预处理可以降低这一影响。
为了更好地利用 cuDNN,我们应该考虑自动调优以及输入数据的格式(例如 NCWH,NWHC)。CNTK 和 MXNet 都对外显露了 cuDNN
的自动调优配置,这都有利于在前向传播和反向传播中获得更高的性能。
在拥有 multiple GPU 的 S-SGD 当中,CNTK 不会隐藏梯度通信的开销。但是,MXNet 和 TensorFlow
将当前层的梯度聚合与前一层的梯度计算并行化处理。通过隐藏梯度通信的开销,扩展性能会更好。
所在四个高吞吐量的密集 GPU 服务器上,所有框架的扩展结果都不是很好。通过 56Gbps 网络接口的节点间梯度通信比通过 PCIe
的节点内通信慢得多。
深度学习框架已经被广泛部署于 GPU
服务器上,已为学术界和工业界的深度学习应用提供支持。在深度学习网络(DNN)的训练中,有许多标准化过程或算法,比如卷积运算和随机梯度下降(SGD)。但是,即使是在相同的
GPU 硬件运行相同的深度学习模型,不同架构的运行性能也有不同。这篇文章分别在单 GPU,多 GPU 和多节点环境下评估了四种先进的分布式深度学习框架(即
Caffe-MPI、CNTK、MXNet 和 TensorFlow)的运行性能。首先,我们构建了使用 SGD 训练深度神经网络的标准过程模型,然后用 3
种流行的卷积神经网络(AlexNet、GoogleNet 和
ResNet-50)对这些框架的运行新能进行了基准测试。通过理论和实验的分析,我们确定了可以进一步优化的瓶颈和开销。文章的贡献主要分为两个方面。一方面,对于终端用户来说,针对他们的场景,测试结果为他们选择合适的框架提供了参考。另一方面,被提出的性能模型和细节分析为算法设计和系统配置而言提供了更深层次的优化方向。
表 2 针对数据并行化的实验硬件配置
图 1 GPU 集群的拓扑
表 3 实验所用的软件
表 4 试验中神经网络的设置
表 5 SGD 不同阶段的时间(单位:秒)
眼下,人工智能已经成为越来越火的一个方向。普通工程师,如何转向人工智能方向,是知乎上的一个问题。本文是对此问题的一个回答的归档版。相比原回答内容上有所增加。......关键字:
据国外媒体报道称,谷歌大脑之父、百度首席科学家,同时也是人工智能领域最权威学者之一的吴恩达(Andrew Ng)日前在接受采访时表示,如果如今的企业高官们对机器学习技术的发展阶段及能力有着更好理解的话,数以百万计的人或许都会失去自己目前的工......关键字:
为了抢攻AI市场庞大商机,包括英特尔、英伟达、超微、高通、赛灵思等大厂,均已加快投资及研发脚步,而台积电因为在半导体制程推进上优于竞争同业,可望成为最大赢家。......关键字:
两会虽然闭幕,但人工智能在会议期间所掀起的热潮,仍在继续。......关键字:
近日,知名媒体《福布斯》刊登了一篇文章,AI领域知名科技媒体TOPBOTS评选出了20位驱动中国人工智能改革的科技领导者。......关键字:
NVIDIA、高通的新一代高性能计算芯片都会使用TSMC的16nm、12nm或者10nm工艺,有意思的是NVIDIA去年公布的Xavier SoC处理器现在说是使用12nm工艺,但去年发布时NVIDIA提到它是16nm工艺的。......关键字:
三星将会在3月29日发布下一代旗舰手机,三星已经证实,Galaxy S8将会安装全新语音数字助手,名叫Bixby,它采用了AI技术。......关键字:
我 要 评 论
大家都爱看
昨日,兆易创新发表公告,重申了收购上海思立微的目的。兆易创新表示,这次产业并购,旨在整合境内优质的芯片设计领域资产,获取智能人机交互领域的核心技术,拓展并丰富公司产品线,在整体上形…
CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。
关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…
大疆周一表示,在美国陆军因为&网络缺陷&而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…
业界早知道
02-0202-0202-0202-0202-0202-02
精读涨姿势
03-2309-0810-1606-0802-1706-30}

我要回帖

更多关于 如何训练深度神经网络 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信