专业化与泛化的处理器

怎样才能实现大规模定制的边缘,高性能和低功耗。

受欢迎程度

学术界一直看着专业化多年,但是解决方案被驳回,因为通用的解决方案是发展的足够快跟上大多数应用程序的需求。情况已不再是这样。RISC-V处理器体系结构的介绍和支持已经吸引了大量的关注,但这是否正确的方向对于大多数现代计算可能随时间改变。

建筑是否专业或概括的问题有不同的答案,导致1990年代观测Makimoto的波。Tsugio Makimoto是索尼的首席技术官。

图1:Makimoto波。来源:半导体工程

图1:Makimoto波。来源:半导体工程

每年的一个隐藏的宝石DAC是IEEE CEDA杰出的演讲者午宴。今年的演讲,题目是“计算系统优势:专业或概括,“由Tulika Mitra副教务长(学术事务)和教务长的椅子上新加坡国立大学的计算机科学教授。

下面是一个浓缩版的Mitra说集中在专业化与泛化为边缘物联网设备的问题。

“我来带你通过专业化和泛化之间的辩论,”Mitra说道。”她说话的第一部分提供了一个简短的历史后的半导体行业的早期阶段Makimoto波从LSI的时代。“他们吹嘘将22组件集成到一个集成电路。第一个集成电路非常专业。他们是特定于应用程序的。”

改变在1971年当英特尔推出4004处理器。“以今天的标准来看,这是一个非常简单的设计,只有2300个晶体管。但它是第一个使用了通用的可编程的微处理器冯诺依曼体系结构和存储指令的概念。在这个意义上,它是革命性的,因为它可以让你有一个重用电路执行不同的算法。,该行业进入的领域推广,我们有一个固定的指令集架构决定了硬件设计和软件开发人员之间的合同。它提供了一个非常高度的可编程性和你已经支持多个应用程序”。

这些架构的问题是他们花费大量的能量提取并行性和不执行有用的计算。“到2005年我们已经结束频率扩展的崩溃Dennard扩展。单核优化不再是可能的,该行业转移到多核和许多核心架构。问题是,软件设计并没有跟上这种并行性。”

即使这些架构有一个极限。“Amdahl法则说即使你可以并行化你的应用程序的99%,导致100年的最大加速,不管有多少处理器使用。今天,我们还打击了路的尽头摩尔定律,所以我们被迫回到专业的领域。”

她说看着一些加速器被引入,包括谷歌张量处理单元和达尔文基因组学的处理器。“如果你看看GPU,这是一种大规模并行体系结构。这些东西其实是为一个特定的设计领域。因为他们有大量的并行性,可以获得非常高的性能。但因为你设计一个特定的领域,硬件可以非常简单和低功率。但同时不轻易可编程”。

Mitra然后边计算,介绍了一些具体的要求,包括需要做更多的处理接近数据而不必传送数据到云上。“这既低效又取决于一个可靠连接,不能总是得到保证。”

运动识别的例子介绍了一个手指,和一组基线确定这样做的动力和性能用一只手臂皮层M3处理器。进一步建立了数据使用一个移动电话。“虽然低功耗的解决方案提供的M3,它不是足够快,和手机为优势应用程序使用了过多的权力。”

通用解决方案部署在该行业是创建定制的加速器,是针对特定的任务。“有许多加速器,和爆炸的边缘AI加速器。他们可以得到非常高的效率,并能达到3到4每瓦顶。还有其他的加速器。例如,麻省理工学院有一个导航。但你怎么能把它们组合到一起呢?”

再一次,她看着现有商业系统指出加速器的数量和大小的处理器。“如果我看着很小物联网设备的优势,在一些特定领域的加速器+多个通用的核心是站不住脚的。”

一个专业化的时代
有一些属性的任务,使他们适合专业化。“应用程序并行性。你需要计算,执行定期的间隔。和计算内存位置。但也有缺点专业化。鉴于设计成本,你最好有足够的容量来摊销成本。它为各种各样的应用程序是不可能的。虽然专业化可以帮助某些应用程序,它可以使其他应用程序受到影响。”

有一个专业化和泛化之间的权衡。“X轴(见图2),你会看到速度从专门化,而通用处理器。在Y轴上产量。它显示芯片的数量你必须为了受益于专业化生产。浅蓝色区域就是我们大多数人是目标。你得到很多从通用处理器性能提升。这就是为什么你没有看到专业化一段时间,因为你需要有高加速专业化或非常高的产量。但是现在,我们后摩尔时代,没有得到那么多从通用微处理器中受益。有更多的应用程序将受益于专业化。但即使这样,你有一个部分不是受益于专业化。”

图2:经济学的专业化。来源:Tulika Mitra / DAC

图2:经济学的专业化。来源:Tulika Mitra / DAC

一种方法是使用增量专业化。“你从通用处理器和添加一些特定函数通过自定义指令。这需要反复操作,然后将它转变成一个定制的指令。20年前这是一个热门话题,人们看着你如何把应用程序,找到所有的专门化。今天,随着RISC-V处理器,我们有自定义指令集扩展,您可以添加这些指令。您可以创建一个图书馆,你可以有这些micro-accelerators。”

但是你能做这些对很多核心和多核心架构处理器定制吗?“他们的想法是让处理器尽可能简单,然后添加一个自定义指令到每一个处理器。我们也试图片段自定义指令和将它们分散到多个处理器然后缝合在一起。我们是成功的,我们可以满足实时要求的我们看到的应用程序。我们现在可以做手指手势识别。但在139 mw,这不正是我们所希望的。的原因之一是因为处理器还带走大量的电力。”

