分享

并行计算|在DARPA和NSF的支持下,MIT研发出用较少指令就可实现多处理核并行处理的芯片

 大国重器元器件 2020-09-11

6月21日的公号文章写到美国实现了首个由1000个可并行工作的处理核组成的微处理器芯片(详情移步于此),后台有朋友留言说软件开发难度大,降低实用性。这不,美国麻省理工学院(MIT)就提出了自己的解决方案。

概述

在美国国防先期研究计划局(DARPA)“半导体先进技术研发网络”(STARnet)项目下设的未来架构研究中心(C-FAR)和国家科学基金(NSF)的资金支持下,MIT提出一种新的芯片设计架构,命名为蜂群(Swarm),不仅可使并行处理更为有效,代码量也大为减少。

背景需求

2004年起,微处理器运行速度的上限一直停留在4GHz,转为通过增加微处理器的核数来提升性能。然而核数的增加并不能带来性能的等倍增加。计算机的大多数任务都是顺序执行,要实现并行处理,通常通过拆分实现在多块处理器核的分布,但由于需要明确存在数据共享关系的不同任务之间的时序性,导致编程复杂性的显著增加。

技术原理

MIT设计的新硬件架构本质上是移除了各种定时限制,使得并行编程变得非常简单。当编程人员定义了一个功能,只需在其中简单地增加几行代码,就可以将该功能加载到“蜂群”的任务序列中,编程难度大幅降低。

研究人员通过使用时间标记使得处理器核之间的同步变得容易实现。如每一个数据都标记上最后一个任务对其进行更新的时间,这样时间标记在后的任务就知道能够读取哪个数据,而无需纠结确定谁正在使用它。

最后,所有处理器核间或报告其仍在执行的最高优先级任务的时间标记。如果一个处理器核完成的任务标记有最早的时间,即早于其后微处理器所报告的时间标记,该处理结果就可以写入其存储器,而不会出现冲突。


实施步骤

1首先确定有关联的区域,因为处理无关区域带来的结果必然也是无用的。

2.按优先级标记,“蜂群”芯片区别于其他多核微处理器芯片的是,有额外的电路来处理这种类型的优先次序,可根据任务的优先级进行时间标记,然后以并行方式从最高优先级开始工作。

3.较高优先级任务可能带来自身的较低优先级的任务,但“蜂群”芯片会跟踪并自动将新的任务放置到任务序列中。

4.偶尔产生冲突时,如一个优先级较低的任务可能向某一位置的存储器写入数据,而在此之后一个较高优先级的任务在同样的地方进行了读取,此时,“蜂群”芯片会自动终止低优先级任务的结果,以此保持不同核读取同样数据的同步性。


芯片设计

“蜂群”芯片使用额外的电路来存储和管理它的任务序列,有一个记录所有处理器核正在处理着的数据的存储器地址的电路,以及布隆(Bloom)滤波器。

布隆滤波器是能够帮助“蜂群”芯片识别存储器读取冲突的几个电路之一。该滤波器能够将数据填满到一个固定分配的空间中,并对其内容回答是/否。如果过多的地址加载到了滤波器中,他将偶然产生“伪是,表示正在存储信息,但永远不会产生伪否

图 MIT 64核“蜂群”芯片结构示意图

仿真结果

MIT研究人员将6种常见算法的蜂群版本与现有最好并行处理算法版本进行了对比,这些并行处理算法版本都是由经验丰富的软件研发人员独立编写。“蜂群”版本的效率是其他并行处理算法版本的318倍,但代码量最多只是1/10,甚至更少。而且“蜂群”版本在一个科学家至今未能实现并行化的项目上竟达到了75倍的加速。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多