潘伟涛 · 2022年06月24日

高端FPGA揭秘之工艺及资源竞争

来源:内容由「网络交换FPGA」编译自「eejournal」,作者:Kevin Morris,谢谢。

英特尔本周(2019年9月)宣布,他们已经开始向早期进入市场的客户出货第一批新的Agilex FPGA。这让我们进入了我们历来认为的两大FPGA供应商之间的竞争 "头对头 "阶段。早在2019年6月份,Xilinx公司就出货了他们的第一款 "Versal ACAP "FPGA,因此,在经历了 "谁先出货?"的漫长而有争议的争论之后,事实证明,这两家竞争对手在大约两个月内就开始出货他们的同类FPGA产品线。这意味着,与最近其他的工艺节点上的争夺第一不同的是,两家公司都没有什么重要的时间来抢夺设计上的胜利,都是以一种新的、优势的、没有被对手竞争的技术来抢夺设计上的胜利。

image.png

不过,这一次,竞争的领域更大了,中间商Achronix公司声称,他们将在今年年底前推出首批Speedster 7t FPGA样品。对于开发团队来说,这意味着到今年年底,将有三款差异化的高端FPGA产品供他们选择--都是采用类似的工艺技术,并且都具有独特的特性和能力。

这将是多部分系列中的第一篇,对这三家厂商的新高端FPGA系列进行比较。我们将从底层工艺技术、FPGA逻辑(LUT)结构本身、加速处理和网络化的硬化资源、内存架构、芯片/封装/定制化架构、IO资源、设计工具策略、每个产品的独特和新颖的特性和能力以及营销策略等方面进行比较。系好安全带,这将是一次令人兴奋的旅程。呃,如果你是那种从巨大的FLOPS数、疯狂的带宽和一些有史以来最有趣的、能力最强的半导体器件中获得快感的人。

竞争领域从通信转移到数据中心

这一次,高端FPGA霸主之争的奖项发生了一些变化。过去,高端FPGA最大的市场是在网络领域,市场份额的变化也是如此,主要是看谁能从部署新一轮有线和无线网络硬件的客户中,以新一代家族的设计胜出,获得最丰富的设计胜出。然而,5G的推出时机改变了这一动态。5G在当前的FPGA技术浪潮到来之前就开始了规模化,因此,5G的第一轮骨干器件都是建立在上一代可编程逻辑上。这些器件将流向已经强大的5G生态系统,因此我们在5g的彻底革命和新一代FPGA的诞生之间并没有保持一致。这些FPGA在设计的时候,对5G的机理已经相当了解。不过,不要小看FPGA对5G的重要性,或者说5G对FPGA市场的重要性。当你今天使用手机的时候,大概有99%的概率,你的通话会通过一些FPGA。到了5G,FPGA的影响会更大。

image.png

这一事实与新兴的数据中心加速市场的快速扩张---主要是针对AI工作负载的数据中心加速市场的快速扩张形成了有趣的博弈。据估计,未来几年内,AI加速市场将急剧增长,而这些设备--价格不菲,功耗预算不高--将主要争夺该市场的数据中心部分,尽管这三家厂商都声称要提供能帮助到边缘/端点的解决方案。这些厂商都非常明确地表示,抓住这些AI加速插座是一个优先考虑的问题,他们都围绕着这个想法来架构他们的新芯片。这些因素的结合为这三家公司在5G和AI加速领域的激烈竞争奠定了基础--这意味着这些设备需要具备强大的AI加速功能、强大的网络性能、强大的开发工具来部署这些超复杂的芯片,以及狡猾的营销策略。

我们来看看所有这些因素吧?

三家FPGA厂商工艺PK