图3所示。许多核心处理器定制。来源:Tulika Mitra / DAC

图3所示。许多核心处理器定制。来源:Tulika Mitra / DAC

普遍的加速器
就像冯·诺依曼机,密特拉是寻找一个加速器,可以运行任何算法。胚根端胚乳成本如果这是可能的,可以平摊在多个应用程序和仍然设法满足性能和电力的目标。“你必须保持尽可能简单的硬件,否则将需要大量的电力。所以你把软件的复杂性。这意味着软件需要知道硬件是怎么回事的。还不够你就暴露的接口指令集架构。你需要公开底层架构的软件。”

一个办法是将计算模型,它本质上是连续的,数据流计算模型,提供了异步并行性。“你在这个模型中暴露整个计算数据流图的形式,公开的操作之间的依赖关系和暴露了并行性。你映射到整个数据流图的硬件,让它执行。你不需要提取并行”。

在1975年第一次描述了数据流处理器。这不是广泛采用,因为通用处理器做得不错。也有问题的软件堆栈。“今天,AI加速器遵循这个数据流计算模型。然而,硬件是实例化特定数据流。我们想看看不同的数据流可以在相同的硬件上的支持,这是硬件软件定义的想法。你想要的软件实例化不同的数据流对应于不同的应用程序在相同的硬件上。然后你会得到一个通用加速器”。

一种方法是使用粗粒度的可重构阵列(CGRAs)。这样的例子在2000年左右第一次出现。今天,许多公司有CGRA在他们的投资组合,包括三星、英特尔和瑞萨。

CGRA是一个2 d处理元素的数组,其中每个处理元素都有一个非常简单的ALU,连接北,南,东、西到四个邻居。“什么是有趣的关于这个架构,您可以更改操作,一个特定的体育是每个周期执行。你可以重新配置网络,做不同的工艺路线。你有强大的逐周期重构性。的软件发送这个配置数据存储在内存中,但是由于配置内存是有限的,这意味着你只能地图有反复计算。”

图4:CGRA——效率与可编程性。来源:Tulika Mitra / DAC

图4:CGRA——效率与可编程性。来源:Tulika Mitra / DAC

“TPU专业数据流矩阵乘法。但CGRA,你可以给它任何数据流,该软件将实例化一样的建筑。这样做的优点是它可以做语音识别,它可以做FFT,它可以做矩阵乘法,它可以做卷积。所有这些数据流可以映射到CGRA得到很好的效率和性能。”

面临的挑战是要做数据流合成到CGRA。“这是place-and-route非常相似。我们要把数据流图,并将其映射到体育。所以你做的位置,然后路线的依赖关系,从一个体育到另一个的连接。这里有趣的是这不仅仅是一个空间的映射,但空间时间映射。空间时间映射,一个体育执行这个操作在一个周期,并在下一个周期执行不同的操作。同样,所有的工艺路线是不同的。这使它大量的电力,不仅限于一个迭代。你可以对比多个操作在并行使用软件流水线技术。”

Mitra CGRA之间的异同和讨论FPGA。她指着两个主要的差异。第一个涉及抽象FPGA在哪里在一些层面,而CGRA在操作层面。第二个是颞CGRA的重构性。

新加坡国立大学产生于2019年首次CGRA称为HyCUBE。它以令人印象深刻的性能特征与处理器相比,fpga,三星可重构处理器。大学已经发布了一个更大的CGRA还增加了一个基于RISC-V控制器和其他一些建筑的进步。“最高效率之间CGRAs今天每瓦- 582年共和党在0.45 v,和我们使用40 nm超低功率的过程。我们大多数的竞争对手使用的是22纳米工艺,和我们估计性能将1顶/ W技术。”

软件的复杂性。“CGRAs我们不成功的过去,因为我们没有软件工具链。空间加速器使用place-and-route启发式。这些路由启发式依赖于加速器您正在使用,所以你需要的手工艺品的编译器。这需要很多时间,place-and-route让本地决策。他们为整个系统可能不是最优的。所以我们想知道机器学习技术可以自动编译器发电机新CGRA。”

这导致了丽莎,一个自动化的编译器生成器。“我们创造了很多合成数据流图(DFG)和使用,创建一个训练集的数据。一旦你有了一个新的CGRA,我们建立一个神经网络图模型,试图从这个图估计某些属性,如调度顺序,和两个DFG节点之间的时空距离。然后,当你有一个新的数据流图,生成标签,通知我们模拟annealing-based映射方法。便携式编译器,给了我们一个非常高质量的映射在多样化的加速器记录时间。”

初步结果一直编译时间,所以许多技术被用来加快解决。这包括抽象、常见的重用模式和集群。整件事已经被打包为一个开源CGRA工具链,如图5所示。

图5:新加坡国立大学变形器开源CGRA工具链。来源:Tulika Mitra / DAC

图5:新加坡国立大学变形器开源CGRA工具链。来源:Tulika Mitra / DAC

“我们有这个抽象的架构模式,所以你可以任何建筑,你可以有任何应用程序模型。它将映射到该应用程序的架构。它也会让你做一个FPGA仿真。更重要的是,我们实际上有一个模拟和验证流程,缺少先进的CGRA工具。”

然而,挑战仍然存在。“嵌入式应用程序的一个重要部分包括控制循环体内散度。CGRAs并不擅长。另外,CGRAs非常高度并行体系结构,你需要把大量的数据到系统中。我们已经取得了一些进展,但能做的更多。我们正在努力调查,在一个大型项目的背景下,我们正试图生成下一代软件从从应用电路。”



留下一个回复


(注意:这个名字会显示公开)

Baidu