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