神经网络模型或需要3000亿次MAC运算来处理单个兆像素图像

AI和机器学习正在被设计到几乎所有的东西中,但芯片行业缺乏足够的工具来衡量一个算法在特定硬件平台上运行时使用的功率和能量。对于能源敏感型设备来说,信息的缺失是一个严重的限制因素。正如那句古老的格言所说,你无法优化你无法测量的东西。如今,人们的关注点是功能和性能,但这些方面越来越受到功耗和热因素的限制。在这种情况下,性能不仅意味着你能以多快的速度进行推理或其他可测量的工作单位,而且还意味着操作的准确性。用于训练的算法和数据集的复杂程度在这个等式中也起到了一定的作用。


神经网络模型或需要3000亿次MAC运算来处理单个兆像素图像_娱乐产业_游戏行业


这个等式对ML系统开发和部署的每一个阶段都有影响,从算法开发到将算法映射到硬件架构,以及将其设计和实现到芯片中。今天,这些阶段之间的耦合几乎不存在。


虽然硬件团队生活在硅能做的事情和他们希望支持的用例的限制中,但在更大的计划中,他们几乎没有帮助他们。"AI工作负载不断变化,"Cadence公司Tensilica AI产品的产品营销总监Suhas Mitra说。"当你做功率预算时,你如何预测,因为你的工作负载可能会发生根本性的变化?如果我构建了一个SoC或芯片,你如何看得足够远,并说:'这是我需要的功率,热容量。你又如何为它做预算?"


其他人也同意。"在给定的工作负载下预测芯片的功耗是我们行业目前必须解决的最复杂的任务之一,"Arteris IP的产品管理总监Guillaume Boillet说。"它需要对硬件和基础流量进行非常详细的表示。今天,预测可能没有那么准确,模拟通常是使用的工具。为了使它们具有可操作性,功率数字有望在实际硅数字的20%以内。"


这是一个很难达到的指标。"设计一个ML加速器相对简单,"VSORA的CEO Khaled Maalej说。"设计一个高效的加速器是比较困难的。估算硅前功耗是最重要的,但困难的是得到准确的结果。功耗分布范围很广,最坏的情况与典型的功耗相差甚远。计算能力和功耗的名义规格并不能说明全部问题。"


功率不是今天的优先事项。"今天的首要任务是让一些东西发挥作用,"Synopsys公司ARC处理器工程经理Derya Eker说。"然后是功能性能,然后是电源效率。当把功能带到电池供电设备或边缘设备时,功耗成为一个关键标准。获得误差率为5%或20%的估算,将对最终产品产生重大影响。"


越来越多的设备开始受到功耗的限制。"功耗确实是设计师评估机器学习的一个关键指标,"Arm公司机器学习集团产品营销副总裁Steve Roddy说。"无论是数据中心还是终端设备中的推理工作负载,通常都会受到功耗限制。对于始终在线的设备来说尤其如此,因为推理工作负载是连续运行的,或者是高计算量的突发事件。"


这有一个道德方面的问题。"良好的功率模型不仅是系统设计的必要条件,对于欧洲和北美的'绿色未来'讨论也非常重要。"弗劳恩霍夫国际研究院自适应系统工程部的先进系统集成组组长和高效电子学部门负责人Andy Heinig说。"如果不通过减少应用中的一些能量来进行补偿,新的人工智能系统的引入将增加全球电子元件的整体功耗。AI系统的估计能耗和整个系统的能耗降低之间的比较需要良好的功率模型。它们应该考虑到软件,也应该考虑到硬件方面,因为AI系统如果共同优化的话,会表现出最好的性能-功率值。"


软件为功率问题增加了几个新的变量。"如果我有一个算法,我需要找到一种方法在我的硬件上运行它,这就是软件和编译器发挥作用的地方,"Cadence的Mitra说。"这不仅仅是硬件,这就是为什么它是一个如此棘手的问题。它需要一种硬件/软件共同设计的理念。如何分割工作负载在很大程度上取决于编译器或工作负载映射器如何实际分割工作负载,并将此放在你的硬件上。"


另一个变量也会产生巨大的影响。"当你在看ML时,有一种新的自由度,这是许多其他设计所没有的,"Cadence的产品管理总监Rob Knoth说。"你可以改变你试图计算的东西的精度。你可以开始查看精度数据,以及不同实现的PPA,以满足这些,因为你扫除精度,突然间,你开始看根本不同的设计架构,以及这些如何实现。"


今天,我们能做的最好的事情就是看流程的各个部分,了解它们对最终结果的影响。


    硬件架构  


如今有超过100个AI加速器正在设计中,每个加速器都试图成为特定类型的算法或应用的最佳选择。


"一个AI加速器可能会带来大量的乘法器,但如果数据不能有效地移动到这些乘法器和从这些乘法器中移动出来,任何性能预测都会被淘汰,"西门子业务Mentor的HLS平台项目总监Russell Klein说。"事实证明,对于大多数神经网络来说,数据的移动--特征、权重、偏置、中间结果--对最终的性能和功率的影响比操作本身、乘法器和积累更重要。随着这些网络的规模越来越大,一次推理需要处理几百兆甚至上千兆的权重数据,大量的中间结果需要存储在某个地方,这种情况并不少见。"


