FPGA自上世纪80年代进入市场以来,就与通用CPU、ASIC乃至GPU竞争共存。FPGA的低功耗、可编程、规格适中等特性,使其在市场中占据一席之地。本文分析了通信、HPC、数据中心等多个领域的现状,对市场、价格和竞品对比等方面进行了概要分析,并预测了FPGA未来的一些发展方向,对了解FPGA提供了很好的参考。本文概要总结了2019年9月在斯坦福大学一次三小时讨论情况,其中汇聚了来自多家企业和研究机构的实践经验,包括Zilog、Altera、Xilinx、Achronix、Intel、IBM、Stanford、MIT、伯克利、威斯康星大学、Technion、Fairchild、贝尔实验室、Bigstream、谷歌、DIGITAL(DEC)、SUN,诺基亚、SRI、日立、Silicom、MaxelerTechnologies、VMware、施乐PARC、思科等。上述各家并不对本文内容承担任何责任,只是在某种程度上激发了作者们的思考,进而构成了FPGA的多维发展之路。
FPGA(现场可编程门阵列,Field-ProgrammableGateArrays)自诞生以来,就与ASIC社区纠缠不清。上世纪80年代中期,RossFreeman及其同事从Zilog处购买了该项技术,初创了面向ASIC仿真和教育市场的Xilinx公司。Zilog来自于埃克森美孚石油公司,其创立源自于上世纪70年代人们对石油将在30年内耗尽的担忧——尽管时至今日这一说法依然大行其道。几乎与此同时,以类似技术为核心的Altera成立。
FPGA是支持电路编程的芯片,实现对该电路的“仿真”。对于ASIC中的实现,这种仿真的运行性能要慢于实际的电路。它的时钟频率更低,耗能更高,但可以每几百毫秒重新编程一次。
FPGA用于在ASIC制造商做光罩并提交工厂制造前仿真ASIC。Intel、AMD等企业在芯片生产前,使用FPGA仿真芯片。
电信领域的争夺
FPGA一直在电信行业大量使用。由于电信标准的不断变化增加了电信设备的制造难度,因此能率先给出电信解决方案的企业往往会占领最大的市场份额。ASIC的制造周期很长,而FPGA提供了一种快捷方式。电信设备开始在初期版本上采用FPGA,这引发了FPGA价格的波动。尽管ASIC仿真市场并不受FPGA价格的影响,但芯片的价格对电信企业却至关重要。多年前,AT&T和朗讯制造了自己的FPGA,称为ORCA(优化的可重配置单元阵列,optimizedreconfigurablecellarrays)。但与Xilinx或Altera相比,它们在硅片的速度和规格上并不具有竞争优势。
如今,华为已成为FPGA的最大客户。美国制造的FPGA可能正是中美之间最近的紧张关系的导火索。这些芯片令华为在5G电信设备交付上占据优势,领先世界上其他任何准备参与竞争的供应商达两年。
FPGA价格之争
FPGA很早就用于SDR(软件无线电,software-definedradios)。SDR技术可同时支持多种通信标准的无线电,类似于一部可讲多种语言的电话。这一次FPGA遇上了麻烦,因为SDR技术走上了两条不同的采用道路。一方面,商业供应商基于成本效益考虑开发了很多解决方案,并在当前地球上所有的****都部署了SDR技术。另一方面,在国防领域,大型国防承包商是为了保护有利可图的传统产品线而构建SDR的。这导致基于FPGA的无线电产品的价格居高不下,以至美国的部分国防市场一直抵制它们的应用。
下一步,FPGA试图进入DSP和嵌入式市场发展,开始推出部分使用硬核微处理器的FPGA。但销售这些新型FPGA的压力很大,以至于如果客户拒绝这一新系列的芯片,就会被芯片厂商列入黑名单,有时甚至会拒绝提供服务数月。鉴于FPGA企业攻克新市场频频失败,FPGA市场的增长压力依然巨大。因为FPGA的芯片面积巨大,涉及的知识产权众多,所以FPGA产品难以降低价格。
在HPC和数据中心领域碰壁
在过去数年中,FPGA试图在HPC(高性能计算)和数据中心市场中发展。2017年,微软宣布在数据中心使用AlteraFPGA,而英特尔则收购了Altera。2018年,Xilinx宣布了其“数据中心优先”战略。其CEO面对广大分析师时,宣称Xilinx不再是一家单纯的FPGA企业。这颇具戏剧化,但这是历史必然。
在HPC和数据中心使用FPGA,主要障碍在于布局布线(place&route),即运行FPGA供应商特定软件将电路映射(mapping)为FPGA元件所耗费的时间。针对大型FPGA,使用快速的CPU服务器,布局布线耗时可能多至三天。并且在很多情况下,三天之后软件依然无法找到映射。
在石油天然气领域碰壁
2007年前后,石油和天然气领域的应用形成了利基市场。在传统计算机上模拟钻探地球发现石油所花费的时间,比现场实际施工和钻探的时间还要长。使用FPGA加速器,极大地改变了这种耗时颠倒的情况。首个用于计算地震图像的石油企业数据中心的FPGA,是由MaxelerTechnologies制造并交付给Chevron的。
FPGA在油气领域的应用经过了数年扩展,直到来自ASIC产业的压力,才让标准的CPU技术重新回归。当下,预测和仿真在油气领域依然重要,地震成像大多使用CPU和GPU完成,不过FPGA依然占据了一席之地。我们知道,“当前的新事物,会成为明日黄花”。当然,人工智能和对数据的关注是当前的新事物。
尽管如此,FPGA依然是一种进入市场的快捷方式、获取竞争优势的简单方法,以及许多关键任务中必不可少的技术。FPGA的每个芯片价格要比ASIC昂贵,但是对HPC和数据中心而言,相比CPU和GPU而言需要的FPGA芯片更少,制冷开销更低,因此FPGA的运行费用要显著低于在CPU或GPU上运行软件。FPGA使得数据中心规模更小,这会使运营商感到不安,因为他们担心自己的数据中心可能会缩水。
ASICvs.FPGA
FPGA的另一用途,是作为ASIC的补充。构建ASIC的目的在于实现固定的功能,添加FPGA则可为产品的最新更改以及适应不同的市场提供一定的灵活性。
现代FPGA集成了越来越多的硬核功能,变得越来越像是ASIC。而ASIC也时常会在设计中添加一些FPGA结构,以便于调试、测试、现场修复,以及增加添补小功能的灵活性。
但ASIC团队却一直在与FPGA概念做抗争。ASIC设计师询问“用户需要什么功能?”,并在得到“我也不确定”的回答后会失去耐心。
无人驾驶汽车行业就是这样的一个新战场。由于算法的不断变化,并且法律法规可能会在汽车入场时发生变化,需要不断对驾驶技术做相应调整,这需要灵活可变的解决方案。FPGA的时钟频率更低、散热片较小,物理尺寸小于CPU和GPU。更低的功耗和更小的尺寸,使FPGA成为显而易见的选择。尽管如此,GPU更易于编程,并且不需要耗时三天的布局布线。
另一个至关重要的考虑是,出于模拟和测试等方面的考虑,需要在汽车上和云中运行相同的代码。这样需要FPGA必须在云中可用,然后才能在汽车中使用。由于上述问题,许多开发人员更喜欢选择GPU。
FPGA的演进
FPGA正处于不断发展中。现代接口正使FPGA更易于编程,更为模块化,更易于与其他技术协作。FPGA支持AXI(高级可扩展接口,AdvancedExtensibleInterface)总线,使其更易于编程,但也会引入很多严重的效率损失,结果降低了FPGA的性能,最终导致其竞争力下降。一些学术工作提出了解决布线问题的研究,例如EricChung的关于FPGA动态网络的论文,但是这些先进的理念尚未为产业界所接受。
FPGA是如何连接的?对于具有大量数据流的HPC工作负载,可以使用PCIExpress,并部署通信隐藏技术。但是像NFV(网络功能虚拟化,networkfunctionvirtualization)这样的小规模但却能同时为大量用户提供服务的工作负载呢?VMware最近的调查结果指出,对于NFV和虚拟机加速,FPGA必须直接连接到CPU,并使用缓存一致性作为通信机制。当然,一个关键的特性是FPGA的崩溃不会导致CPU崩溃,反之亦然。大型技术企业正在重新审视IBM大型机时代的需求,意图使用标准化平台涵盖越来越多的复杂性。
在大众化的企业市场也存在着机会。在提供FPGA平台时,企业即便没有进行ASIC开发的预算,也不了解最新的硅制造挑战和解决方案,也可以去开发电路,并在其产品中建立竞争优势。例如新兴的物联网(IoT)边缘计算,实现在近传感器、显示器端甚至在数据流经过时进行计算。
在数据中心中推行FPGA的关键是易用性。例如,使用自动工具去驱动FPGA的应用,避免产生布局布线上的难题。微软率先在大型数据中心中使用FPGA来加速Bing、NFV和人工智能算法,此外还构建了抽象、领域特定语言和灵活的硬件基础结构。在商业上,FPGA的主要问题在于入市策略。
构建新的芯片后才去考虑软件就为时已晚了。如何让硬件适应软件而从现有软件中获益?这也提供了重新思考FPGA架构的机会。但是需要警告的是:硅产业是个吞金兽。构建ASIC是一种****注多年持续攀升的****游戏。这是一场赢家通吃的比赛,在比赛初期就剔除了FPGA的威胁。
FPGA正在为硅项目带来额外的不良风险。
利基市场
正如软件设计师常说,“软件能完成的事情,就应由软件实现”。ASIC设计师会说,“ASIC能完成的事情,就应由ASIC来完成。”最有趣的说法是,“如果可以用软件完成,那么就不必和一切FPGA思维的人打交道了。”相比ASIC的团队规模,以及全球范围内软件开发人员的规模,FPGA的公司很小,社区也很小,其中只有一些甚至是古怪的程序员。
英特尔正在推进FPGA的灵活性。在遵循“构建硬件以运行现有软件”这一原则的公司中,英特尔是最成功的一家。
FPGA性能可能比CPU和GPU更快,但是来自产业界和投资界的切实经验教训是,自计算机出现以来的绝大多数时间中,速度和实时性并没那么重要。很少有人仅仅为了高性能而购买计算机。尽管此事时有发生,却不能根据这样的随机事件去建立业务市场。此外,FPGA缺失标准,没有开源代码,也没有令人愉悦的编程模型。因此,并没有标准市场支持可在所有FPGA芯片上工作或易于交叉编译的FPGA程序。MaxelerTechnologies具有提供此类接口的高级解决方案,但广泛的行业采用需要的是信任。信任才能推动技术从早期采用者的玩物发展到让所有人受益,但这需要现有数据中心领域供应商的推动和支持。
现实中,应用的用户会说:“我并不在乎具体方法,只要能完成我想要做的事情。”在尚未广泛探索的应用领域中,哪些是FPGA可一展身手的?对于实时计算,FPGA可用于工业界。对于无人机上的计算机视觉,FPGA在重量和功耗上具有优势。在卫星上的硬件升级代价很大,对此FPGA提供了至关重要的长期灵活性。FPGA需要的是休戚与共的产品。此类产品必须易于编程,光是硬件或软件还不够,还需要生态系统,需要完整的解决方案。
实时编译和自动FPGA程序生成是拓宽当前市场局限的好方法。说起来容易,但做起来难,但是随着人工智能对应用空间的突破,越来越多的机会出现了。当前,一切皆可由人工智能完成,甚至油气领域地震成像等的传统算法也都采用了人工智能。处理人工智能模块需要科学和工程上的解决方案。FPGA可提供一个很好的出发点,从连接AI模块开始进而整合到FPGA架构中。例如,Xilinx的下一代芯片将人工智能架构、CPU、100G接口和FPGA单元整合到同一个7纳米芯片中。
从另一个角度来看,随着人工智能芯片生成并处理大量数据,需要FPGA提供大量输入并迅速取走输出。随着用于人工智能处理的新ASIC的面世,FPGA将在人工智能芯片公司大展身手。
预测
将出现成功的CPU+FPGA服务器芯片,或直接访问CPU缓存层次结构的FPGA。有人赞同,有人否定。
SoC(片上系统,systemonachip)FPGA芯片将不断发展壮大,带动医疗、下一代电信和汽车等行业。
开发人员将使用FPGA实现神奇的事情,推动世界的进步,但对内部存在FPGA的事实必须秘而不宣。
FPGA的名称将会保留,称为FPGA的芯片也会继续出现,但是其内部将大相径庭。
一旦我们为简化FPGA编程而放弃(数据流)优化,FPGA的性能将降低,进而将无法与易于编程的CPU竞争。
FPGA将具有动态布线、不断发展的互连,以及运行时灵活的数据移动。
和FPGA之上完整的软件栈一样,布局布线软件将会开源。Yosys和LatticeFPGA已经着手于此。
所有半导体架构都将组合为融合了TPU、GPU、CPU、ASIC和FPGA的单个芯片。芯片中可融合所有技术,也可融合部分技术。
更多的芯片将聚焦于特定应用空间,只有少部分实现通用用途。从某种意义上说,一切都会成为SoC。