从底层工艺技术入手,Xilinx和Achronix的FPGA系列都是在台积电7nm工艺上制造的,而英特尔Agilex则是在能力相近的英特尔10nm工艺上制造的。不要被7/10命名法的差异所迷惑。我们很早以前就已经达到了这样的境界:半导体营销团队根据市场上听起来很好听的东西来命名节点,而不是从晶体管本身的任何可辨识的特征中得出。根据我们的估计,台积电的7nm和英特尔的10nm工艺大致相当,而使用这两种工艺的厂商基本上都同意。这意味着,英特尔在制程技术上长期以来的领先优势似乎已经化为泡影,但是,随着摩尔定律的黄昏临近,硅制程上的竞争领域不可避免地会趋于平缓。

image.png

三家厂商都能从跳转到最新的半导体制程节点上获得适度的提升。然而,这种跳转可能达不到历史上的摩尔定律标准,因为在过去的几个节点上,每一次新工艺更新带来的增量效益都在稳步下降。当FinFET技术出现时,每个人都得到了一次性的暂时性的提升,而现在,随着摩尔定律即将到来的经济终点,我们很可能会看到边际回报递减的趋势的延续。

在过去,由于晶体管尺寸的缩小,每一个新节点都会带来更高的密度、更好的性能和更低的功耗,而这一切都是由于晶体管尺寸的缩小而带来的。而现在,厂商不得不在这三者之间进行权衡,即使在他们所青睐的指标上,也往往会得到较小的回报。与此同时,转移到新工艺节点的非经常性成本继续呈指数级攀升。这意味着FPGA公司的利害关系急剧上升,因为他们必须以不断降低的收益来稳定地增加投资,以保持竞争力。这也意味着我们正在进入一个时代,在这个时代,FPGA本身的架构和特性、用于实现FPGA的工具以及三家公司的营销策略将成为关键因素,而不是谁先进入新的工艺节点的时机。

三家FPGA厂商LUT结构及折合资源对比

考虑到工艺技术本质上是一种洗涤,我们来看看各厂商提供的能力和特点。先从最基本的FPGA功能开始--LUT结构。我们经常感慨,每个公司对LUT的计算方式都不一样,而且随着每一代产品的更新换代,这种博弈变得更加复杂。Xilinx和Achronix目前使用的是类似于6输入的LUT,而Intel的ALM基本上是8输入的LUT。厂商们或多或少都同意,我们可以用每LUT6的2.2个LUT4s和每LUT8的2.99个LUT4s的系数将这些数字转换为等量的4输入LUT。

image.png

注:FPGA内部结构可点击查看本公众号文章《手把手教你动态编辑Xilinx FPGA内LUT内容》。

根据这一计算,Achronix Speedster 7t系列以363K至260万LUT6s(折算成800K-576万LUT4等效)领跑,Intel Agilex以132K-912K ALM(折算成395K-270万LUT4等效),而Xilinx的Versal系列则以246K-984K CLB(折算成541K-220万LUT4等效)。每家厂商都宣称自己的架构更胜一筹,强调了在某些特定应用或配置中可能提高逻辑密度、性能或可路由性的设计特性。目前我们还不清楚任何一个厂商的LUT是否比其他厂商的LUT有明显的优势。

image.png

然而,你能用一个FPGA做的事情只有一部分是由LUT数量决定的。我们还必须考虑到实际使用这些LUT中的一个有意义的百分比的挑战(我们将在稍后的设计工具中讨论),以及在硬化的逻辑块中装入多少能力,使设计能力可以在LUT结构中以最小的参与度来实现。根据你的设计,你可能会发现你可以在一个或另一个FPGA中装入更多的功能--与LUT数量无关。

三家FPGA厂商计算资源对比

FPGA擅长于AI推理的主要原因是,由于在可编程逻辑结构中交织着巨大的 "DSP "块阵列,可以并行完成大量的算术运算(主要是乘法运算,以不同的精度进行乘法运算)。这使得FPGA能够比传统的冯-诺依曼处理器更有效地执行矩阵运算,如卷积等。

image.png

再看对AI推理至关重要的硬件乘法器,Achronix公司的可变精度乘法器可以产生41K int-8个单元,即82K int-4个单元。英特尔Agilex有2K-17K 18×19的乘法器,而Xilinx Versal则带来了大约500-3K的 "DSP引擎",大概是 "DSP58 slice",其中包括27×24的乘法器和新的硬件浮点能力。这种比较显然是 "苹果对橙子对芒果",至于哪种水果更适合你的应用,想必有些 "注意事项"。