对于搞好内存架构的重要性,大家没有什么异议。"在芯片上和芯片下洗牌一个字节的数据,比在同一个字节上执行MAC操作要消耗一个数量级(或更多)的电量,"Arm的Roddy说。"通过利用数据移动和内存访问占主导地位的知识,分析特定网络的功率曲线变得比试图模拟或测量详细的功率容易得多。"


这仍然需要了解将被移动的每一个字节的数据。"精确的功率建模需要逐周期运行非常耗时的EDA工具,"Flex Logix的首席执行官Geoff Tate说。"对于神经网络模型来说,这是不切实际的,因为这些模型可能需要3000亿次MAC操作来处理一张百万像素的图像。而对于非确定性的ML加速器(缓存争用、总线争用等)来说,不在硬件上运行就能获得准确的功率估计将非常困难。"


很少有加速器针对单一算法。"你需要有一个灵活的架构,以便能够应对不断变化的应用,"Synopsys的Eker说。"客户可能想使用一种定制的图形,并且会想知道这种图形在特定硬件上的性能和能效。这受到精度等选择的影响,因为这决定了计算量和数据路径的要求。如果你没关系去降低精度,你可能有办法优化你的硬件。"


这只是硬件架构和编译器紧密耦合的方式之一。"通过将中间结果保持在加速器本地,而不是将它们写回主内存,你将对性能和功耗产生最大的影响,"Mentor的Klein说。"这通常涉及到多级缓存和战略性的操作排序。任何能够最大限度地减少计算过程中的数据移动的东西都是性能和功耗的大赢家。"


而有时候,这可能需要硬件中的特殊功能。"在架构人工智能加速器时,其中一个关键方面是算法最终在芯片上的分布式程度,以及需要同步的频率,"Arteris IP的Boillet说。"一个直接影响芯片上的网络和整体功率包络的例子,取决于这些架构选择,可能是需要在整个芯片上定期广播数据--或者更有针对性地对将负责算法下一步的节点进行多播。"


    估算  


在一个确定的平台上,给定算法的性能和功耗优化还是很难确定的,因为编译器可以做无数不同的事情,假设硬件架构有一定的灵活性在里面。


假设一个确定性的网络,有三个主要因素对功耗有影响。"大部分的功率将消耗在MAC操作和它们的本地内存操作中,"Flex Logix的Tate说。"可以为一个高MAC利用率的层和一个低MAC利用率的层运行一个详细的功率估计。然后可以对任何给定层的MAC利用率进行插值。下一个最大的功率源将是DRAM流量。可以对高带宽和低带宽流量的功率进行详细建模。然后,对于每一层,功率可以根据该层的预测DRAM流量进行内插。最后是PCIe链接。同样,可以对接收传入图像的时期进行功率建模,然后对链路闲置的时间进行建模。"


这些都不简单。"如果一个团队能够负担得起时间和精力,那么从技术上讲,他们可以建立一个功率性能曲线工具,"Mitra说。"他们可以建立足够多的启发式方法,这样如果我向它扔一些新的工作负载,它就可以计算出DDR、处理元件和内部缓冲区之间会消耗多少功率,并实际进行MAC计算。"


但这只是针对确定性工作负载而言。"一些较新的ML算法不会像确定性的那样,"Mentor的Klein说。"与其运行一组固定的乘法积累,有时只会评估网络的一部分。想象一下,一个对象识别算法处理一个视频流。人们不需要对每一帧的所有像素进行处理。如果只有几个像素发生变化,可以对它们进行增量处理。现在算法的性能和功率将取决于数据。其他的优化涉及到对网络的修剪,有时会很明显。有一些方法可以动态地进行这种修剪,也就是说,如果某个感知器产生了负面的结果,就不要去评估这些其他的感知器。这使得网络的性能和功率依赖于输入数据,因此更难预测。"


需要评估各种平台的功率性能权衡,这意味着必须有某种方法来判断哪个平台是最合适的。但在我们拥有真正的功率模型之前,行业必须依赖基准。"训练集数据是这些算法中许多算法工作的根本,"Cadence的Knoth说。"我们将开始看到更多关于某些基准或某些标准工作负载的协议。如果你不这样做,那将是一个人的话与另一个人的话。你不会看到这些标准在一夜之间显现出来,但这是一个合乎逻辑的终点,以便使这个更有成效。"


    优化精度  


无论是在算法开发还是在ML编译器的优化中,新的自由度之一就是准确性。


"在研究方面有一个二元对立的现象,人们提出了旨在提高准确性的新网络,"Mitra说。"边缘设备是有功率限制的,或者说是有资源限制的,你必须要问一个问题,'我需要多少准确率?如果我可以用90%的概率检测到一只猫,与90.1%或91%的概率相比,对你来说可能没有太大的区别。二分法是指那些正在制造新网络的人,与那些试图在真正的硬件、真正的平台、真正的硅片、真正的IP上映射这些网络和工作负载的人。我做了这个网络,我把这个网络做得更好,但是我真的把它做得更好了吗?从功耗的角度来看,我真的伤害到它了吗?"


