中文 英语

新电源,性能选项在边缘

随着芯片制造商利用各种架构选择,权衡也在增加。

受欢迎程度

边缘计算智能的不断提高迫使芯片架构师重新考虑如何划分计算和优先级,以及哪种处理元素和内存配置最适合特定应用程序。

将原始数据发送到云端进行处理既耗费时间又耗费资源,而且通常是不必要的,因为越来越多的传感器收集的大部分数据都是无用的。在更靠近源头的地方筛选数据更节能,但即使在那里,效率也可以提高。因此,现在芯片架构师正在考虑一系列其他选项,包括首先处理哪些数据,存储在哪里,以及处理需要发生在内存层次结构中各种元素的距离。

虽然仍然需要通用处理器,如CPU或APU,但专用加速器可以在性能和能源效率方面增加数量级的改进。但是,这些计算元素越来越多地必须在更大的系统上下文中进行查看。因此,芯片制造商并不是仅仅建造一个更快的处理器或加速器,或者拓宽通往内存的路径,而是专注于数据如何移动,实际移动数据的底层架构,以及处理什么、何时处理以及处理在哪里进行的最佳平衡。

需要解决的一个大问题是数据需要在内存和各种处理元素之间传输多远。

“多年来,我们做了大量工作,以确保数据保存在CPU上,并保存在系统中重要的地方,”技术副总裁彼得·格林哈尔(Peter Greenhalgh)说手臂.“这不仅延伸到我们的CPU元素,还延伸到我们构建的互连(相干网状网络)——特别是在基础设施空间,我们可以确保数据保存在芯片上,而不是从芯片上移动,因为访问数据的成本更高。这延伸到我们目前正在做的3D实现的工作。通过3D缩放,我们正在扩展我们的CMN以应对3D架构,这样你就可以在上面的芯片上存储内存,然后以最有效的方式进行接口,但也比DDR更低的功耗。”

将处理直接移动到内存中是另一种选择。Scott Durrant,战略营销经理Synopsys对此,指出了实现计算存储解决方案的三种方法——计算存储阵列、计算存储处理器和计算存储驱动器。每一种都有自己的一套权衡。

计算存储阵列是一个集成了交换机的加速器模块,它提供了主机CPU和传统ssd硬盘之间的连接。Durrant说:“这种方法是节能的,因为只有一个存储处理器消耗能量,而且它方便且经济,因为它允许使用传统的ssd硬盘。”“虽然这种方法实现了计算存储的好处,减少了主机CPU和存储之间必须交换的数据量,但它并没有减少ssd和存储处理器之间传递的数据或相关功率。”

相比之下,计算存储处理器作为传统ssd的对等体连接到PCIe总线。

Durrant说:“这种方法消除了计算存储阵列中交换机的功耗和延迟,但需要在处理器的PCIe总线上进行更多的数据移动,并且不能有效地扩展系统中的存储量。”“存储处理器芯片架构师需要考虑许多因素来决定在哪里放置计算功能。例如,如果存储处理器架构师可以访问或集成闪存控制器,那么计算存储驱动器方法可能是有意义的。如果目标应用程序本身很适合并行处理,那么这种方法也特别有趣。如果架构师需要交付一种利用传统闪存驱动器的经济性和/或不提供计算存储驱动器方法固有的可伸缩性的产品,则其他方法可能更可取。”

通过计算存储驱动器,设备通过NVMe连接到主机CPU。这些驱动器有自己的内置存储处理器,提供随驱动器数量而增加的处理能力。这种方法的优点是通过减少外部组件的数量来最大限度地减少存储延迟。它还可以最大限度地减少数据移动,因为它可以在数据离开SSD之前对其进行过滤和处理。


图1:计算存储选项。来源:Synopsys对此

分区的势头
还有其他减少运动的方法。自从苹果公司在iPhone 7中选择了扇形展开技术后,将芯片分解成独立的芯片就越来越受欢迎。从那时起,英特尔和AMD各自开发了芯片模型,系统公司也开始采用某种形式的先进封装。虽然最初的应用程序主要是将更多的计算能力塞进一个封装中,但芯片制造商开始利用先进的封装来增加更多的定制。

先进封装背后的最初考虑之一是,它使芯片的各种元素能够一起工作,无论它们是用什么制造工艺开发的。但随着各种元素的堆叠,这种方法实际上可以缩短信号需要传输的距离,而不是将信号从一个大SoC的一端路由到另一端。因此,信号可以用更少的功率和更快的速度驱动比通过一个长而细的电线。

