acm-header
登录

ACM通信

研究突出了

技术视角:回到边缘


“格里德利,准备好了就开火。”这是杜威准将在1898年马尼拉湾战役中发出的著名命令。他可能没有意识到这一点,但他阐明了数据流计算的基本原理,即只要输入可用,就可以执行指令。长期以来,数据流一直吸引着计算机架构师,因为它可能是计算电路最“自然”的利用并行性能的方式。

当一个来访的外星人被告知我们如何在程序中处理并行时,他可能会被原谅。数学算法具有丰富的并行性;唯一的限制是数据依赖性(当操作符的输入可用时,可以对其进行计算)。我们用主流编程语言(C/ c++、Python等)编写代码,这些语言具有完全顺序的语义(零并行性)来理解对内存的读写。见图1在美国,编译器努力重新发现内部cdfg(控制和数据流图)中丢失的一些并行性,然后生成完全顺序的机器代码。当我们在现代的冯·诺依曼CPU上执行这一操作时,大问题、无序的电路会再次付出巨大的努力(消耗能量)来重新发现并行性。

f1.jpg
图1所示。编码、编译和执行期间的并行性。

20世纪70年代到90年代初,人们多次尝试避免这些“不必要的”序列化图2).数据流语言(大部分是纯函数)和机器代码(数据流图)从数学上保留了并行性。与程序计数器不同,每条指令直接指定接收其输出的后续指令。数据流cpu直接执行这个图形机器码。现在这种计算模型被缩写为EDGE,用于显式数据流图执行。

f2.jpg
图2。利用并行性的替代策略。

那么,为什么我们今天不都使用EDGE机器呢?一个简短的答案是,他们从来没有完全掌握空间或时间的局部性,在固有的顺序代码区域是低于标准的。相比之下,现代的冯·诺伊曼cpu在这方面做得很好,可以在快速昂贵的电路(寄存器、电线)、介质(缓存)和缓慢廉价的电路(dram)之间管理高效的数据流。

Tony Nowatzki、Vinay Gangadhar和Karthikeyan Sankaralingam在下面的论文中描述了一种利用这两种模型的创新方法。从CDFG,它们的编译器生成传统的顺序机器码和数据图,每一个都在适当的电路上执行(蓝色方块在图2),设有有效的交接机制。作者描述了对现有代码验证这种方法可行性的广泛研究。

EDGE计算正在经历复兴,许多研究人员都在追求相关的想法。有迹象表明,大型行业参与者也在考虑朝这个方向发展。一个

回到顶部

作者

Rishiyur s Nikhil他是Bluespec, Inc.的首席技术官,这是一家位于美国麻州弗雷明汉的半导体工具设计公司。

回到顶部

脚注

a.摩根,T.P.英特尔的Exascale数据流引擎放弃x86和冯·诺伊曼。下一个平台2018年8月30日。

要查看随附的论文,请访问doi.acm.org/10.1145/3323923


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

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


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map