中文 英语

更多的数据驱动器关注集成电路能源效率

影响数据处理方式、时间和地点的决策。

人气

计算工作负载变得越来越相互依赖,提高了芯片架构师的复杂性,因为他们准确地计算应该在哪里进行,以及如何优化它以缩小能量边际。

在基本级别,现在有更多的数据来计算和获得结果的紧迫感。这种情况强迫重新思考应该移动的数据应该是多少数据,以及使用有时分开的各种函数的能量有多少功能,有时依赖于彼此,并且通常以不同的方式优先考虑。

公式可以很大差异,具体取决于数据处理的位置。例如,在A内移动数据数据中心据估计,这将消耗数据中心总能量的10%至40%,而且随着需要处理的数据量持续飙升,这一比例预计还会增长。

DesignWare IP的云市场营销经理Scott Durrant说道:“在过去的一段时间里,数据量有了显著的增长,而设备的网络也产生了特殊的影响synopsys.。“随着我们在网络上放置了越来越多的设备,例如视频安全摄像头,交通摄像机,制造控制系统等,这些设备正在推动网络数据流量,因此以非常显着的方式向数据移动。”

每天的每一分钟,超过500小时的视频都上传到YouTube,每天都从YouTube流式流式流。Durran说,流视频和社交网络是网络流量的两个关键驱动因素。

但这已经不仅仅是数据中心的问题了。如果所有的数据都被发送到云端,那么获取结果的时间太长,而驱动信号来回传输又需要太多的能量。在离源更近的地方处理数据会对移动设备的能源消耗、性能、电池寿命产生巨大影响,以及一系列物理效应,这些物理效应会影响从电路老化、信号完整性到终端产品的整体竞争力等方方面面。

“由于计算引擎变得更快,例如AI加速器,他们需要更多的带宽,并且只有几个非常好的内存解决方案将有效,”Steven Woo,Steven Woo,Suppored Inviceor说Rambus。“这意味着,当你不得不移动数据时,你希望它尽可能的节能。一旦你获得了芯片上的数据,你就尽量不去移动它。一些架构师会做的是保持一些数据的稳定,但改变围绕数据进行的计算,因为这样做更容易。最好将这些计算资源放在一个地方,而不是到处移动数据,而不是拥有独特的专用资源,并在小计算单元之间来回传输数据。”


图1:数据访问和移动主导功耗。资料来源:Mark Horowitz,ISSC 2014 / Rambus

在上面的条形图中,虽然大多数是蓝色,但是红色位表示将两个数字加上两个数字。蓝色部件都是要获取两个数字的能量,将它们移动到计算引擎,并控制添加操作。Woo指出,“有趣的部分是名为”注册文件访问“的栏的蓝色部分。”这表明如果该数据发生在寄存器中的芯片(6pj或picojoules)上的芯片上,则可以访问数据的能量。In the rightmost table above the bar, you can see how much more energy it takes if the data you’re adding together happens to be stored somewhere else, like a cache (a range of 10pJ to 100pJ depending on the size of the cache). The one that’s a bit surprising is if the data happens to be in DRAM – it’s 1.3 to 2.6 nanojoules (nJ), which is approaching 1000 times more energy. So if the data happens to be in DRAM, then that second segment of the bar chart would go from 6nJ to ~2pJ, or roughly 333x longer its size. The data movement energy would swamp all other energy. That’s why accessing DRAM in an intelligent way is so critical – it can’t be avoided, but once you do get data from DRAM, you need to make sure you reuse it as much as you can to amortize the high energy required to access it.”

移动数据需要花费精力和时间,因此在适当的地方处理数据并去除无用的数据会对性能和电力产生很大的影响。发回“一旦你有能力更有意义的数据量较小的CPU,那么CPU,试图抓住它,只要它可以,和可以执行技术像重量固定或类似的东西,它拥有数据和试不要移动它,”他说。“你所希望的是最小化磁盘上的数据移动。一旦你得到了更有意义的东西,你可以把它发送回处理器,这样就不会浪费带宽,因为你只发送有意义的东西,然后处理器会尽可能地保留它,尽量不移动它。所有这些都是为了最小化数据移动而设计的。”

这是汽车应用的一个重要问题,例如,因为传感器产生的数据量。在A.adas.系统,许多传感器输入必须考虑,其中一些包括流视频,需要处理的事情,如目标检测和分类。大量的数据必须非常快地输入和输出。

