深度学习对计算机架构和芯片设计的影响

推荐会员: tutu 所属分类: 人工智能,深度学习,行业精选 发布时间: 2019-12-23 17:09

深度学习和 硬件怎样结合?计算机界神级人物、谷歌人工智能主管Jeff Dean发表了独自署名论文《The Deep Learning Revolution and Its Implications for Computer Architecture and Chip Design》,17页pdf论文,长文介绍了后摩尔定律时代的机器学习研究进展,以及他对未来发展趋势的预测判断。

摘要在过去的十年里,机器学习,特别是基于人工神经网络的深度学习方法取得了一系列显著的进步,从而提高了我们在更广泛的领域建立更较精确系统的能力,包括计算机视觉、语音识别、语言翻译和自然语言理解任务。这篇论文是2020年国际固态电路会议(ISSCC)的主题演讲的配套论文,讨论了机器学习的一些进展,以及这些进展对我们需要构建的计算设备的影响,特别是在后摩尔定律时代。它还讨论了一些方法,机器学习也可以帮助电路设计过程的某些方面。最后,它提供了至少一个有趣方向的草图,朝向更大规模的多任务模型,这些模型是稀疏激活的,并且使用了比今天的机器学习模型更动态的、基于实例和任务的路由。

地址链接:https://www.zhuanzhi.ai/paper/29cfa3ee4438c3f2717c1f5ab41b320chttps://arxiv.org/abs/1911.05289
引言在过去的十年中,机器学习(ML),特别是基于人工神经网络的深度学习方法取得了一系列显著的进步,以提高我们在广泛领域构建更较精确系统的能力[LeCun et al. 2015]。重大进展的主要领域包括计算机视觉(Krizhevsky et al. 2012, Szegedy et al. 2015, He et al. 2016, Real et al. 2017, Tan and Le 2019],语音识别(Hinton et al. 2012, Chan et al. 2016],语言翻译(Wu et al. 2016)和其他自然语言任务[Collobert et al. 2011, Mikolov et al. 2013, Sutskever et al. 2014, Shazeer et al. 2017, Vaswani et al. 2017, Devlin et al. 2018]。机器学习研究社区也能够训练系统来完成一些具有挑战性的任务,从互动的学习环境中,通常使用强化学习,展示成功和有前途的进步在玩围棋等领域[Silver et al. 2017], 玩视频游戏如雅达利游戏[Mnih et al. 2013, Mnih et al. 2015)和《星际争霸》之类的游戏(Vinyals et al . 2019年),完成机器人任务,如大幅改善抓取看不见的物体[Levine et al. 2016, Kalashnikov et al. 2018],模拟观察到的人类行为[Sermanet et al. 2018],使用自动驾驶汽车导航复杂的城市环境[Angelova et al. 2015, Bansal et al. 2018]。
作为计算机视觉领域取得巨大进步的一个例证,图1显示了Imagenet挑战赛(斯坦福大学[Deng et al. 2009]举办的年度竞赛)随时间推移的改进情况。Imagenet挑战赛向参赛者提供了1000个类别的100万幅彩色图像的训练集,然后使用这些数据来训练一个模型,以推广到相同类别的图像的评估集。在2010年和2011年,在使用深度学习方法之前,获胜的参赛者使用手工设计的计算机视觉功能,前5名的错误率超过25%。2012年,Alex Krishevsky、Ilya Sutskever和Geoffrey Hinton使用一种深度神经网络,通常被称为“AlexNet”,在竞赛中获得第一名,前5名的出错率大幅降低到16% [Krishevsky et al. 2012]。他们的团队是2012年使用神经网络的团队。第二年,深度学习计算机视觉革命(deep learning computer vision revolution)全面展开,来自使用深度神经网络的团队的参赛作品占绝大多数,获胜错误率再次大幅下降至11.7%。我们从一项仔细的研究中得知,Andrej Karpathy在执行这项任务时,如果人类练习约20小时,则人为误差略高于5%,如果另一个人仅练习几小时,则人为误差为12% [Karpathy 2014]。在2011年到2017年间,获奖的Imagenet的错误率从2011年的26%急剧下降到2017年的2.3%。

