acm-header
登录

ACM通信

研究突出了

技术角度:FPGA计算加速首先是关于能源效率


本文介绍了现场可编程门阵列(fpga)在微软必应数据中心的研究部署。fpga直接在数字逻辑级别上实现了更高效的搜索处理。这项开创性的工作首次成功地大规模展示了fpga作为云计算中有效的大规模一流组件的想法。在这一里程碑式的努力之后,微软在其新的数据中心服务器上为一系列云服务启动了FPGA加速器的全面生产部署。

在其30年的历史中,FPGA技术主要是作为特定应用集成电路(asic)的替代品,在计算领域只有小众应用。今天,除了微软的活动,我们还发现英特尔和IBM将fpga作为可编程计算基板添加到他们的产品线中。计算行业目前拥抱fpga的根源,与过去10年推动多核微处理器转型的“电源墙”(Power Wall)斗争是一样的。

在之前的几十年里,单线程微处理器的计算性能随着超大集成电路(VLSI)规模的增加而定期翻倍,利用了数量更多、速度更快的晶体管。然而,每一代速度更快的微处理器都需要更大的功率。电力墙不是为了提供电力,而是为了足够快地去除产生的热量。对于冷却装置的成本、重量、尺寸和噪声的上限,从微处理器模具中提取热量的速度是有限制的。直到20世纪90年代,微处理器一直远低于市场设定的经济冷却极限。尽管在接下来的几年里,从软件到材料科学都做出了最一致的努力来控制功率的增长,单线程微处理器在上个十年中期已经耗尽了冷却空间来维持它们的性能改进。

在当前电力受限的设计体制下,无论是由微处理器的冷却和封装还是数据中心的空气处理能力决定的,再加上现在电池供电设备的实际供应端考虑,获得更多性能(“每秒操作”)的问题需要一个解决方案,以某种方式做到这一点,同时消耗更少的“每次操作的能量”。

并行提供了第一个解决方案,在每一步中使用更少的能量跑得更快。根据经验,增加顺序任务的性能需要按比例增加更多的功率。因此,当并行可用时,可以使用并行执行来降低功耗,而不是加速。在一个说明性的例子中,给定具有吞吐量性能的设计A一个在权力一个以及具有吞吐量的性能较低的设计BB=吞吐量一个/ N和权力B<权力一个/N时,我们可以使用N份B在更低的功率下每秒完成与A相同数量的任务,我们可以使用>份B在相同功率下超过A的吞吐量一个.多核微处理器和gpgpu都是这一原理的实践者。FPGA计算可以将这一点发挥到极致,使用大量独立的慢处理元素提供高整体性能,每次操作都非常节能。当然,这种提高能源效率的方法只适用于感兴趣的计算任务能够高度并行化的情况。

相对于微处理器,FPGA计算有另一个能源效率的来源。微处理器的大部分能量都消耗在向程序员呈现简化的von Neumann抽象和确保在广泛的程序行为上的良好性能的开销上。FPGA计算避免了这些抽象开销,同时获得了不受限制的优化自由,特别是能够利用任务中所有形式和粒度的并行性。作为回报,FPGA计算给应用程序开发人员带来了很大的负担,他们必须以较低的专用性进行设计,以满足功能和性能目标。如何在保持FPGA的效率优势的同时简化应用程序开发,是一个重要而富有挑战性的问题。

将计算映射到asic具有与fpga相同的好处。事实上,由于FPGA的逻辑基板可重编程的开销,ASIC实现可以明显比FPGA实现更节能。但可重编程性对计算非常重要。正如下面这篇文章中所讨论的,除了在多年所有权中重新利用硬件投资的效用外,一个特别的加速任务可能会发展得太快,无法投入到ASIC的开发时间和成本规模中。

最后,应该注意的是,FPGA计算并不是所有场景或所有权衡的答案。最终,追求效率就是为工作使用正确的工具。

在对更高性能和更高能源效率的矛盾需求的驱动下,以多核微处理器形式的并行计算似乎在过去十年中迅速成为商业主流。随着Catapult的努力,也许我们将再次看到追求更高性能和能源效率的同等变革的开始。当我们看到当前在整个计算行业中展开的令人兴奋的发展时,我们也应该认识到几十年之前的工作导致了这个关键时刻。

回到顶部

作者

James c .锄jhoe@cmu.edu)是宾夕法尼亚州匹兹堡卡耐基梅隆大学电气和计算机工程教授。

回到顶部

脚注

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


版权归作者所有。

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


没有发现记录

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