Tensilica Xtensa处理器IP的产品营销总监George Wall解释说:“移动数据占用了处理器之间发布指令、移动数据指令以及互连线切换的大量能量。韵律。“此外,处理器在等待数据时总有一些开销。但是这些数据正在被传输,所以在某种程度上这就像是正在被使用的能量并没有得到很好的利用。当数据被移动时,不会发生很多处理。它只是在等待数据。”

当数据卷较小时,这些问题是可管理的,但它们一直在稳步增长,因为计算密集型应用程序如AI.数据分析变得更加普遍。

“这个问题已经存在了很长一段时间,但现在我们看到一些解决方案来亮了,”根据Anoop Saha,战略和成长负责人西门子EDA。“关键问题是它如何影响芯片的设计,以及它如何影响系统架构师对整个过程的思考方式。如果从SoC和系统架构师的角度来看,数据是从一个源捕获的。例如,车内数据来自摄像头和其他传感器。在智能手机中,数据来自互联网或用户正在做的事情。一旦数据被捕获,它将从那个地方转移到存储系统,然后在计算引擎上计算数据。在这种情况下,数据在多个阶段之间移动。在将数据从数据源移动到存储器上,然后从存储器移动到芯片上的多层存储器上,甚至在你在那个单元中进行实际计算之前,都需要消耗能量。能源效率是非常不同的在移动数据根据数据从内存芯片- L1缓存的计算单位,L2高速缓存计算单元,与片外数据从多少DRAM芯片上的计算。这有一个数量级的差异,但你不能把所有东西都放在一个芯片上。 At the same time, on-chip memory has limitations. It’s expensive, you cannot have DRAM in the SoC. You have to balance between how much you can store off-chip, and how much you can store in the different levels of cache, and how to do the compute.”

对内存的考虑使这些权衡变得更加复杂。Synopsys定制设计和验证组产品营销总监阿南德•瑟鲁文格达姆表示:“在下一波创新浪潮中,内存需求将受到汽车、5G、人工智能等所有终端市场的大数据应用的驱动。”“这些是主要的驱动因素。一个必然的结果就是大型计算的出现。还有大数据。你要用它做什么?你需要计算,所以你需要大的计算。这些应用激发了计算领域新架构的出现。例如,不仅仅是CPU架构上的创新,现在还有GPU,它现在是加速的支柱。此外,像用于数据中心特定计算的DPU这样的处理器也出现了。”

这种对定制化的推动在功能和性能方面带来了显著的好处。”AI和ML,甚至HPC市场的优势有定制的硬件来运行您的特定的算法或特定的架构非常大,他们实际上他们不想使用标准的现成的硬件如果他们没有,”马克Swinnen半导体产品营销主管有限元分析软件。“因此,在这些市场,或者在如今推动大量半导体设计的大市场,他们仍然需要定制的硬件架构。”

这反过来为不同的记忆选项打开了大门。Thiruvengadam说:“随着大规模计算的兴起,对内存的需求也随之增加。”“随着大数据的应用,越来越多的数据需要处理,传统的von neumann架构是瓶颈。你现在必须在内存和计算机之间来回移动大量的数据,因此在内存和计算机上花费的能量成为了一个限制因素。是什么加速了这一点呢摩尔定律扩展速度变慢了,转移到下一个节点不仅成本更高,而且能效也不高。所有这些都导致了新的计算架构和内存架构的出现,如在内存计算和内存计算,这基本上已经成为人工智能的主流。”

改变处理完成的地方
在宏观层面上,对能量和延迟的关注创造了一个巨大的机会,可以使用专门的架构在边缘进行更多的计算。

“而不是移动大量数据,你试图有效地分区处理,在边缘进行足够的处理,所以你发送的数据更优化了你真正需要发送的东西,”首席执行官Ashraf Takla说MILLEL.

但即使在边缘,需要更改。“芯片铲除数据非常动力饥饿,”Simon Segars,CEO手臂。“从能源的角度来看,将它从主存储器转移到芯片上是非常昂贵的。”

目前的挑战是找出一种方法,以尽可能快的速度将数据导入芯片,在发送之前利用任何必要的信息,然后用其他数据替换它。这对于图形和机器学习来说尤其困难,因为这两者都需要非常大的数据集。