图1:ImageNet 分类竞赛获胜者随时间的准确性
这些在计算机视觉、语音识别、语言理解和大规模强化学习等基础领域的进步,对许多领域都产生了巨大的影响。我们已经在许多不同的领域和医学领域看到了一系列稳定的成果,将过去十年中产生的基础研究成果应用于这些问题领域。例如,医学成像诊断任务的前景领域包括糖尿病视网膜病变(Gulshan et al. 2016, Krause et al. 2018)、乳腺癌病理学(Liu et,2017年)、肺癌CT扫描解释(Ardila et,2019年)和皮肤病学(Esteva et,2017年)。对语言翻译有用的顺序预测方法也有助于对电子病历中各种不同的与医学相关的任务进行准确预测[Rajkomar et al. 2018]。这些早期迹象为机器学习在卫生和医疗保健的许多领域产生重大影响指明了道路[Rajkomar等人2019年,Esteva等人2019年]。
其他通过使用基于深度学习的方法而得到改善的领域包括量子化学(Gilmer et,2017年)、地震预测(DeVries et,2018年)、洪水预测(Nevo et,2019年)、基因组学(Poplin et,2018年)、蛋白质折叠(Evans et,2018年)、高能物理(Baldi et,2014年)和农业(Ramcharan et,2017年)。
有了这些重大的进展,很明显ML改变许多不同领域的潜力是巨大的。
摩尔定律,后摩尔定律,以及机器学习的计算需求深度学习和人工神经网络背后的许多关键思想和算法早在20世纪60年代、70年代、80年代和90年代就已经出现了[Minsky and Papert 1969, Rumelhart et al. 1988, Tesauro 1994]。在20世纪80年代末和90年代初,ML和AI社区中出现了一股热潮,因为人们意识到神经网络可以用有趣的方式解决一些问题,它们的巨大优势来自于它们接受非常原始的(有时是异构的)输入数据的能力,以及在训练模型执行某些预测任务的过程中让模型自动建立层次表示的能力。然而,在那个时候,计算机还没有强大到可以让这种方法处理任何小的、几乎是玩具大小的问题。当时的一些工作试图使用并行算法来扩展神经网络训练的可用计算量[Shaw 1981, Dean 1990],但在大多数情况下,人工智能和ML社区中大多数人的关注点从基于神经网络的方法转移了。在摩尔定律的推动下,计算性能提高了20多年,直到21世纪的后期,计算机才开始变得足够强大,能够在现实和现实问题上训练大型神经网络,如Imagenet [Deng等,2009],而不是MNIST [LeCun et al. 2000]和CIFAR [Krizhevsky et al. 2009]。特别是GPU卡上的通用计算范式(GPGPU) [Luebke et al. 2006],由于GPU卡相对于cpu的高浮点性能,开始允许神经网络在真正重要的困难问题上显示有趣的结果。

图2:摩尔定律和后摩尔定律时期的计算性能
这可能是不幸的,正如我们开始有足够的计算性能来处理有趣的现实世界的问题,机器学习的规模和适用性的增加导致了需要额外的计算资源的巨大需求来处理更大的问题,计算行业作为一个整体已经经历了一个戏剧性的放缓,在一般用途的CPU性能的年复一年的提高。图2显示了这种显著的放缓,我们已经从每1.5年(1985年至2003年)或2年(2003年至2010年)将通用CPU性能翻一番,发展到现在的通用CPU性能预计每20年才会翻一番[Hennessy and Patterson 2017]。图3显示了最近一些重要的机器学习进展的计算需求的急剧增加(注意对数y轴,较佳拟合线显示了这组重要的ML研究结果的计算需求翻倍时间为3.43个月)[OpenAI 2018]。图4显示了戏剧性的飙升在机器学习领域的研究成果及其应用,通过论文发表的数量测量machine-learning-related Arxiv的类别,一个广受欢迎的纸品预印本托管服务,超过32倍的论文发表在2018年和2009年(每2年)增长率的两倍多。现在每天有超过100篇与机器学习相关的研究论文发表在Arxiv上,而且这种增长没有放缓的迹象。

图3:一些重要的人工智能进展及其计算需求