Arm首席执行官西蒙•西格斯表示:“3D芯片中可以实现内存之间的高带宽接口,或者实际上是不同堆栈上的不同处理器之间的高带宽接口,这将是一项超级重要的技术,可以在每次生成的进程中提供越来越多的性能。”“人们谈论结束摩尔定律停止晶体管的缩放,但向三维的移动将是帮助性能不断提高一代又一代的领域之一。我们做了很多研究项目。我们已经与一些领先的铸造厂合作,研究如何使其易于使用,因为当你进入3D堆叠时,会有很多物理实现和制造问题。随着架构的发展,这将是一个令人兴奋的发展。”

这里的关键是要弄清楚什么在多维度下可行,什么不可行。随着计算智能越来越接近边缘,这一点尤其重要,边缘仍然是端点和云之间一个模糊定义的区域。

机器学习是一个经典的例子,”Tensilica Xtensa处理器IP的产品营销总监George Wall说节奏.“它最初是为某些应用程序进行对象检测和分类。现在,机器学习已经扩展到处理雷达输入,处理语音命令,甚至处理网络流量。为了满足机器学习类型算法的计算需求,以及所需的吞吐量,通常计算必须移到离数据源越来越近的地方。”

为了使所有这些工作达到预期的效果,在软件和硬件方面还有许多工程工作有待完成。

沃尔说:“例如,一个以物体检测为目标的机器学习引擎,如果它试图在存储空间中做一些事情,就不会是节能的。”“你需要有一个针对特定应用程序的优化引擎,它自然希望更接近数据源。您离数据源越远,对延迟的影响就越大,因为您必须将数据传输到引擎。然后,当引擎做出决定时,它必须将这些决定广播回源代码。那里有往返延误。你越能减少往返延迟,就越能减少延迟。”

节约能源
在芯片上和芯片上移动数据仍然是节能设计的一个挑战。对于图形或机器学习芯片,这一点尤其明显,因为本质上这些都是数据密集型应用程序。

西格斯说:“重用数据一直是我们担心的问题。“多年来,我们在图形架构上做了一些创新,专门解决这个问题。在芯片上或从芯片上删除数据非常耗电。从能量的角度来看,将它从主存储器转移到芯片上是非常昂贵的。这些年来,我们做了很多事情,希望把数据带入芯片,在我们继续用其他数据替代它之前,尽可能多地使用它。这也是我们在SVE2(可伸缩向量扩展2)中增加数据大小的原因之一。在获取下一组数据之前,你手中可以掌握和处理的数据越多,系统就越节能。”

压缩和能源效率
机器学习副总裁兼总经理、Arm研究员Jem Davies表示,这个问题已经处于前沿有一段时间了。Davies说:“我们研究的两个大数据平面问题是图形和机器学习,这两个问题都需要非常大的数据集,所以专注于计算与负载存储能量使用是我们从一开始就关注的问题。”“事实上,我们在gpu的几个不同地方使用压缩,以及我们在神经网络过程中使用压缩的方式,都是对这一点的反映。我们可以压缩它,然后解压缩,这比未压缩的加载和存储所需的能量要少。这也会影响我们的缓存架构。”

压缩在能源效率方程中起着关键作用。虽然在编码和解码过程中消耗了能量,但通过发送压缩数据总体上可以节省能量。好消息是,这是一个相对简单的改进,超出了大多数IP的设计范围。

该公司首席执行官Ashraf Takla表示:“这确实不会影响我们在IP中所做的事情,但会影响配置Mixel.“从系统的角度来看,你会在没有压缩的情况下使用高频四车道吗?通过压缩,您需要更少的带宽。那么你是降低速度,还是,比如说,减少车道数?通常,后者是更好的解决方案。你不是以较低的速度奔跑,而是以全速奔跑,但你减少了车道的数量。这不仅节省了电力,还节省了引脚。”

其他人也同意。“我见过人们在架构决策中使用压缩来减少传输的数据量——3X压缩有效地减少了数据的移动,无论是在芯片之间还是在芯片内部移动。Alain Legault, Hardent知识产权产品副总裁。在这两种情况下,您都可以节省大量费用。当你有大量的数据处理,甚至在芯片内部,如果你有一个统一的内存架构,如果图像实际上是压缩的,你会得到巨大的节省。这可能意味着你将内存架构的宽度除以2。”

这也有助于加载和存储数据。Arm NPU设计的关键指标之一是特定数据被加载或存储的次数——尤其是从主存加载并使用的次数。戴维斯说:“这是我们在模拟和设计原型以及数据的智能移动过程中非常密切跟踪的东西。”“我们在其他处理器设计中使用大量小处理器的原因之一就是为了实现这一点。移动数据的实际智能对整体能源使用至关重要,这是NPU的关键因素之一。为什么要用NPU而不是CPU?因为这样更有效率。”