Arm副总裁兼机器学习总经理杰姆·戴维斯(Jem Davies)说:“我们从一开始就关注计算和负载存储的能源使用。”“事实上,我们在gpu的几个不同的地方使用了压缩,我们已经用我们的神经网络过程,就是这一点的反映。我们可以压缩和解压它所消耗的能量比它在未压缩的情况下装载和储存它所消耗的能量要少。它也会影响我们的缓存架构。在加载和存储方面,我们的NPU设计中的一个关键指标是加载或存储特定数据的次数——尤其是从主存储器加载到芯片的次数。这是我们在模拟和原型制作中密切追踪的东西,以及数据的智能移动。在我们的其他处理器设计中,无数的小处理器正是为了驱动它。移动数据的实际智能对整体能源使用至关重要,这是NPU的关键因素之一。为什么要使用NPU而不是CPU呢?因为这样更有效率。”

塞加尔斯表示,在远处移动数据,将其缓存在高速缓存的层次结构中,并了解系统方面的影响是如何重要的。“这是架构和设计理念超越了指令集以及人们建造的设备的结构。3D堆叠,以及您可以在3D模具中的不同堆栈之间进行接口的高带宽将是一个超级重要的技术,可以通过每个过程生成提供越来越多的性能。人们在晶体管缩放中谈论摩尔定律的结束,但对我来说,进入三个维度将成为一个有助于性能的领域之一,只需在生成后继续改善发电。“

新的权衡
有了这么多现有的和新的挑战,使得适当的权衡至关重要。

“要了解权衡,我们需要看看包括不同的系统实现,”营销和应用高级总监Ramesh Chettuvetty说英飞凌技术。“在分布式云计算系统的情况下,考虑到几个因素,包括应用程序的延迟要求,整体功率效率,边缘设备处的功率可用性等的几个因素在云和边缘节点之间进行划分。时间,第一级数据分析由数据源处的边缘设备处理,以节省能量并减少由数据传输产生的延迟。但是,在边缘设备上添加更多计算工作负载会增加其成本和电力消耗。此处的权衡在优化整体系统成本,功率和性能方面。对于某些应用程序的考虑,如延迟和数据机密性超过了成本/权衡权衡。“

如果边缘设备被认为是一个独立的系统,则可以通过优化数据存储元素的分区和分布来实现节能。因此,经常访问的数据存储在靠近处理单元的地方,而不经常访问的数据则存储在更远的地方。数据源离计算引擎越近,数据传输造成的能量损失就越低。因此,系统通常使用L1(频繁数据)、L2(较少频繁数据)和L3与每个处理单元相关联的缓存元素来实现分层内存方法。

然而,在中央处理单元中嵌入更多内存是昂贵的,并且不是通用SoC的最佳选择。另一种方法是嵌入存储器设备本身中的分布式计算元素。要进一步迈出这一步,正在探索多个AI计算工作负载等内存计算的创新方法。

Chettuvetty说:“最常见的权衡是系统成本和电力效率。”“决策包括回答‘在中央SoC中应该嵌入多少存储空间?L1/L2/L3缓存分区应该是什么?计算元素之间是否应该有共享存储(具有缓存一致性)?我们应该使用带有分布式计算元素的内存吗?这意味着通用SoC需要确定跨计算元素的最佳存储量和存储分区,以最好地服务SoC进入的应用程序。对于针对目标应用程序的定制asic来说,分区决策要比通用soc容易得多。”

使用多个芯片的定制设计为功耗和性能以及不同芯片之间的交互方式提供了全新的权衡。Ansys公司的史文宁说:“这只是整个chiplet讨论的一部分。“一个罗马数字(多芯片模块)只需使用通过标准I / O接口进行通信的标准芯片,该芯片可以安装在PCB上。但是,尖峰背后的想法仅由截至目前的垂直综合公司实现的,是您真的降低了片间通信的力量。因此,而不是使用标准I / O驱动程序,您可以使用大量的低功耗,更高速协议,该协议仅在几毫米上工作。这就是他们试图解决移动数据的权衡的方式。但除非你自己建造所有元素 - 芯片本身,所有邻近的筹码 - 所以他们都在一起工作,因为你设计它们一起工作,这很难在异构行业中策划。“

优化特定应用程序的计算也增加了其他挑战。“在筹码方面,这是一个工程学学科。另一方面是理解口罩是什么的算法专家,以及他们想要做什么,“迈克尔弗兰克,研究员说Arteris IP。“TensorFlow(来自谷歌的机器学习开源平台)与人们最初的做法有很大的不同——尤其是在机器学习方面,它将机器学习简化为一些线性代数操作序列,这些操作非常容易理解。它们是可以复制的,所以现在你可以建造一个像谷歌拥有的TensorFlow加速器那样的引擎。但这是一个多学科的努力。你需要有一个拥有算法方面知识的团队。你需要了解内存架构、内存能力的工程师,你也需要了解流程方面的硅工程师。”

