从芯片到系统:FPGA加速卡的发展历程与展望

2019-03-20 13:09:04 来源:老石谈芯

一个重要的趋势

作为加速云数据中心的重要组件,FPGA已经开始了它在数据中心领域的广泛使用。除了像微软、亚马逊这样的大型云服务提供商之外,FPGA也逐渐开始进入其他类型和规模的数据中心,并在大数据处理、AI、网络功能加速等领域扮演者重要的角色。

(图片来自英特尔)

在这些基于大数据浪潮的全新应用中,FPGA厂商也在不断的探索和尝试新的FPGA推广方法。他们的最终目的非常简单,就是让更多的用户使用自己的FPGA产品。但在这个过程中,我们可以发现一个重要的发展趋势,那就是FPGA厂商正在逐渐的从单纯的芯片提供商,转变为系统级解决方案提供商

回首过去,在传统的FPGA业务模型里,FPGA厂商通常只负责卖给客户两样东西:一个是FPGA芯片,另外一个是FPGA的开发工具。两件东西一旦售出,客户开发何种应用就与厂商无关。虽然厂商也会提供详尽的技术支持,但主要的开发过程往往还是由客户完成。

如今,FPGA厂商更倾向于提供给客户一个完整的系统级解决方案。两大FPGA厂商英特尔和赛灵思目前纷纷推出的各类FPGA加速卡,就是这个趋势的典型代表。

总体而言,FPGA厂商在硬件层面已经不单单提供芯片级的产品,而是进一步提供板卡级的产品组合。与开发板不同,FPGA加速卡是针对特定领域和应用的专业板卡,通常以PCIe扩展卡的方式进行部署。板卡上设计有丰富的高速I/O接口与存储资源,但往往不会配备太多开发板上常见的调试功能与资源,例如通用I/O等。

在软件层面,FPGA厂商除了提供传统的开发套件之外,现在还会提供与FPGA加速卡配套的驱动、各类软件库、编程接口(API),甚至还有下文会提到的完整的软件开发栈以及软硬件参考设计。

通过提供这些完整的开发环境,大大简化了FPGA的开发难度,使得软件开发人员也能在短时间内完成算法模型的FPGA实现。FPGA厂商的主要目的,是在不断提供原厂软硬件解决方案的同时,也在不断吸收第三方的IP与应用,从而构建一个完整的FPGA生态系统

同时我们也注意到,除了FPGA原厂的加速卡方案之外,很多第三方厂家,比如华为、浪潮和Mellanox等,也相继推出了各自的FPGA加速卡产品。这些第三方加速卡虽然采用的都是英特尔或赛灵思的FPGA芯片,但都针对各自的细分领域做了优化设计,以适应目标应用的需要。

在下文中,我将详细介绍一下当前在市场上主要的FPGA加速卡产品,以及各个厂商基于加速卡的FPGA生态系统布局。

英特尔的FPGA加速卡布局

早在2017年10月,英特尔就官宣了旗下的首款FPGA加速卡产品,名为“Programmable Acceleration Card”,简称PAC。同时发布的,还有与之配套的软硬件开发框架与加速栈系统。这不仅是英特尔FPGA的首款通用FPGA加速卡产品,也是当时市场上的首款面向大数据、AI、高新能计算等新兴领域的数据中心FPGA加速卡,因此PAC的意义非同小可。

