acm-header
登录

ACM通信

的观点

Accelerator-Level并行性


CPU和速度计,插图

虽然过去的信息技术(IT)进步改变了社会,但未来的进步带来了更多的希望。例如,我们才刚刚开始收获人工智能带来的变化——尤其是机器学习——在医学、科学、教育、商业和政府方面有望取得深远的进步。人们常常忘记,在IT影响的基础上,是可编程硬件的巨大改进。硬件改进提供了解锁新功能的性能。然而,与20世纪90年代和21世纪初不同的是,未来对性能的追求必须在技术进步少得多的情况下实现(摩尔定律(Moore’s Law)和登纳德尺度(Den-nard Scaling))。那么,如何以实现巨大客户价值的成本提供AR/VR、自动驾驶汽车和健康可穿戴设备呢?

一种已经出现的方法是使用加速器:更快地执行目标计算类的硬件组件,通常消耗更少的能量。加速器的灵活性可以从高(GP-GPU)到低(固定功能块)不等。最近的工作倾向于专注于特定的应用领域,如图形学(在gpu通用之前)、深度机器学习、物理模拟和基因组学。此外,大多数研究都是关于加速器的,包括发表在通信256专注于使用单个加速器的cpu,并对多个加速器的使用进行了早期预测。1

uf1.jpg
数字现代系统片上(SoC)架构。现代soc中的cpu(白色部分)只占芯片面积的一小部分。SoC的其余部分致力于各种不同的加速器,如DSP、GPU、ISP、NPU、视频和音频编解码器。

在我们看来,许多未来的计算系统将通过使用多个加速器来获得更高的效率,其中每个加速器有效地针对正在进行的计算的一个方面,就像瑞士军刀为特定的任务配备特定的工具一样。智能手机预示了这种未来,它们同时使用许多加速器,但与瑞士军刀不同的是,这些加速器通常使用独立开发的软件栈并行运行。

我们断言,目前还没有“科学”来辩论和系统地回答关于如何最好地促进广泛、灵活和有效地使用多种加速器的基本问题。在这个观点中,我们揭示了这个机会(什么),但要求我们的读者决定如何最好地解决它。我们回顾了过去利用并行级别的计算机系统改进,并引入加速器级并行(ALP)作为一种方式来框架新的挑战,并扩展了智能手机ALP的“点”成功。

回到顶部

过去、现在和未来的并行

随着技术的规模化提供了更多更小的晶体管,计算机处理器架构师通过并行使用晶体管将晶体管的丰富转化为更快的处理。有效地使用重复晶体管倍增需要晶体管并行度的新水平。图1回顾过去和现在,并描述不同层次的并行(y-axis),随着几十年来计算的发展而出现(x设在)。

f1.jpg
图1。多年来并行性的快照,展示了不同类型的体系结构机制如何利用各种形式的并行性。

图1,位级并行(BLP)指并行执行基本操作(算术等)。它在早期的计算机中很常见,后来在商品系统中通过更大的字大小进行了增强。指令级并行(ILP)是指逻辑顺序指令在流水线、超标标量和不断增加的猜测的情况下并发执行。线程级并行(TLP)是多处理器核心的使用,最初使用离散处理器,后来集成为片上核心。数据级并行(data -level parallelism, DLP)指通过数组和管道对多个数据操作数执行类似的操作,这些操作通过通用图形处理单元(gp - gpu)获得广泛成功。

在这个观点和在图1,我们断言另一个主要的并行级别正在出现:加速级并行(ALP)。我们定义高山工作负载组件并发地在多个加速器上执行的并行性。ALP的目标是同时解锁许多加速器,其方式类似于ILP同时使用多个功能单元的方式。ALP并没有取代其他并行级别,而是构建在它们的基础上,因为大多数加速器在内部使用一个或多个BLP、ILP、TLP和DLP。此外,就像ILP在堆栈的不同层次上被利用一样,从微架构层的超标量和乱序执行到编译器层的指令调度,ALP为新颖的硬件和软件设计和优化打开了许多自由度。它还为新的运行时资源管理提供了可能性,这类似于跨cpu和gpu的异构调度,但增加了跨大量硬件加速器实时调度任务的复杂性。

ALP今天出现了。用于移动、边缘和云计算的现代芯片组开始同时使用多个加速器。接下来,我们将介绍一个移动soc中ALP的案例研究,以了解ALP目前是如何使用的(尽管形式有些有限),然后为更广泛地利用ALP的未来工作奠定基础。

回到顶部

移动soc作为使用ALP的多个加速器的先兆

受极端能源效率需求的驱动,移动soc是ALP的早期采用者。对于四大厂商——苹果、高通、三星和华为——的soc来说,只有不到50%的芯片是专用于cpu的,就像这个观点第一页的图片所示。该领域主要致力于专业加速器,如数字信号处理器、图像信号处理器、GPU、神经处理单元和视频编码器/解码器,以及音频、网络、视频的I/O接口。

在智能手机soc中,常见的工作负载是并行地展示带有多个加速器的ALP,而不是独占使用。图2显示一个具有两条路径的4K、每秒60帧的视频捕获用例。一个路径指向显示器,将实时内容呈现给最终用户,另一个路径指向闪存存储,保存内容以供脱机查看。在这个例子中,数据以并行(两条路径)和流水线的方式遍历加速器,所有这些都是由cpu编排的(没有显示)。在其他用例中,如交互式多方视频会议应用程序,数据流和CPU编排可能更加动态和复杂。然而,我们希望加速器能够越来越多地处理“数据平面”的计算,而cpu则保留“控制平面”的任务。这样做将使固定电力预算的更丰富的计算成为可能,从智能手机到汽车再到云计算,这些计算都很有价值。