那么,从算法到底层硬件平台就有很大的差距。"如果我改变了算法,会体现在很多方面。"Eker说。"最大的因素是,如果我的精度或者图架构发生了变化。我是否有更深的,或者更多的层数进来?这些都会影响功率。没有一个直线的路径可以得到这个精确的估计。这取决于你所做的大变化。设计师们经常测量图形的单个卷积层的能效,例如多层SegNet图形(见图1)。一个常见的陷阱是,然后将结果外推到一个完整的图形。你需要知道硬件、应用将如何被映射。你需要将多个学科结合起来。"


神经网络模型或需要3000亿次MAC运算来处理单个兆像素图像_娱乐产业_游戏行业


图1:SegNet架构实现了多层。根据位置或图形架构的不同,同一层可能需要不同的能量,因此没有一个单一的层可以外推来代表整个图形


虽然算法层面可能与实际硬件过于分离,但许多ML编译器是由硬件开发者开发的,因此他们应该知道如何针对现有的硬件特性进行优化。


"量化和数值表示对功率和性能的影响是巨大的,"Klein说。"这发生在两个方面。首先,运算符变小了。乘法器的大小大致与它们输入操作数大小的平方成正比。一个32×32位乘法器的面积大约是16×16乘法器的4倍,对于大多数ASIC库来说,功率的扩展甚至会比面积更好。量化的第二个好处是数据移动。如果你的数字更小,需要移动的数据就更少。从32位表示到8位意味着移动1/4的数据,并且有1/4的内存用于权重和中间结果。而访问这些数据的总线周期数也要减少1/4。"


而这些优化往往被发挥到极致。"考虑一个设计,它的芯片有一个始终开启的部分,它要监听唤醒字,"Knoth说。"这是你对词的解释有多准确,与你要消耗多少电力之间的一个非常真实的权衡,因为你总是坐在那种待机模式下。"


继续有很多研究可以帮助优化硬件。"你也不要把思维局限在数字表示需要是线性的,"Klein说。"ML应用可能在0附近需要大量的精度,但当数字大于1或小于-1时,不那么精确就可以了。将数字作为索引存储到查找表中是实现这一目标的一种方法。"


    实现的含义  


在设计芯片时,无法知道确切的功率数字,随着时间的推移,它们会随着算法的完善,或者编译器的改进而改变。"峰值功率绝对是重要的,以确保当你的电路达到一定的操作时,你不会有任何功率完整性问题,"Knoth说。"你还需要关注像最大平均功率这样的东西,以确保你不会出现器件或封装的热问题。你必须关注像待机功率这样的东西,特别是如果它是由电池供电。你必须关注所有这些问题。但它们是从设备上的流量的某些基本假设开始的。"


还有其他因素。"你应该看看多种应用,以及一系列应用的功耗,这样就不会出现意外,"Eker说。"通过了解你的设计,并从剖析应用,你可以看到你可以获得的峰值功率。而这也是我在电网的尺寸设计中应该使用的东西。不要只取一个数据点,而是根据剖析找到一个好的上限范围。"


系统可能也需要内置保护措施,以应对功率或温度建立超出预期的意外情况。"在移动环境中,有很多电压/频率组合,"Mitra说。"硬件可以在不同的电压频率曲线下运行,这意味着我可以选择'这个'电压,那么'这个'就是我的频率,而'这个'就是由此产生的功率和性能。"


    结论  


今天,没有任何可靠的方法能达到可靠决策的20%这个神奇的准确数字。决策是在选定的样品上做出的,但不能保证这些样品在产品的生命周期内保持不变。


最终可能需要的是一个数字孪生体,在这个数字孪生体上可以评估算法变化在现场给定设备的性能和功耗。"人们只会意识到那些被测量的东西,"Knoth说。"我们越是看到功能验证的学科与一些设计和实现合并,这样你就可以开始对这些加速器上运行的算法的PPA影响给出几乎实时的反馈,这就是你如何构建一个整体更好的产品。"


在某些时候,这种情况会发生变化。"未来,公司将为AI加速器上使用的网络芯片提供可靠的功率模型,"Boillet说。"而现在,我们计划依靠人工智能算法将这些模型通用化,我们正在走完全程。"

87
89
0
96

相关资讯

  1. 1、产品家就是要精雕细琢4504
  2. 2、当接手新项目后,如何制定一份可执行的项目运营统筹规划?4893
  3. 3、增长黑客教父SeanEllis:关于打造增长团队的6条建议4354
  4. 4、模拟群面复盘|优先级排序题(11选5)2873
  5. 5、产品同质化,运营才有机会(上)164
  6. 6、产品运营入门:如何把产品用户做到100W+2622
  7. 7、智慧社区还有文章可做吗?未来将如何发展?2827
  8. 8、2019不能错过的这6个趋势2316
  9. 9、开发社区O2O市场,你找好切入口了吗?4470
  10. 10、经此一役,在线办公未来态势几何?2089
全部评论(0)
我也有话说
0
收藏
点赞
顶部