2020年7月22日第18卷,第3期奥斯卡·门瑟,丹尼斯·艾利森,埃拉德·布拉特,马克·卡明斯,迈克尔·J·弗林,杰里·哈里斯,卡尔·休伊特,奎恩·雅各布森,梅萨姆·拉瓦萨尼,莫森·莫扎米,哈尔·默里,马苏德·尼克拉维什,安德烈亚斯·诺瓦茨克,马克·尚德和沙赫拉姆·希拉兹。
本文是2019年9月在斯坦福大学(Stanford University)作者之间长达三个小时的讨论的摘要。它是由Zilog、Altera、Xilinx、Achronix、Intel、IBM、Stanford、MIT、Berkeley、威斯康星大学、The Technion、FairChild、Bell Labs、Bigstream、Google、Digital(DEC)、SUN、Nokia、SRI、Hitachi、Silicom、Maxeler Technologies、VMware、施乐Parc、思科和许多其他公司的联合经验编写的。这些组织不对内容负责,但可能在某种程度上启发了作者,让他们在上面描述的FPGA空间中实现了丰富多彩的骑行。
FPGA(现场可编程门阵列)自问世以来一直触动着ASIC社区的神经。20世纪80年代中期,罗斯·弗里曼(Ross Freeman)和他的同事从Zilog购买了这项技术,并创立了Xilinx,目标是ASIC仿真和教育市场。(Zilog是从埃克森美孚出来的,因为在20世纪70年代,人们已经担心石油会在30年后耗尽,今天仍然是这样)。与此同时,Altera也是以类似的技术为核心创建的。
FPGA是由电路编程的芯片。据说要模仿那个电路。此仿真运行速度比在ASIC中实现时实际电路的运行速度慢-它的时钟频率较低,耗电量较大,但可以每几百毫秒重新编程一次。
制造ASIC的人开始使用FPGA来模拟他们的ASIC,然后将其封装到掩模上,并将其送到工厂进行制造。英特尔、AMD和许多其他公司在制造芯片之前使用FPGA来仿真它们的芯片。
电信业一直是FPGA的大量用户。电信标准不断变化,制造电信设备很难,因此最先交付电信解决方案的公司往往会抢占最大的市场份额。由于ASIC的制作需要很长时间,所以FPGA提供了一条捷径。第一代电信设备开始采用FPGA,引发了FPGA价格冲突。虽然FPGA的价格对ASIC仿真市场并不重要,但电信芯片的价格很重要。许多年前,AT&;T和朗讯制造了自己的FPGA,称为Orcas(优化的可重构单元阵列),但它们在硅片的速度或大小方面无法与Xilinx或Altera竞争。
今天,华为是FPGA的最大客户。有可能最近美国和中国之间的紧张局势始于美国的FPGA让华为在交付5G电信设备方面拥有优势,而世界各地的任何其他供应商都没有准备好投入使用的两年前。
早些时候,FPGA被用于SDR(软件定义无线电),建造用于同时在许多不同标准上通信的无线电,实质上是拥有一部讲多种语言的电话。这一次,FPGA触动了人们的巨大神经。特别提款权技术的实施方式存在分歧。商业供应商开发了高性价比的解决方案,今天地球上的每个基站都有SDR技术。另一方面,在国防领域,特别提款权是由大型国防承包商建造的,这些承包商需要保护有利可图的传统产品线。其结果是,基于FPGA的无线电产品的价格如此之高,以至于美国部分国防市场对其使用产生了持续的过敏反应。
接下来,FPGA试图在DSP(数字信号处理器)和嵌入式市场实现增长。角落里有少量硬微处理器的现场可编程门阵列(FPGA)开始出现。销售这些新的FPGA的压力如此之大,以至于如果客户拒绝新的芯片系列,他们就会被列入黑名单,有时甚至会拒绝服务几个月。发展FPGA市场的压力过去是巨大的,现在仍然是巨大的,考虑到FPGA产品由于巨大的表面积和知识产权层次而不可能降低价格,FPGA公司征服新市场的失败程度也是巨大的。
在过去的几年里,FPGA试图在HPC(高性能计算)和数据中心市场实现增长。2017年,微软宣布在数据中心使用Altera FPGA,英特尔收购了Altera。2018年,Xilinx宣布了其数据中心优先战略,这位Xilinx首席执行官在一群分析师面前宣布,Xilinx不再是一家FPGA公司。这可能是一种轻微的戏剧化,但从历史上看是有相关性的。
在FPGA的HPC和数据中心使用中,目前的主要障碍是布局和布线-运行将电路映射到FPGA元件的专有FPGA供应商软件所需的时间。在大型FPGA和快速CPU服务器上,放置和布线需要长达三天的时间,很多时候,即使在三天之后,软件也无法找到映射。
然而,在石油和天然气的实施中,大约在2007年,一个利基市场打开了。传统的计算机模拟在地球上钻孔寻找石油所花费的时间比钻探地点的实际建造和钻探本身都要长。FPGA加速器的使用极大地改变了这种颠倒的时序。在一家石油公司的数据中心计算地震图像的第一批FPGA是由Maxeler Technologies建造的,并交付给了雪佛龙(Chevron)。3个。
FPGA在石油和天然气中的使用扩大了几年,直到来自ASIC行业的压力导致标准CPU技术的回归。今天,石油和天然气的预测和模拟仍然很重要,地震成像主要是在CPU和GPU上进行的,但FPGA的机会仍然存在。我们被提醒,今天的新东西是明天的遗产,当然,今天的新东西是人工智能和对数据的关注。
尽管如此,FPGA仍然是进入市场的捷径,是获得竞争优势的简单方式,也是许多任务关键型场合不可缺少的技术--尽管与ASIC相比,它们的单芯片价格较高。然而,在HPC和数据中心,与在CPU或GPU上运行软件相比,FPGA的运营成本要低得多。需要的FPGA更少,需要的散热比CPU和GPU都少得多。FPGA有利于较小的数据中心,触动了运营商的神经,他们担心他们的数据中心可能会缩小。
使用FPGA的另一种方式是补充ASIC。ASIC旨在保留固定功能,同时添加FPGA,以便为产品在最后一刻进行更改或适应不同市场提供一定的灵活性。
现代FPGA集成了越来越多的硬功能,变得越来越像ASIC-而ASIC有时会在其设计中添加一些FPGA结构,以进行调试、测试、现场修复,并根据需要灵活地添加少量功能。
尽管如此,ASIC团队始终反对FPGA的概念。ASIC设计者会问,你想要什么功能?如果答案是“我还不知道”,他们会不耐烦的。
自动驾驶汽车行业就是这样一个新的战场。由于算法在不断变化,而当汽车在赛场上时,法律可能会改变,需要司机更新,因此解决方案需要灵活。FPGA的时钟频率较低,因此散热器较小,因此物理尺寸小于CPU和GPU。更低的功耗和更小的尺寸使FPGA成为显而易见的选择。然而,GPU更容易编程,并且不需要三天的放置和布线。
此外,关键是能够在车内和云中运行相同的代码(主要用于模拟和测试),因此FPGA必须在云中可用,然后才能在车中使用。由于这些原因,许多开发人员更喜欢GPU。
FPGA正在发展。现代接口正试图使FPGA更容易编程、更模块化,并更好地与其他技术协作。FPGA支持AXI(高级可扩展接口)总线,这使得它们更容易编程,但也带来了极大的效率低下,使FPGA的性能下降,最终竞争力大大降低。学术研究,例如Eric Chung关于FPGA的动态网络的论文,1帮助解决了布线问题,但是这样的先进思想还没有被业界所接受。
FPGA是如何连接的?对于具有大量数据流的HPC工作负载,您可以使用PCI Express并部署通信隐藏技术。但是,小型工作负载(如NFV(网络功能虚拟化))如何处理,同时为大量用户提供服务。一般而言,对于NFV和虚拟机加速,FPGA必须直接连接到CPU,可能会使用缓存一致性作为通信机制,正如VMware最近调查的那样。当然,一个关键特性是能够在不使CPU崩溃的情况下使FPGA崩溃,反之亦然。Hyperscalar技术公司正在重新发现IBM大型机时代的需求,推动标准化平台变得越来越复杂。
群众也有机会。在提供FPGA平台时,没有ASIC开发预算且不了解最新硅制造挑战和解决方案的组织可以开发电路,并在其产品中建立竞争优势,例如,随着数据的流动,在物联网(IoT)网络边缘、靠近传感器、显示器或仅在线路上进行计算的新兴机会。
与此同时,FPGA公司正在垂直向上推进,进入CPU插槽,英特尔在这一领域占据主导地位,例如,包括针对NFV的特殊指令。进入数据中心的新CPU和FPGA的关键障碍不仅是速度和成本,还包括所有可能的I/O设备的软件和驱动程序的可用性。
让FPGA在数据中心工作的关键是让它们更容易使用-例如,使用自动工具来推动FPGA的使用,而不会出现放置和布线困难。微软率先在超标量数据中心使用FPGA加速Bing、NFV和AI算法。微软还构建了抽象、特定于域的语言和灵活的硬件基础设施。在商业上,FPGA的主要问题是进入市场的策略。
制造新的芯片,然后开始考虑软件已经太晚了。您如何通过调整硬件来为软件提供服务,从而从现有软件中提取价值?这也带来了重新思考FPGA架构的机会。然而,一句警告:硅业正在吞噬现金。建造ASIC是一场扑克游戏,多年来最低赌注不断上升。这是一场赢家通吃的游戏,像FPGA这样的任何威胁都会在比赛早期被消除。
软件设计师总是会说,如果能用软件完成,就会用软件完成;而ASIC设计师会说,如果能用ASIC完成,就会用ASIC完成。最有趣的是,如果能用软件完成,你就不必和像FPGA一样思考的人打交道了。与制造ASIC所需的军队和世界上软件程序员的人口相比,FPGA只有一个由许多有时是古怪的程序员组成的很小的社区。FPGA公司规模很小。FPGA社区很小。
英特尔正在推动FPGA的灵活性。它是遵循构建硬件来运行现有软件原则的最成功的公司。
FPGA可以比CPU和GPU更快,但工业界和投资界的惨痛教训是,在计算机存在的大部分时间里,速度并不重要,实时性也不重要。因此,仅仅为了速度而购买电脑的情况并不多见。这种情况时有发生,但它更多的是一个随机事件,而不是一个建立业务的市场。此外,FPGA没有标准的、开放源码的、令人愉快的编程模型,因此,没有标准的市场提供可以在所有FPGA芯片上运行或可以轻松交叉编译的FPGA程序。Maxeler Technologies有一个高水平的解决方案来提供这样的接口,但行业的广泛采用需要信任。要从早期采用者转变为每个人都受益,信任需要数据中心领域老牌供应商的协调和支持。
现实世界中的应用人们会说,我不在乎它是什么,只要给我一种做我想做的事情的方法就行了。FPGA有哪些可能的应用领域还没有得到广泛的探索?对于实时计算,有制造业。对于无人机上的计算机视觉,这是FPGA的重量和功率优势。在卫星上进行硬件升级是非常昂贵的,所以FPGA提供了长期的灵活性,这可能是至关重要的。FPGA需要找到一种能引起共鸣的产品,而且它们需要易于编程。这不仅仅是硬件或软件的问题,也是生态系统的问题。这是一个完整的解决方案。
超越当前市场限制的一种方式是实时编译和自动生成FPGA程序。这说起来容易做起来难,但随着人工智能撕裂应用空间,机会正在增加。如今,一切都是用人工智能完成的;即使是石油和天然气的地震成像等传统算法也在融入人工智能。需要一种科学和工程解决方案来处理AI块。FPGA可能是一个很好的起点,可能最初是连接AI模块,然后将它们整合到FPGA结构中,如Xilinx的下一代芯片-AI结构、CPU、100G接口和FPGA单元都在同一个7 nm芯片中。
从另一个角度来看,随着人工智能芯片生产和消耗大量数据,将需要FPGA来喂养这头野兽,并迅速转移输出。随着所有用于AI处理的新ASIC的问世,FPGA可以为AI芯片公司提供差异化。
10年前或25年前有没有可能预测到以下发展?2虽然世界在变化,但预测似乎保持不变。
1.将会有成功的CPU+FPGA服务器芯片,或可直接访问CPU的高速缓存层次结构的FPGA。有些人说是,有些人说不是。
2.SoC(片上系统)FPGA芯片将增长和扩展,带动医疗、下一代电信和汽车等行业。
3.开发人员将使用FPGA做令人惊叹的事情,让世界变得更美好,但必须隐瞒内部有FPGA的事实。
4.FPGA的名称将保持不变,芯片将被称为FPGA,但内部的一切都将完全不同。
5.由于我们为了使FPGA更容易编程而放弃了(数据流)优化,FPGA的性能将会降低,因此它们不再与CPU竞争,CPU总是更容易编程。
7.布局布线软件以及FPGA上的完整软件堆栈将是开源的。Yosys和Lattice FPGA已经有了初步的努力。
8.所有半导体架构将组合成TPU、GPU、CPU、ASIC和FPGA组合的单个芯片。有些可能是两者的整体组合。其他的将是每个部分的组合。
9.将更多的芯片集中在有限的应用空间,更少的芯片集中在通用芯片上。在某种程度上,一切都在成为SoC。
本文解决了多少冲突,又产生了多少新冲突?从这个意义上说,冲突是对现有做事方式的挑战。这样一种现有的做事方式可能会对人们的思维方式产生影响,因此也会对他们的行为方式产生影响。但也许更重要的是,这将对我们开发人员如何谋生产生影响。
1.钟,E.2011。CORAM:一种用于基于FPGA的计算的结构内内存体系结构。卡内基梅隆大学博士论文。
3.Nemeth,T.,Stefani,J.,Liu,W.,Dimond,R.,Pell,O.,The Ergas,R.2008。声波方程的一个实现。在第78届勘探地球物理学家学会会议上发表,拉斯维加斯。
面向大众的FPGA编程如果FPGA要成为主流计算的一部分,就必须提高它们的可编程性。大卫·F·培根,罗德里克·拉巴,苏尼尔·舒克拉https://queue.acm.org/detail.cfm?id=2443836。
数据中心中的https://queue.acm.org/detail.cfm?id=3231573专家精心策划的最佳CS研究指南Gustavo Alonso FPGA。
可重构的未来生产更便宜、更紧凑芯片的能力是一把双刃剑。马克·霍洛维茨https://queue.acm.org/detail.cfm?id=1388771。
最初发表在队列VOL中。18,编号3-在ACM数字图书馆查看此项目。
相关:David Chisnall-There‘s没有通用处理器这种东西,相信这样的设备是有害的
Hans-J Boehm,Sarita V.Adve-你不知道杰克关于共享变量或内存模型,数据竞赛是邪恶的。
萨特南·辛格-没有处理器的计算异构系统允许我们将编程目标对准适当的环境。