f2.jpg
图2。ALP在行动中的4K视频捕获用例在智能手机上。7

移动soc显然依赖于ALP实现低功耗和高效执行。然而,他们还没有充分利用ALP的潜力,我们认为这是弥补CPU数十年来提供的灵活性所必需的。例如,在上面的例子中,数据流和应用程序任务和加速器之间的绑定是固定的。ISP不能通过编程重新用于处理相机图像输入之外的任务。为此,我们相信我们需要更好的科学和工程来利用ALP。

回到顶部

使用ALP的多加速器系统科学

John Hennessy和David Patterson在他们2018年的图灵奖演讲中断言,我们正处于计算机架构的一个新的黄金时代。3.我们断言,Hennessy和Patterson提出的挑战应该推广到计算机科学和工程的一个新的黄金时代,在ALP中使用多个加速器是一个机会,因为加速器被集成到复杂的soc中,为研究开辟了新的前景。我们不知道所有的可能性,但我们在这里讨论一些想法,以种子研究方向。

一个关键的挑战是开发抽象和实现,使程序员能够针对整个SoC和实现者整体设计其软件和硬件。我们从单指令多线程(SIMT)模型中获得灵感,该模型有效地抽象了GPU硬件丰富的并行和调度机制。SIMT使gpu能够从图形工作负载扩展到通用的DLP使用,并使抽象下的软硬件实现得到改进。

随着ALP的出现,我们期待必须发明新的范式来灵活和有效地开发它的潜力。今天的情况并非如此。与类似于simt的整体视图相比,今天的soc只在有限的利基中利用ALP,每个加速器都作为一个“竖井”,具有自己的编程模型,通常有自己的(特定于领域的)语言、运行时、软件开发工具包(SDK)和驱动程序接口。虽然在有限的情况下(例如,对于10-20个电话用例)使用没有抽象的多个加速器可以工作,但它不太可能使ALP普遍有用。我们如何超越不同语言、sdk等的每一加速器软件孤岛?调度/排序加速器或分区/虚拟化加速器(可能是流数据流)的抽象和机制是什么?与操作系统硬件抽象层之上/之下相比,什么属于运行时?

由于加速器和ALP的异构特性,甚至比以前的并行级别更可能需要软硬件协同设计。此外,这也可能激励计算机辅助设计工具链创新,以促进异质设计空间的快速探索。ALP的实现应该致力于实现全球最优的软硬件系统,而目前的许多工作主要集中在使每个加速器“本地”最优。虽然好的加速器是必不可少的,但一组局部最优加速器不太可能是全局最优的。因此,我们需要更好的模型4以及从加速器、内存和互连组件整体设计soc的方法,更像是如何从alu、注册文件和总线构建处理器核心。两种情况下的分析都集中在并行操作上:对于soc的ALP和对于核心的ILP。

更详细地说,有许多ALP问题需要更好的答案和更好的方法来系统地确定答案。例如,从计算的角度来看,我们缺乏关于如何选择、调整大小、提高效率,有时还会合并类似加速器的基础科学。类似地,从内存的角度来看,芯片上的内存什么时候应该是加速器私有的还是共享的?什么时候这个内存应该是软件可见的暂存板还是软件透明的缓存?从集成的角度来看,我们如何在加速器之间最好地通信数据(共享内存或队列)和控制(轮询、中断等)?从操作的角度来看,一旦部署了SoC,我们是否可以通过(非凸)优化来调度异构并行资源,还是必须使用启发式方法?总之,需要一种更系统化的方法来设计许多加速器作为模块,以创建在性能和成本目标上卓越的整体ALP系统。

回到顶部

结论

这个观点认为,在ALP中使用多个加速器有很大的希望来提高未来的计算效率,我们还不知道如何做得更好,而我们可以一起工作来实现这一点。我们已经确定了什么机会是有的,但留给我们的读者吧如何最好解决这个问题。

回到顶部

参考文献

1.Borkar, S.和Chien, A.A.微处理器的未来。Commun。ACM 54, 5(2011年5月),67-77;doi: 10.1145/1941487.1941507

2.Dally, w.j., Turakhia, Y.和Han, S.领域特定的硬件加速器。Commun。ACM 63, 7(2020年7月),48-57;doi: 10.1145 / 3361682

3.Hennessy, J.L.和Patterson, D.A.计算机架构的新黄金时代。Commun。ACM 62, 2(2019年2月),48-60;doi: 10.1145 / 3282307

4.Hill, M.D.和Reddi, V.J. Gables:移动soc的屋顶线模型。在高性能计算机体系结构学报,2019th国际研讨会。2019.

5.Jouppi, N.P.等人。深度神经网络领域特定的架构。Commun。ACM 61, 9(2018年9月),50-59;10.1145 / 3154484

6.Nowatzki, T., Gangadhar, V.和Sankaralingam, K.异构冯诺伊曼/数据流微处理器。Commun。ACM 62, 6(2019年6月),83-91;10.1145 / 3323923

7.Reddi, v.j., Yoon, H.和Knies, A. 20亿个设备,而且还在增加。IEEE微(Jan.-Feb。2018), 6-21。

回到顶部

作者

马克·d·希尔markhill@cs.wisc.edu)是微软的硬件合作架构师,也是美国威斯康辛大学的荣誉教授。

Vijay Janapa Reddivj@eecs.harvard.edu)是美国马萨诸塞州剑桥哈佛大学John A. Paulson工程与应用科学学院(SEAS)的副教授。

回到顶部

脚注

Mark D. Hill在加入微软之前对这项工作有贡献。


版权归作者所有。
向所有者/作者请求(重新)发布许可

数字图书馆是由计算机协会出版的。版权所有©2021 ACM, Inc。


没有发现记录

Baidu
map