这三家厂商现在都提供了对浮点的硬支持。Achronix公司的DSP块采用了全新的架构,他们称之为 "机器学习处理器"(MLP)。每个MLP最多包含32个乘法器/累加器(MAC),4-24位整数模式,以及各种浮点模式,包括原生支持Tensorflow的Bfloat16格式以及块浮点格式。最重要的是,Achronix MLP将嵌入式内存块与算术单元紧密地耦合在一起,使MAC操作可以在750 MHz的频率下运行,而无需通过FPGA结构等待内存。

image.png

英特尔还使用了可变精度DSP块与硬件浮点(基本上就像他们多年来在FPGA中提供的那样)。英特尔的浮点支持可能是三者中最广泛、最成熟的。通过Agilex,他们推出了两种新的浮点模式,即半精度浮点(FP16)&块浮点(Bfloat16),并且他们还进行了架构调整,使他们的DSP操作更加高效。 

Xilinx已将其以前的DSP48 Slice升级到DSP58 –大概是因为它们现在包括硬件浮点,并且其乘法器也升级到了27×24。因此,在这一代产品中,其他两家供应商也加入了Intel提供硬件浮点支持的工作。对于Xilinx而言,这是一个反转。赛灵思此前声称,FPGA中的浮点支持不是一个好主意,因为浮点主要用于训练,而FPGA则主要针对推理。 

在浮点格式方面,Versal(最高2.1K乘法器)和Agilex(最高8.7K乘法器)支持FP32。所有三个系列都支持半精度(FP16)--Versal最多2.1K乘法器,Agilex最多17.1K乘法器,Speedster最多5.1K乘法器。Bfloat16由Agilex(最高17.1K乘法器)和Speedster(最高5.1K乘法器)支持。对于FP24,Versal和Agilex大概会使用FP32单元,而Speedster最高支持2.6K的乘法器。Achronix Speedster还支持高达81.9K的乘法器,用于块浮点。

image.png

Xilinx还带来了一种新的软件可编程矢量处理器---由高达400个1GHz+VLIW-SIMD矢量处理内核组成的阵列,具有硬计算和紧密耦合存储器。这为并行化复杂的向量运算和利用FPGA丰富的计算资源提供了更简单的编程模式。总的来说,这符合Xilinx明显的 "厨房水槽 "竞争策略上的 "GPU/推理引擎 "框。我们稍后再来谈谈这个问题。

英特尔对Achronix MLP和Xilinx矢量处理器的回答是老派的进化。他们指出,Agilex的DSP块实现了与其他厂商的新DSP功能相同的功能,使用的是既定的、广为人知的FPGA设计开发流程,而且不需要客户在器件的各个架构块之间进行设计分割。如果你的团队拥有FPGA/RTL设计专业知识,这是一件好事。如果你所处的应用是由软件工程师来做DSP,那么Xilinx的软件可编程方法可能会有优势。

三家FPGA厂商计算性能对比

除了简单地计算乘法器,我们还可以通过看厂商宣称的总理论性能来比较能力。不过这里有一点要注意的是。这些宣称严重夸大了,并故意难以准确定义。厂商通常是通过将芯片上的乘法器数量乘以这些乘法器的最大工作频率来得出 "最高XX TOPS或TFLOPS "的数字。很显然,没有一个现实世界的设计会100%地使用可用的乘法器,没有一个能达到这些乘法器的最大理论时钟频率,也没有一个能保持这些乘法器以适当的速率提供输入数据,而且这些操作的精度因厂商而异。换句话说,这是一个很可怕的度量,但这是我们目前最好的比较标准。

如果非要估计的话,我们会说FPGA在现实世界的设计中可以实际达到理论最大值的50-90%。这比GPU要好得多,比如说GPU在现实世界中被认为只能达到理论最大值的10-20%。