(图片来自英特尔

在硬件规格方面,PAC使用了英特尔的Arria10 GX FPGA,它基于英特尔的20纳米工艺制造,拥有115万个可编程逻辑单元,是当时性能和容量最强大的英特尔FPGA。PAC集成了8GB的DDR4内存和128MB闪存,有一个QSFP+接口,能满足最高40Gbps的网络连接带宽,同时有PCIe Gen3 x8接口与主机CPU互联。

(图片来自英特尔

值得注意的是,PAC的板级功耗约为45W~60W,因此得以采用了被动散热设计,从而将板卡的尺寸控制在了半高半长,方便在各类服务器的部署。

PAC的主要应用场景是加速数据中心的各类应用,作为英特尔的原厂产品,PAC在数据中心里有着得天独厚的优势。它天生可以作为英特尔Xeon处理器的硬件加速单元,用于卸载和加速原本在CPU上实现的各类应用,从而构成英特尔CPU+FPGA的高性能数据处理组合。

作为生态系统构建的重要组成部分,英特尔还发布了面向Xeon和FPGA的加速堆栈(Acceleration Stack),见下图。这个加速堆栈本质上是一个软件开发框架,包含了FPGA板卡的驱动、API、接口管理、软件库与开发工具等,从而为CPU与FPGA的联合开发提供了通用的编程接口,简化了开发流程,缩短了开发时间。

(图片来自英特尔

为了向软件开发者进一步抽象底层的FPGA硬件资源,英特尔开源了名为“开放可编程加速引擎(Open Programmable Acceleration Engine - OPAE)”的技术。OPAE是一个层次化模型,提供了一系列标准的软件接口,以及常见硬件功能的FPGA实现,比如各类寄存器与内存分配逻辑等等。同时,也提供了很多操作系统内核空间的FPGA支持,使得开发者可以专注于用户空间的应用开发。

(图片来自英特尔

PAC发布一年后,英特尔在2018年10月发布了另一款基于Statix10 SX FPGA的加速卡。相比前一代产品,这款加速卡在硬件性能上有了质的飞越。Stratix10作为英特尔的高端FPGA系列,基于英特尔的14纳米工艺制造,并采用了3D系统级封装技术,有着更高的集成度。在这款PAC采用的Stratix10 FPGA上,有280万可编程逻辑单元,244Mb片上内存以及高达26Gbps的串行收发器。

(图片来自英特尔

板上资源方面,这款PAC包含32GB DDR4内存、两个最高支持100Gbps网络带宽的QSFP28接口,以及PCIe Gen3 x16接口。由于这个板卡面向更高性能的数据中心应用,因此在功耗和尺寸方面都有所增加,其中板级功耗约为225W,尺寸为全高、3/4长的双槽设计。

(图片来自英特尔

在2019年MWC大会的第一天,英特尔又推出了一款针对5G应用的FPGA加速卡PAC N3000,见下图。这款加速卡可以实现高达100Gbps的网络流量的加速处理,同时支持9GB DDR4和144MB QDR IV板上内存。

(图片来自英特尔

对于英特尔的FPGA加速卡产品而言,它们最大的优势之一就是英特尔在数据中心处理器领域的核心支配地位。由于英特尔Xeon处理器占据了数据中心市场的x86处理器的绝大部分市场份额,因此无论何家的FPGA加速卡都必须针对Xeon处理器做大量的兼容性设计和优化,而英特尔FPGA在这方面有着先天的血统优势。这也使得英特尔成为目前唯一一个能够提供全栈式数据中心解决方案的公司。

此外,英特尔与各大服务器制造商保持着良好的合作关系,因此包括戴尔、HPE、富士通等服务器制造商会很自然的在自家的服务器产品中加入并销售基于英特尔FPGA的加速卡。然而,这对于其他FPGA厂商而言就没有那么水到渠成,他们往往很难说服服务器厂商或者客户在已经内置了FPGA的服务器中,再花费额外的成本,并冒着兼容性的风险去添加其他的FPGA加速器。

赛灵思的FPGA加速卡布局

赛灵思的FPGA加速卡产品起步相对较晚。在2018年10月,赛灵思才正式发布了旗下首款面向数据中心应用加速的FPGA加速卡产品,名为Alveo。首批推出的Alveo U200和U250板卡均基于赛灵思的16纳米UltraScale FPGA器件,分别拥有89.2万和134.1万个可编程逻辑单元。在FPGA器件方面,这两款Alveo卡与英特尔的PAC相比,可以说在伯仲之间。

这两款板卡主要针对的都是大型数据中心应用,因此板上集成了64GB DDR4内存,以及两个QSFP28网络接口和一个PCIe Gen3接口。与PAC相比,这两款板卡的板级资源要丰富的多。然而,这也导致Alveo板卡的外形尺寸和功耗都比较大。当采用主动散热时,板卡尺寸为全高全长,标准功耗为100瓦~110瓦,功耗峰值可达225W,远超过PAC的45W~60W。

(图片来自赛灵思)

在生态系统建设方面, Alveo加速卡将主要基于赛灵思的SDAccel软件进行开发。SDAccel是一个集成的开发环境,它的主要结构层次如下图所示。

SDAccel最主要的特点之一是包含针对诸如C/C++和OpenCL等高层次语言的FPGA编译器、软件库和API等基础架构,以期帮助软件开发者更快的对FPGA硬件进行开发。这一点,与英特尔的面向Xeon和FPGA的加速堆栈有异曲同工之妙。这也印证了当前FPGA软件系统发展的趋势,就是需要不断降低FPGA开发的门槛,通过尽量多的提供高层次语言的支持,以提高FPGA的开发效率,缩短产品面世时间

(图片来自赛灵思)

第三方的FPGA加速卡

除了英特尔和赛灵思推出的原厂FPGA加速卡之外,很多第三方厂商也在近年相继推出了基于FPGA的硬件加速卡产品。其中比较典型的有我国浪潮、华为等公司推出的加速卡,以及国外Mellanox公司推出的基于FPGA的智能网卡产品。

浪潮的F10A FPGA加速卡是目前在售的一款FPGA加速卡产品,见下图。它采用了英特尔Arria10 FPGA,最多包含115万个片上可编程逻辑单元。加速卡上提供了两个SFP+ 10Gbps以太网端口,PCIe Gen3x8接口,以及最高32GB板载DDR内存。

(图片来自浪潮)

在2018年10月底的赛灵思开发者大会上,浪潮和华为都发布了自己的新FPGA加速卡产品,分别叫做浪潮F37X和华为FX系列,如下图所示。

(图片来自浪潮)

(图片来自华为)

这两款加速卡都采用了赛灵思的16纳米UltraScale+ FPGA器件。相比赛灵思的原厂Alveo加速卡,这两款加速卡产品的主要特点是功耗得到了进一步削减,这可能得益于FPGA芯片规格的提升。例如,浪潮的F37X加速卡的典型功耗只有75瓦左右,而华为的FX系列的中端加速卡的典型功耗最大为75瓦,高端卡为200瓦。

在其他技术规格方面,浪潮F37X加速卡使用的FPGA集成了8GB的HBM2片上高速缓存,相比DDR而言,能大幅提高存储带宽和访存效率。相比Alveo,新推出的这两类第三方加速卡都有着更高的片上逻辑单元数量,足以应对各种新兴的数据中心计算与应用场景,比如机器学习、视频编解码、NFV、图像与语音识别等等。

老石在之前的文章《Mellanox为何让多家巨头公司趋之若鹜》中介绍过,Mellanox是一家总部位于以色列的著名的网络设备供应商,旗下产品包括网络控制芯片、网卡、线缆、交换机、软件等等,可以说几乎涵盖了数据中心网络产品的各大门类。Mellanox的基于FPGA的智能网卡产品名为Innova-2 Flex,见下图。

(图片来自Mellanox)

这款智能网卡上包括两个主要芯片,一个是Mellanox的ConnectX-5以太网控制器,另一个是Xilinx的Kintex UntraScale FPGA。板上包含两个25G以太网端口,都与ConnectX-5相连,然后再通过PCIe Switch连接Host和FPGA。ConnectX-5本身就可以实现不少硬件加速功能,比如常见的虚拟交换、SRIOV、QoS与流量控制等。因此FPGA在这个卡上更像是一个“辅助”的加速单元,主要的设计目的是用来实现和加速各种CPU上不支持、或性能较低的定制化需求。

结语

在今天,FPGA厂商已经从单纯提供FPGA芯片和底层开发工具,逐渐转变成提供基于FPGA加速卡和完整软件开发环境的全栈式解决方案。同时,第三方FPGA加速卡的出现,也极大的丰富了FPGA加速卡产品的可选择性,以针对不同应用场景下的用户需求。

这些转变背后的主要动力,就是当前FPGA在诸多领域的广泛而深入的使用。只要FPGA还能不断推动AI和大数据时代的发展,这个趋势就会继续前行。

全部评论