多处理,少移动
这里的主题是相似的,尽管实际的方法可能有很大的不同。其基本思想是在本地处理更多数据,只在必要时移动数据,并使移动尽可能高效。但这也可以通过其他方式的节约来扩大。

“在存储和内存中,将数据一直移动到处理器,就像CPU一样,需要大量的能量,”Steven Woo说Rambus.他提到了马可·霍洛维茨在2014年国际固态电路大会上的主题演讲,霍洛维茨在会上驳斥了计算是瓶颈的流行观点。霍洛维茨表明(见下图2)这是不正确的。精力花在准备添加数据和获取该操作所需的数据上。

Woo说:“整个系统中有相当大比例的能量都花在了设置计算和移动数据上。”“更引人注目的是,霍洛维茨在酒吧的这些部分贴上了标签。他处理这些数字,从内存中获取指令和数据。”


图2:数据访问和移动主导功耗。来源:Rambus/Mark Horowitz,斯坦福大学,“计算的能量问题(以及我们能做些什么)”,ISSCC 2014。

不过,将数据移出芯片也需要权衡。他说:“如果我必须离开芯片获取数据,我必须担心的一件事就是获取数据所花费的时间和精力。”“储存也是如此。而在存储方面,数据就更糟糕了,因为你要移动到更远的地方去获取数据。如果你说的是硬盘,就涉及到机械旋转,这需要很多能量。从能量的角度来看,你可能会想,‘如果这个条被移动数据到计算引擎所主导,为什么我不把计算引擎放在数据的旁边,甚至把它放在存储数据的媒体中呢?我们讨论了近数据处理或内存计算。这只是一个概念,‘我要把计算机尽可能地靠近。’”

从那时起,处理器和内存变得更加智能。以前,当处理器请求数据时,内存和磁盘都不会将其识别为比特以外的任何东西,而解释这些比特是CPU的工作。

“如果你打算在存储或内存上进行计算,现在情况就不一样了,”Woo说。“存储器和内存必须知道这些比特需要什么才能处理它们。如果你在考虑搜索,这些位是整数吗?它们是图像吗?这些比特到底是什么?他们必须具备语义意识——基本上,他们必须理解比特背后的语义,这样他们才能进行处理。这有点难。它需要主机和CPU之间的一些交互和协议,以及在存储或内存附近发生的计算。这是模型的改变。但我认为没有人会不同意,如果这种模式对你想做的工作类型有意义,你可以获得巨大的绩效和能量收益。”

接下来是什么
当芯片架构师评估在哪里放置计算时,Cadence 's Wall建议他们考虑他们所拥有的时间预算,以便进行必要的计算,以及功耗预算。他们能在不超出电力预算的情况下减少所需的时间吗?

“如果你有一个可扩展的学习架构,你可以看看不同的点和可变的解决方案。您可以从可扩展解决方案的低端(较低的性能、较低的功耗)开始,然后看看它是否满足您的计算需求。我们提供指令集、模拟器等工具SystemC建模,让我们的客户进行评估。他们可以很容易地看到这是否符合他们的预算。也许一个特定的解决方案满足了他们的预算,有很多多余的钱,他们想要考虑进一步缩减。或者他们可能会发现这没有达到他们的预算,他们需要上升到业绩曲线的下一个水平。他们需要着眼于下一个更高的层面。”

其他人也同意。Synopsys产品营销经理Rich Collins表示:“对于每个架构实现,芯片/系统架构师还需要仔细评估所涉及的处理器的级别和性能。”“这不太可能是‘一刀切’的决定。每个计算存储实现都会带来一组不同的处理器性能、功耗和面积考虑因素,这些都需要解决。”

结论
在一天结束的时候,所有这些突破极限的考虑因素都必须发挥作用,并成为设计的基础。这是设计师在产品开发中创造自己的“秘密武器”的地方。

Arm的Segars说:“移动数据,在缓存的层次结构中缓存它,这对系统端的影响——这些都非常重要。”“这就是架构和设计哲学超越指令集,进入人们正在构建的设备结构的地方。”

相关的
计算数据所在位置
计算存储方法推动了功率和延迟的权衡。
开发新型推理芯片的挑战
设计、开发、测试和修改边缘加速器IC所涉及的内容。
转向数据驱动的芯片架构
重新思考如何提高半导体的性能和降低功耗。
理解新的边缘推断架构
如何驾驭大量令人困惑的选择和术语。
边缘推理架构激增
是什么让一个人工智能系统比另一个更好取决于很多不同的因素,包括一些不完全清楚的因素。
将数据和计算更紧密地结合在一起
这一点都不简单,但是功耗/性能和延迟的好处是潜在的巨大的。



留下回复


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

Baidu