image.png

如果我们将int8操作的TOPS数字推算出来,Xilinx Versal以约171个TOPS位居榜首,其中包括133个向量处理器、12个DSP块和26个逻辑结构。Speedster紧随其后,约有86个TOPS,其中61个来自他们的MLP,25个来自逻辑结构。Agilex以92个int8 TOPS排名第一,其中51个来自于DSP块,41个来自于逻辑结构。从bfloat16 FLOPS来看,Agilex以40个领先,Versal以9个紧随其后,Speedster以8个位居第三名。Speedster在块浮点运算方面有很大的优势,有123个FLOPS,Agilex以41个紧随其后,Versal以15个位居第三位。

这些数字均来自公司自己的数据表,并且正如我们提到的,这是理论上的最大值,在实际的实际应用中不可能达到。Achronix的“可用”主张具有一定的优点,因为它们的MLP是独特的设计,旨在将可变精度乘法运算保持在模块本身内,并以最大时钟速率运行,而无需往返逻辑结构即可完成最常见的AI推理操作。同样,Xilinx的矢量处理器架构应该能很好地保持数据在算术管道中流畅地流动。话虽如此,但我们还没有看到一个基准或参考设计以任何有意义的方式动摇了这些公司的说法。

三家FPGA厂商片内布线带宽对比

当然,使用所有这些LUT和乘法器需要让你的设计在你选择的芯片中实际布局布线并满足时序要求。随着FPGA的发展,这已经成为一个越来越难的挑战。单bit线网和逻辑通路扇出在巨大的芯片上扩散,而布线资源有限,这使得传统的时序收敛成为一场噩梦。在同步设计上实现时序收敛的传统技术一个接一个地碰壁,未能实现规模化。Xilinx和Achronix在其新一代FPGA中解决了这一问题,在传统的逻辑和布线结构的基础上增加了片上网络(NoC)。NoC本质上改变了游戏规则,因为整个芯片不再需要在一个巨大的神奇汇流中实现时序收敛。现在,更小的同步块可以通过NoC传递数据,减轻了传统布线结构的负担,并将原来巨大的设计自动化工具问题分解成更小的、可管理的块。

image.png

几代人以前,英特尔已经采用了另一种方法-用称为“ HyperFlex寄存器”的大量微型寄存器铺砌整个逻辑结构。这些寄存器允许对更长,更复杂的逻辑路径进行重新定时和流水线处理,从而使整个设计实质上变得异步。有趣的是,这也是Xilinx和Achronix使用的NoC的净效果。每种方法都面临挑战,因为这两种方法都会给芯片设计和我们使用的设计工具增加大量复杂性。在英特尔的案例中,据报道,HyperFlex寄存器对逻辑架构可以实现的整体速度也有一些负面影响。英特尔表示,Agilex FPGA中的HyperFlex体系结构是第二代,与上一代HyperFlex体系结构相比具有改进/增强功能,可以提高性能并简化时序收敛。在Agilex取得进展之后,我们将不得不拭目以待,看看用户报告了什么。

image.png
在进行NoC布线的两家供应商中,Xilinx和Achronix中,Achronix声称通过其二维跨芯片AXI实现了最快的NoC。NoC中的每一行或每一列都实现为两个工作在2 Ghz的256位单向AXI通道,同时在每个方向上提供512 Gbps数据流量。Speedster的NoC总共有197个端点,产生27 Tbps的聚合带宽,比FPGA的传统按位布线资源少了很多。据我们所知,Xilinx的Versal NoC性能尚未发布,但是大约有28个端点,我们猜测大约是1.5 Tbps。

image.png

好了,本文就到此为止,但是下周我们将继续进行下去–看看这些FPGA系列带来的迷人而灵活的存储器架构,每个系列的独特封装和定制功能,疯狂的SerDes IO功能,嵌入式处理子系统,设计工具流程等。

作者丨Kevin Morris
编译丨eejournal
原文链接:网络交换FPGA

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10614
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息