图4:2009年以来与机器学习相关的Arxiv论文
机器学习专用硬件在2011年和2012年,谷歌的一个小团队的研究人员和系统工程师建立了一个名为DistBelief的早期分布式系统,以支持对超大规模的神经网络进行并行、分布式训练,他们将模型和数据并行训练结合起来,并通过许多不同的计算副本对模型的参数进行异步更新[Dean et al. 2012]。这使得我们能够在更大的数据集上训练更大的神经网络,并且,到2012年年中,使用DistBelief作为基础框架,我们看到语音识别(Hinton et al. 2012)和图像分类模型(Le et al. 2012)的精度显著提高。然而,这些模型在需要数亿用户的系统设置中的服务是另一回事,因为计算需求非常大。包络计算表明,要部署深度神经网络系统,使我们使用基于cpu的计算设备对我们的主要语音识别系统显示出显著的字错误率改进,就需要将谷歌数据中心的计算机数量增加一倍(有一些大胆但仍然可信的假设,认为由于准确性更高,使用会显著增加)。如果这在经济上是合理的,它仍然需要大量的时间,因为它将涉及浇筑混凝土,签订风车农场合同,订购和安装大量的计算机等等,而语音系统只是冰山一角,就我们所看到的神经网络应用于我们的许多核心问题和产品的可能性而言。这个思维练习让我们开始考虑为神经网络建立专门的硬件,首先是推理,然后是训练和推理系统。
为什么专门的硬件对深度学习模型有意义?深度学习模型有三个特性,这使得它们不同于许多其他类型的通用计算。首先,他们对低精度的计算非常宽容。第二, 除此之外,大多数模型所执行的计算只是一小部分操作的不同组合,比如矩阵乘法、向量运算、卷积核的应用以及其他密集的线性代数计算[Vanhoucke et al. 2011]。另外,在过去40年中开发的许多机制使得通用程序能够在现代cpu上以高性能运行,例如分支预测器、推测执行、超线程执行处理核、深度缓存内存层次结构和TLB子系统,对于机器学习计算来说都是不必要的。因此,我们有机会构建专门用于密集的、低精度的线性代数的计算硬件,除此之外别无它物,但仍然可以在指定程序的层次上进行编程,这些程序是大多数线性代数式运算的不同组成部分。这些特性的汇合与从20世纪80年代开始为电信应用开发专用数字信号处理器(dsp)的观察结果并无不同。然而,一个关键的区别是,由于深度学习广泛适用于许多领域和领域的大量计算问题,这种硬件,尽管其支持的操作集很窄,但可以用于各种各样的重要计算,而不是更狭义的dsp应用。基于我们对深度神经网络在语音识别和图像分类等高容量推理应用中急剧增加的计算需求的思考实验,我们决定开始努力设计一系列被称为张量处理单元的加速器来加速深度学习推理和训练。第一个这样的系统,称为TPUv1,是一个旨在针对推理加速的单片机设计[Jouppi et,2017]。
对于推断(在对一个模型进行了训练之后,我们希望将已经训练好的模型应用到新的输入中,以便进行预测),8位整型计算已经被证明对于许多重要的模型来说是足够的[Jouppi et,2017],随着研究社区中进一步广泛的工作正在进行,使用更低的精度权重,以及鼓励权重和/或激活的技术来进一步推动这个边界。
TPUv1的核心是一个65,536个8位的乘法累积矩阵乘法单元,较高吞吐量为92 TeraOps/秒(上限)。TPUv1平均比其同时代的GPU或CPU快15 – 30倍,TOPS/Watt大约高30 – 80倍,能够运行代表当时谷歌数据中心95%的神经网络推理需求的生产神经网络应用程序,具有显著的成本和功率优势[Jouppi et,2017]。
在低功耗移动设备上的推理对于机器学习的许多用途也非常重要。如果能够在设备上运行机器学习模型(设备本身通常是用于语音或视觉等领域的模型的原始数据输入的来源),就会有很大的延迟和隐私方面的好处。可以采用与TPUv1相同的设计原则(一种针对高性能/瓦特的低精度线性代数计算的简单设计),并将这些原则应用于更低功耗的环境,例如移动电话。谷歌的Edge TPU就是这种系统的一个例子,它在2W的功率范围内提供4个陀螺。设备上的计算对于许多有趣的深度学习用例来说已经是至关重要的,在这些用例中,我们希望计算机视觉、语音和其他类型的模型能够直接运行在感官输入上,而不需要连接。一个这样的例子是在设备上的农业应用,比如在木薯田中间识别疾病,木薯田可能没有可靠的网络连接[Ramcharan et al. 2017]。
随着机器学习在世界范围内的广泛应用和它作为一种关键计算类型的重要性的日益增长,一场剑桥式的新型有趣的机器学习计算加速器的爆炸正在进行中。有超过XX家风险投资支持的初创公司,以及各种大型、成熟的公司,它们都在生产各种用于机器学习的新芯片和系统。例如Cerebras、Graphcore和Nervana(被Intel收购)专注于ML培训的各种设计。而阿里巴巴等其他公司则在设计专注于推理的芯片。一些设计避开了更大的内存容量DRAM或HBM,专注于非常高性能的设计,为模型足够小,他们的整个参数集和中间值适合SRAM。其他公司则专注于包括DRAM或HBM在内的设计,这些设计使它们适用于更大规模的模型。有些,比如Cerebras,正在探索完整的晶片级集成。其他公司,如谷歌的Edge TPUs,正在为移动电话和分布式传感设备等环境的推理构建非常低功耗的芯片。
为训练设计定制的机器学习硬件(而不仅仅是推理)是一项比单片机推理加速器更复杂的工作。其原因是,单片训练系统无法解决许多我们希望在合理时间内(如数小时或数天,而不是数周或数月)解决的问题,因为单片系统不能提供足够的计算能力。此外,在更大的数据集上训练更大的模型的愿望是这样的,即使单个芯片可以在合理的时间内交付足够的计算来解决给定的问题,这也意味着我们常常想要解决更大的问题(无论如何,在并行或分布式系统中需要使用多个芯片)。因此,设计训练系统实际上是设计一个更大的、整体的计算机系统,需要考虑单个加速器芯片的设计,以及形成紧密耦合的机器学习超级计算机的高性能互连。谷歌的第二代和第三代tpu, TPUv2和TPUv3,被设计来支持训练和推理,而基本的单个设备,每一个由四个芯片组成,被设计成连接在一起的更大的配置称为豆荚。图5显示了单个谷歌TPUv2芯片的框图,该芯片有两个核心,每个核心的主要计算能力由一个大的矩阵乘法单元提供,每个循环可以产生一对128×128矩阵的乘法结果。每个芯片有16gb (TPUv2)或32gb (TPUv3)的附加高带宽内存(HBM)。图6显示了谷歌的TPUv3 Pod的部署形式,它由1024个加速器芯片组成,包括8个机架的芯片和相应的服务器,芯片以32×32环形网格连接在一起,提供了超过100 petaflop/s的系统性能峰值。

