导读:本文是作者于2019年9月在斯坦福大学进行的三个小时讨论的摘要。这篇文章结合了Zilog、Altera、Xilinx、Achronix、Intel、IBM、斯坦福、麻省理工、伯克利大学、威斯康星大学、Technion、Fairchild、贝尔实验室、Bigstream、谷歌、DEC、SUN、诺基亚、SRI、日立、Silicom、Maxeler技术、VMware、施乐PARC、思科等组织在FPGA领域的经验。这些组织不负责内容,但可能在某种程度启发了作者们的兴趣,以使他们在FPGA领域经历了丰富多彩的旅程。
FPGA(现场可编程门阵列)自诞生以来就一直在冲击着专用集成电路(ASIC,Application Specific Integrated Circuit)芯片界的神经。在20世纪80年代中期,RossFreeman和他的同事从Zilog手中购买了这项技术,并着手创办了针对ASIC仿真和教育市场的Xilinx。(Zilog出自埃克森美孚石油公司,因为在20世纪70年代,人们已经开始担心石油会在30年后枯竭,这一点在今天仍然适用)。同时,Altera也以类似的技术为核心成立。
FPGA是由电路编程的芯片,支持“仿真”该电路。这种仿真的运行速度比使用ASIC实现的实际电路运行速度慢--它的时钟频率更慢,使用更多的功率,但它可以每隔几百毫秒重新编程一次。
制作ASIC的人们一开始先使用FPGA来仿真ASIC,然后再将它们进行掩码处理并批量制造。英特尔、AMD和许多其他公司在制造芯片之前都会使用FPGA来仿真芯片。
01
触动电信业的神经
电信行业一直是FPGA的主要用户。电信标准不断变化,建造电信设备非常困难,因此首先提供电信解决方案的公司往往会占领最大的市场份额。由于ASIC需要很长时间才能完成,FPGA提供了一个捷径。电信设备的最初版本一般采用FPGA,但FPGA高昂的价格引发了冲突。尽管FPGA的价格对ASIC仿真市场无关紧要,但对电信行业而言,芯片的价格却很重要。许多年前,AT&T和朗讯制造了自己的FPGA,称为ORCA(优化的可重配置单元阵列),但就硅片的速度或尺寸而言,它们与Xilinx或Altera相比不具有竞争力。
如今,华为已成为FPGA的最大客户。华为两年前即提供了世界上最早的5G电信设备解决方案,相较于其他供应商处于明显优势,但中美之间最近的紧张关系很可能会导致产于美国的FPGA影响华为提供5G电信设备。
02
FPGA价格触及神经
早期,FPGA被用于SDR(软件定义的无线电)——在同一时间建立多个不同标准的无线电通信,本质上是一部讲多种语言的单一电话。这一次,FPGA挑动了一个巨大的神经。
SDR技术的实施方式存在分歧。商业供应商开发了经济高效的解决方案,如今地球上的每个基站都有SDR技术。另一方面,在国防界,SDR是由大型国防承包商建造的,他们用有利可图的传统产品线来建造。其结果是基于FPGA的无线电产品价格非常高,以至于美国部分国防市场对使用FPGA产生了持续的过敏反应。
接下来,FPGA试图在DSP(数字信号处理器)和嵌入式市场中发展。在角落里有一些微处理器的FPGA开始出现。销售这些新型FPGA的压力太大,以至于如果客户拒绝新的芯片系列,它们将被列入黑名单,有时甚至会拒绝提供服务好几个月。鉴于FPGA产品具有巨大的覆盖率和知识产权层而无法降低其价格,因此,发展FPGA市场的压力一直是巨大的,FPGA公司征服新市场失败的规模也是如此。
03
触动HPC和数据中心的神经
在过去的几年里,FPGA一直试图在HPC(高性能计算)和数据中心市场发展。2017年,微软宣布在数据中心使用Altera FPGA,而英特尔则收购了Altera。2018年Xilinx公司宣布其“数据中心优先”战略,Xilinx首席执行官在众多分析师面前宣布Xilinx不再是一家FPGA公司了。这可能是一种轻微的戏剧化表现,但从历史上看是有关联的。
在高性能计算机和数据中心使用FPGA时,目前的主要障碍是布局和布线——运行专有FPGA供应商软件将电路映射到FPGA元件所花费的时间,在大型FPGA和高速CPU服务器上,布局和布线需要长达三天,而且很多时候即使在使用三天后,很多软件仍无法解决映射问题。
04
触动石油和天然气的神经
在石油和天然气实施领域中,2007年左右出现了一个利基市场。传统计算机模拟地球上的钻孔以发现石油所花费的时间比实际建造的钻井场地和钻井本身还要长,FPGA加速器的使用极大地改变了这种颠倒时序。石油公司数据中心中的第一个FPGA,用于计算地震图像,由MaxelerTechnologies制造,并交付给Chevron。
几年来,FPGA在石油和天然气领域的应用不断扩大,直到来自ASIC行业的压力导致CPU技术回归标准化。如今,石油和天然气中的预测和模拟仍然很重要,地震成像大多在CPU和GPU上完成,但FPGA的机会仍然存在。我们需要注意的是,“今天的新事物是明天的遗产”,当然,如今的新事物是对AI和数据的关注。
尽管如此,FPGA仍然是一种快速进入市场的方式,是获得竞争优势的简单方法以及在许多关键任务情况下必不可少的技术——尽管与ASIC相比,芯片价格昂贵。然而,在与CPU或GPU上运行软件相比,在HPC和数据中心中,FPGA的运营成本大大降低。与CPU和GPU相比,所需的FPGA更少,所需的冷却也更少。FPGA使得数据中心规模更小,这触及了运营商担心数据中心可能会缩小的神经。
05
ASIC与FPGA
使用FPGA的另一种方法是增强ASIC。构建ASIC的目的是保持固定功能,同时添加FPGA,为产品的最新更改或适应不同市场提供一定的灵活性。
现代FPGA集成了越来越多的硬功能,变得越来越像ASIC,而ASIC有时会在其设计中添加一些FPGA结构,用于调试、测试、现场修复以及根据需要灵活地添加少量功能。
尽管如此,ASIC团队一直在与FPGA概念抗争。ASIC设计师问:“您想要什么功能?”如果回答是“我还不知道”,他们会很不耐烦。
无人驾驶汽车行业就是这样一个新的战场。由于算法不断变化,并且法律法规可能会在汽车进入市场时发生变化,需要驾驶员更新,因此解决方案需要灵活。FPGA的时钟频率较低,散热片较小,因此物理尺寸比CPU和GPU小。更低的功耗和更小的尺寸使FPGA成为显而易见的选择。尽管如此,GPU易于编程,并且不需要三天时间来实现布局和路线,因此对FPGA形成了一定挑战。
此外,至关重要的是能够在汽车和云中运行相同的代码(主要用于模拟和测试),因此FPGA必须先在云中使用,然后才能在汽车中使用。由于这些原因,许多开发人员更喜欢GPU。
06
FPGA的发展
FPGA在不断发展。现代接口正试图使FPGA更易于编程,更加模块化,并与其它技术更加协作。FPGA支持AXI(高级可扩展接口)总线,这使它们更易于编程,但也带来了极大的效率低下,使得FPGA的性能降低,最终竞争力大大降低。学术工作方面,例如Eric Chung的关于“FPGA动态网络”的论文有助于解决路由问题,但这种先进的思想尚未被业界所接受。
FPGA如何实现连接?对于具有大量数据流的HPC工作负载,可以使用PCI Express并部署通信隐藏技术。但是,像NFV(网络功能虚拟化)这样的小型工作负载如何能同时为大量用户提供服务呢。通常,对于NFV和虚拟机加速而言,FPGA必须直接连接到CPU,并可能使用缓存一致性作为一种通信机制,这是VMware最近研究的结果。当然,关键的功能是具备FPGA崩溃时CPU不崩溃的能力,反之亦然。超标量技术公司正在重新发现IBM大型机的时代需求,从而将越来越多的复杂性带入标准化平台。
其它组织也有机会。在提供FPGA平台时,组织无需进行ASIC开发的预算,也无需了解最新的硅制造挑战和解决方案,便可以开发电路,并在其产品中建立竞争优势,例如物联网网络边缘的新兴计算机会,靠近传感器、显示器、或在数据流过时直接在线计算。
同时,FPGA公司正在垂直向上推堆栈,并将其推入CPU插槽,英特尔在该市场上占据主导地位,其中包括针对NFV的特殊指令。数据中心中新CPU和FPGA进入的主要障碍不仅在于速度和成本,还在于所有可能的I/O设备的软件和驱动程序的可用性。
使FPGA在数据中心中工作的关键是使其易于使用——例如,使用自动工具来驱动FPGA的使用而不会产生布局和布线困难。微软率先在超标量数据中心中使用FPGA来加速Bing、NFV和AI算法。Microsoft还构建了抽象,特定于领域的语言和灵活的硬件基础设施。在商业上,FPGA的主要问题是上市策略。
构建新芯片然后开始考虑该软件可能为时已晚。如何通过调整硬件来适配软件以及从现有软件中获取价值?这也带来了重新思考FPGA架构的机会。但是,值得警告的是:硅产业正在吞噬现金。构建ASIC是一种扑克游戏,多年来赌注不断增加。这是一场赢家通吃的比赛,FPGA之类的威胁在比赛初期就被淘汰。
FPGA正在为硅产业带来额外的突增风险。
07
利基技术
软件设计师总是会说,“如果它能在软件中实现,它就会在软件中实现”,而ASIC设计师会说,“如果它能在ASIC中实现,它就会在ASIC中完成。”最有趣的是,“如果可以用软件完成,那么你就不必和那些像FPGA一样思考的人打交道。”与制造ASIC所需的庞大“军队”以及世界范围内的软件程序员的数量相比,FPGA拥有一个很小的社区,其中包含许多有时表现古怪的程序员。FPGA公司规模较小。FPGA社区也较小。
英特尔正在推动FPGA的灵活性。它遵循构建硬件以运行现有软件的原则,并成为这一领域最成功的公司。
FPGA可以比CPU和GPU更快,但是行业和投资界的艰难教训是,在计算机存在的大部分时间里,速度无关紧要,而实时性也无关紧要。因此,很少有仅为了速度而购买计算机。确实有这种情况,但这更多是随机事件,而不是一个建立业务的市场。另外,FPGA没有标准、开源、友好的编程模型——因此,对于在所有FPGA芯片上均可工作或易于交叉编译的FPGA程序,也没有标准的市场。Maxeler Technologies可以提供此类接口作为一种高级解决方案,但广泛的行业采用需要信任。为了从早期采用者发展到让所有人受益,信任需要数据中心领域中既有供应商的协调和支持。
现实世界中的应用程序人员说:“我不在乎它是什么,只是给我一种方法去做我想做的事情就行了。”尚未广泛探索的FPGA可能有哪些应用领域?对于实时计算、制造业、无人机的计算机视觉,这是FPGA的重量和功耗优势能展现的地方。在卫星上进行硬件升级是非常昂贵的,因此FPGA提供了至关重要的长期灵活性。FPGA需要找到一种能产生共鸣的产品,并且它们必须易于编程,不只是硬件或软件,还包括生态系统。这是完整的解决方案。
超越当前市场限制的一种方法是实时编译和自动FPGA程序生成。这说起来容易做起来难,但随着AI破坏了应用程序空间,机会越来越多。如今,一切都由AI完成。甚至诸如石油和天然气地震成像之类的传统算法也都采用了AI。我们需要用科学和工程解决方案来处理AI。FPGA可能是一个很好的起点,可能最初是连接AI模块,然后将它们整合到FPGA架构中,例如Xilinx的下一代芯片——带有AI架构、CPU、100G接口和FPGA单元都集成在同一个7纳米芯片中。
从另一个角度来看,随着AI芯片产生并消耗大量数据,我们将需要FPGA来满足需求并能迅速转移输出。随着用于所有AI处理的新型ASIC的面世,FPGA可以为AI芯片公司提供差异化服务。
预测
我们是否可以提前10或25年预测下述发展?尽管世界在变化,但预测似乎保持不变。
1.将会有成功的CPU+ FPGA服务器芯片,或直接访问CPU缓存层次结构的FPGA。有人说会有,有人说不会有。
2. SoC(片上系统)FPGA芯片将不断发展壮大,推动医疗、下一代电信和汽车行业等。
3.开发人员将使用FPGA做一些令人惊奇的事情,让世界变得更美好,但必须掩盖内部存在FPGA的事实。
4.将保留FPGA的名字,并制造被称为FPGA的芯片,但内部的一切将完全不同。
5.当我们放弃(数据流)优化以使FPGA易于编程时,FPGA的性能将降低,因此它们将不再与CPU竞争,而CPU总是更易于编程。
6.将有具有动态路由、演进互动以及运行时灵活的数据移动的FPGA。
7.放置和布线软件以及FPGA顶部的完整软件堆栈将是开源的。Yosys和Lattice FPGA已经开始努力。
8.所有半导体架构都将与TPU、GPU、CPU、ASIC和FPGA组合成单个芯片。一些可能是每个整体的组合,其它将是每个部分的组合。
9.更多的芯片将集中在有限的应用空间上,而更少的集中在通用芯片上。从某种意义上说,一切都变成了SoC。
09
评论
本文解决了多少个冲突,并创造了多少个新冲突?从这个意义上讲,冲突是对现有工作方式的挑战。这种现有的做事方式可能会影响人们的思维方式,从而影响他们的行为方式。但也许更重要的是,这将影响开发者的谋生方式。
-END-