这更加复杂于事物。“这些团队需要与具有算法的加速器工程师配对。他们会建立他们的小型加速器,尝试优化内存流,但从不侵入记忆域,“弗兰克说。“它在另一个方向上相同。问题是我们在常规过程中旧的旧日子中使用的典型顺序算法,常规过程中的旧日期,并不是非常适合与内存集成的。如果您查看像内存访问模式等内存访问模式,则访问模式通常由处理器CPU的顺序性驱动,通过指令锻炼指令。这种计算范式驱动了内存应该提供数据的方式。它推动了人们对建造层次结构的全部方式。“

大局,有什么芯片设计团队真正需要了解,让他们的权衡类似于购买高价商品。“你需要了解价格,以及可用的价格,”他说。“这是成为建筑师的基本一部分。你需要知道什么是可能的。您需要知道技术可以提供什么。与此同时,你必须愿意使用非传统的事情。有时候你要说,'是的,我知道这可能是一个愚蠢的想法,但让我们看看它。“这是工程部分进入的地方。虽然您需要知道可用的内容,但您还需要有办法定义您的成本函数,并且您需要知道您能负担得起的东西。然后,你必须有一个你想要的概念。另一方面,特别是在计算中,您需要使用可以运行的基准的体面基础。 Part of architecting is innovation and inspiration. A lot of it is knowing what is out there, to know the history, otherwise you have to repeat it. Next, be innovative and creative, which sometimes means you have to think out of the box.”

西门子EDA的Saha表示,每一层都需要做出决策。“SoC架构师需要决定如何创建架构,以及如何使用微架构。还有一些决策需要验证工程师来做,因为现在他们必须验证所有的架构更改实际上提高了性能和能源效率。现在,更多的建筑师开始更多地谈论能源效率,而不仅仅是原始的PPA或性能、吞吐量或延迟。所有这些都要考虑在内。这在一定程度上是由人工智能,以及在网络、存储和计算以及如何处理数据方面的巨额投资推动的。这将影响您如何设计事物,以及您如何早于度量事物。衡量事物,为时不晚。(你得早点做。)你可以很容易地尝试一个架构吗?你如何测量能量?你如何测量所有事物的能量方面?一旦你把所有这些部分组合在一起,你就可以做出真正的架构决策了。”

拥有一组清晰定义的需求对于理解设计团队将使用什么作为其标准是至关重要的。Cadence的Wall表示:“当用户这样做时,事情往往会非常成功,因为每个人都有一套具体的目标和指导方针。“工程团队可以根据他们的需求进行前期工作,从计算和数据吞吐量的角度定义目标,这使得工作变得更容易。”

沃尔指出,不要拘泥于电子表格的比较是很有帮助的。“当然有很多定量的标准需要使用,但也有一大堆其他非定量的标准在决策中。这包括正在研究的产品的成熟度、围绕产品的软件工具支持、供应商在市场和最终用户中的声誉。这些都是工程团队应该考虑的标准。”

结论
将数据处理从云转移到边缘的势头正在增强,但仅此还不够。

“从系统级别来看,我们需要做同样的事情,”Synopsys的durrant说。“而不是在基础架构周围移动大量数据,让我们将基础设施移到数据。在计算存储方法中,例如,针对嵌入式使用优化的可伸缩处理器 - 但可以在这些设备中运行应用程序 - 可以非常接近数据。您可以创建具有可伸缩计算机的可扩展存储基础架构,其中包含许多级别的可扩展性,以便为数据加密和压缩等数据,并执行数据库密钥值存储卸载和视频转码。随着视频生成的大量流量,所有这些都是很多处理的所有转换都会进行大量的转码。此外,对于存储设备,如果您可以将另一往返于主机CPU保存,并且在存储设备本身内置于稳健和可伸缩的处理器,则这可以以多种方式提供较近数据的计算,并减少基础设施内的数据移动。“

不过,找到最优的折衷方案还是很困难的。随着时间的推移,一切都会发生变化,而随着新技术的出现,这些变化可能会非常显著。



发表评论


(注:此名称将公开显示)