图5:谷歌张量处理单元v2 (TPUv2)的框图

图6: 谷歌的TPUv3 Pod,由1024个TPUv3芯片组成,峰值性能为>100 petaflop/s
机器学习的低精度数字格式TPUv2和TPUv3使用了定制设计的浮点格式bfloat16 [Wang和Kanwar 2019],它与IEEE半精度的16位格式不同,提供了一种对机器学习更有用的格式,并且支持更便宜的乘法器电路。bfloat16最初是作为一种有损压缩技术开发的,目的是帮助disbelief系统中机器学习权值和激活的网络通信减少带宽需求,TensorFlow白皮书(Abadi et al. 2016, sec. 5.5)的5.5节简要描述了该技术。自2015年以来,它一直是TPUv2和TPUv3中最常用的浮动格式。从2018年12月开始,英特尔宣布计划为下一代英特尔处理器增加bfloat16支持。
下面的图7显示了IEEE fp32单精度浮点格式、IEEE fp16半精度浮点格式和bfloat16格式的符号、指数和尾数位的分割。

事实证明,深度学习模型中使用的机器学习计算更关心动态范围,而不是精度。此外,一个主要区域和力量的乘法器电路成本浮点格式与M位尾数是(M + 1)✕(M + 1)所需的完整加法器(数组乘在一起的尾数部分两个输入数字。IEEE fp32、IEEE fp16和bfloat16格式分别需要576个全加法器、121个全加法器和64个全加法器。因为bfloat16格式的乘法器需要更少的电路,所以可以在相同的芯片面积和功率预算中放入更多的乘法器,因此,在其他条件相同的情况下,使用这种格式的ML加速器可以有更高的flops/sec和flops/瓦特。降低的精度表示还减少了将数据从内存中移动到内存或将数据发送到互连织物所需的带宽和能量,从而进一步提高了效率。
在快速变化的领域中不确定性的挑战构建机器学习加速器硬件的一个挑战是,ML研究领域的发展速度非常快(从每年发表的研究论文的增长和数量可以看出,如图4所示)。目前启动的芯片设计项目通常需要18个月到24个月才能完成设计、制造半导体部件并将其收回,并将其安装到生产数据中心环境中。为了使这些部件在经济上可行,它们通常必须至少有三年的寿命。因此,构建ML硬件的计算机架构师面临的挑战是预测在2到5年内机器学习的快速发展领域将在何处。我们的经验是,将计算机架构师、更高级别的软件系统构建人员和机器学习研究人员聚集在一起,讨论与合作设计相关的主题,比如“在那个时间框架内,在硬件上有什么可能?”以及“什么有趣的研究趋势开始出现,它们对ML硬件有什么影响?”是一种有用的方式来确保我们设计和构建有用的硬件来加速ML的研究和生产使用。
用于芯片设计的机器学习有巨大潜力的一个领域是使用机器学习来自动生成高质量的解决方案,解决存在于设计定制asic的整个工作流中的许多不同的NP-hard优化问题。例如,目前复杂的ASIC设计的布局和路由需要大量的人工布局专家团队来迭代地从高层布局细化到详细的布局,因为ASIC的总体设计是充实的。因为在放置过程中有大量的人员参与,一旦完成了最初的高层设计,在不显著影响芯片项目进度的情况下考虑完全不同的布局是不可想象的。然而,放置和路由是一个适合于那些成功解决游戏的强化学习方法的问题,比如AlphaGo。在放置和路由中,一系列的放置和路由决策都会影响一组总体指标,如芯片面积、定时和线路长度。通过强化学习算法学习“玩”这个游戏的位置和路由,一般来说在许多不同的ASIC设计,或为特定的ASIC设计,与奖励函数,结合了各种属性到一个数值奖励函数,并运用大量的机器学习计算(ML加速器的形式),与使用现有的电子设计工具进行放置和路由的人类专家团队相比,可能有一种系统可以更快速、更有效地进行放置和路由。我们已经在谷歌内部探索了这些方法,并取得了初步的但看起来很有希望的结果。基于ML的自动化系统还支持快速的设计空间探索,因为奖励功能可以很容易地进行调整,以优化目标优化指标中的不同权衡。
此外,甚至有可能训练一个机器学习系统来做出一系列的决定,从高层次的综合到实际的低层次的逻辑表示,然后执行这些低层次电路的放置和路由,以一种更加自动化和端到端的方式实现实际的高层次设计。如果这种情况发生,那么复杂的ASIC设计的时间可能会大幅减少,从几个月减少到几周。这将极大地改变设计定制芯片所涉及的权衡,因为当前高水平的非经常性工程费用通常意味着定制芯片或电路只用于较高容量和较高价值的应用程序。
未来的机器学习发展将来的机器学习模型可能和现在有一些明显区别。将来的机器学习系统可能是在大规模机器学习加速硬件上运行的,而且单一模型可以被训练用来完成上千甚至上百万的任务。该模型由不同的组件和结构组成,样本之间的数据流动可能是动态的,每种样本都不一样。模型可能使用类似于「稀疏权重门(sparsely-gated)」结构,混合了专家知识和学习路径,具有很强的能力。但是对于给定的任务或样本,模型只会激活其中一部分。

图 8:描述这一大型、具有稀疏权重且可以完成多任务的模型。
后摩尔定律时代,简单地压榨硬件算力不一定能够让机器学习再进步了。相反,通过设计专业的机器学习硬件设备,让机器学习解决现有的硬件设计、制造和运行方面的痛点才是出路。将来的机器学习模型可能更大,但是会朝着多任务的方向继续发展。
结论在过去的十年里,机器学习的进步已经影响了大量的科学、工程和其他形式的人类活动,而且这种影响只会越来越大。机器学习的专门计算需求与后摩尔定律时代通用CPU性能提升的放缓相结合,代表着计算硬件行业的一个激动人心的时代[Hennessy and Patterson 2019]: 我们现在有了一套技术,似乎可以应用于跨越大量领域的大量问题,我们希望在这些领域中显著增加模型和数据集的规模,我们可以在这些模型和数据集上训练这些模型,这项工作的影响将触及人类的大部分。当我们利用大规模多任务的学习系统来扩展到新的任务时,我们将创造出工具,使我们能够作为一个社会来共同完成更多的任务,并促进人类的进步。我们确实生活在一个激动人心的时代。

来源: http://www.dataguru.cn/article-15262-1.html

关键词:

版权声明:本站原创和会员推荐转载文章,仅供学习交流使用,不会用于任何商业用途,转载本站文章请注明来源、原文链接和作者,否则产生的任何版权纠纷与本站无关,如果有文章侵犯到原作者的权益,请您与我们联系删除或者进行授权,联系邮箱:service@datagold.com.cn。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据