高端FPGA (1)
然而,这一竞争已经扩大,新玩家Achronix声称,他们将在今年年底前交付其新Speedster 7t FPGA的第一批样品。对于开发团队来说,这意味着到今年年底,将有三种完全不同的高端FPGA产品可供选择——它们都采用了相似的工艺技术,并且具有独特的功能。
本文是比较这三个供应商的新型高端FPGA系列的系列文章的第一部分。我们将研究底层技术,FPGA (LUT)本身的逻辑组织,加速处理和联网的增强资源,存储器架构,芯片/封装/定制架构,I/O资源,设计工具策略,每个产品独特新颖的特性和功能,以及营销策略。如果你是一个可以从大量的FLOPS、疯狂的带宽或一些有趣而强大的半导体器件设计中获得快感的人,那么这对你来说将是一次激动人心的旅行。
注意–英特尔和Achronix都参与并提供了本文中的信息。Xilinx没有回应我们的信息请求。
这一次,高端FPGA的霸主地位发生了变化。以前高端FPGA最大的市场在网络,市场份额也在变化,主要看谁能为部署最新一轮有线和无线网络客户的产品提供最丰富的设计,谁能获得更大的市场份额。然而,5G的推出时机改变了这一动态。在当前FPGA技术浪潮到来之前,5G已经开始加速扩张。所以第一轮5G骨干网是基于上一代的可编程逻辑。这些设备将被集成到已经强大的5G生态系统中,因此我们无法确定5G的彻底革命是否与新一代FPGA的诞生相一致。这些FPGA设计已经充分理解了5G的机制。但是,不要低估FPGA对5G的重要性,或者5G对FPGA市场的重要性。今天,当你使用手机时,99%的通话可能是通过FPGA进行的。有了5G,FPGA的影响力会更大。
随着数据中心加速(主要针对AI工作负载)这一新兴市场的快速扩张,这一现象引起了人们的兴趣。据估计,人工智能加速市场将在未来几年内快速发展,因此三家供应商都将凭借其令人印象深刻的性价比和更高的能效来争夺这些设备的大部分市场份额,并声称他们提供的解决方案可以扩展到边缘/端侧。这些供应商中的每一家都非常清楚占领这些AI加速卡插槽的紧迫性,他们围绕这一想法设计了新的芯片。
让我们看看所有这些因素,好吗
从底层工艺技术来说,Xilinx和Achronix FPGA系列都是基于台积电7nm设计的,而Intel Agilex采用的是性能相近的Intel 10nm工艺。不要被7/10的命名差异所迷惑。不要被7/10的命名差异所迷惑。我们很久以前就指出,半导体行业的营销团队根据市场上听起来不错的东西来命名节点,而不是从晶体管本身的任何可识别特征中推导出节点。据我们估计,台积电的7nm和Intel10nm是大致相当的工艺,使用这两种工艺的厂商也基本相同。这意味着英特尔在制程技术上的长期领先地位似乎消失了。然而,当我们接近摩尔定律的瓶颈时,硅加工领域的竞争是不可避免的。
推到最新的半导体工艺节点时,三家供应商都得到了适度提升。但不可能达到摩尔定律的历史标准,因为过去几个流程节点的新流程更新带来的收入增量一直在稳步下降。FinFET技术的出现给每个人都带来了暂时的推动。现在,随着摩尔定律在经济层面的终结,我们可能会发现边际收益递减的趋势还会继续。
过去,随着晶体管尺寸的减小,每一个新的工艺节点都大大提高了晶体管密度,获得了更好的性能和更低的功耗。现在,供应商必须权衡这三者,即使在他们喜欢的指标上,他们通常也只能获得很少的回报。与此同时,转移到新流程节点的非经常性费用继续呈指数增长。这意味着FPGA公司承担的风险急剧上升,因为为了保持竞争力,他们需要不断投资以获得不断减少的利润。这也意味着我们正在进入一个新的时代。FPGA的架构和功能、FPGA工具以及这三家公司的营销策略将成为影响营收的关键因素,而不是谁会率先使用新工艺技术。
考虑到技术其实是一种洗礼,我们先来看看各个供应商产品的功能和特点。先从最基本的FPGA功能——LUT结构说起。我们经常感叹,每个公司对LUT的计算都不一样,这个游戏随着每一代人的成长变得更加复杂。Xilinx和Achronix目前使用6输入LUT,而英特尔的ALM本质上是8输入LUT。制造商或多或少同意,我们可以使用2.2个LUT 4/Lu T6和2.99个LUT 4/Lu t8将不同的lut转换为等效的4输入lut。
按照这个方法的第一种计算,Achronix Speedster 7T系列包含363K到2.6m的LUT6(相当于800K到5.76M的LUT4),Intel Agilex系列包含132 K到912K的ALM(相当于395K到2.7M的LUT4)。Xilinx的Versal系列产品包含大约246K到984K的CLB(相当于LUT4可以换算成541K到2.2M)。每个厂商都声称自己的架构是优越的,强调在一些特定的应用或配置中可以提高逻辑密度、性能或可布线性的设计功能。目前,我们不知道任何供应商的LUT是否明显优于任何其他供应商。
然而,FPGA的可用资源不仅仅取决于lut的数量。还必须考虑以下挑战:有效使用的LUT的百分比(我们将在后面讨论设计工具时讨论),以及集成到逻辑模块中的增强功能的数量,这些功能允许以最小的方式实现LUT结构在设计功能中的参与。根据您的设计,您可能会发现更多的内容被塞进一个或多个FPGA,而不管lut的数量是多少。
FPGA之所以“擅长”人工智能推理,主要是因为它可以并行完成大量的算术运算(主要是各种精度的乘法和累加),这归功于大量编织在可编程逻辑结构中的“DSP块阵列”的存在。这使得FPGA能够比传统的冯诺依曼结构的处理器更有效地执行卷积等矩阵运算。
分析了对人工智能推理至关重要的硬件乘法器。Achronix的可变精度乘法器可以实现41K的int-8乘法或82K的int-4乘法。Intel Agilex有一个2K-17K 18×19的乘法器,Xilinx Versal有一个500-3k的“DSP引擎”,很可能是“DSP58切片”,包括一个27x24的乘法器和新的硬件浮点功能。这个比较一定是“从苹果到橘子到芒果”。至于哪种水果更适合你的应用,那就要“由设计师决定”了。
现在,这三家厂商都增强了对浮点乘法的支持。Achronix为他们的DSP模块提供了一种全新的架构,他们称之为“机器学习处理器”(MLP)。每个MLP包含多达32个乘法器/累加器(MAC),4-24位整数模式和各种浮点模式,可支持Bfloat16格式和包括TensorFlow在内的块浮点格式。最重要的是,Achronix MLP公司将嵌入式内存模块与计算单元紧密耦合,使MAC操作可以在750 MHz的频率下运行,同时等待FPGA访问内存以获取数据。
Intel也是用硬件浮点的变精度DSP模块(基本上就好像他们已经提供功能很多年了)。英特尔的浮点支持可能是三者中最广泛和最成熟的。在Agilex的帮助下,他们引入了两种新的浮点模式,即半精度浮点(FP16)和块浮点(Bfloat16),并进行结构调整,使其DSP运算更加高效。
Xilinx已经将其以前的DSP48片升级到DSP 58-可能是因为它们现在包括硬件浮点,并且它们的乘法器已经升级到27×24。因此,在这一代产品中,另外两家厂商也加入了英特尔的行列,提供支持浮点运算的硬件乘法器。对于Xilinx来说,这是一个逆转。Xilinx之前声称在FPGA中实现浮点硬件乘法器并不是一个好主意,因为浮点运算主要用于训练,而FPGA主要用于推理应用。
就可用的浮点格式而言,Versal(最高2.1K乘数)和Agilex(最高8.7K乘数)都支持FP32格式。三个系列都支持半精度(FP 16)-Versal最多支持2.1K乘法器,Agilex最多支持17.1K乘法器,Speedster最多支持5.1K乘法器。Agilex(高达17.1K乘数)和Speedster(高达5.1K乘数)支持Bfloat16。对于FP24格式的浮点乘法,Versal和Agilex可能使用FP32单元,而Speedster的乘法器高达2.6K,Achronix Speedster还支持最高81.9K的块浮点乘法器。
Xilinx还带来了一种新的软件可编程矢量处理器——高达400个1GHz +V LIW-SIMD矢量处理核心阵列,具有增强的计算能力和紧密耦合的内存。这为并行化复杂的向量运算和利用FPGA的丰富计算资源提供了更简单的编程模型。总的来说,Xilinx的“厨房水槽”竞争策略上选择的是“GPU/推理机”。我们稍后将详细讨论这一点。
英特尔对Achronix MLP和Xilinx矢量处理器的回应是一种老派的进化。他们指出,Agilex DSP模块已经实现了与其他供应商的新DSP功能相同的功能。我们可以使用已建立并完全理解的FPGA设计和开发流程,不需要客户将他们的设计划分到各种架构的设备中。如果你的团队在FPGA/RTL设计方面有专长,这是一件好事。但是如果你的应用需要一个软件工程师来开发DSP,Xilinx的软件可编程方法可能更有优势。
除了简单地计算乘数,我们还可以通过查看供应商关于理论性能的陈述来比较这些能力。但需要注意的是,这些说法都被大大夸大了,很难准确定义。供应商通常通过芯片上乘法器的数量乘以这些乘法器的最大工作频率得到一个数,得到一个“最多XX TOPS或TFLOPS”的数。显然,现实世界中的设计不会使用100%乘法器,没有任何设计能够达到这些乘法器的最大理论时钟速率,也没有任何设计能够以合适的速率为这些乘法器持续提供输入数据,而且这些乘法运算的精度因供应商而异。
如果一定要估算的话,我们可以说FPGA在实际设计中实际上可以达到其理论最大值的50-90%。这比GPU要好,GPU被认为在现实世界中仅达到其理论最大值的10-20%。
在估算INT8运算的top数时,如果将133 top纳入其向量处理器,Xilinx Versal以约171 top位居第一。12来自其DSP模块,26来自其逻辑结构。其次是Speedster,大概有86个top,其中61来自他们的MLP模块,25个来自他们的逻辑结构。敏捷xi nt8运算的最大数量为92 TOPS,其中51来自DSP模块,41来自逻辑结构。根据Bfloat16格式的TFLOPS,Agilex以40领先,Versal以9紧随其后,Speedster以8领先。Speedster在块浮点运算上获得了很大的优势,但是它有123 TFLOPS,其次是Agilex的41和Versal的15。
这些数字都来自公司自己的数据表。正如我们提到的,它们是理论上的最大值,在实际应用中是不可能达到的。Achronix的“可用性”的说法有一定的价值,因为他们的MLP是一种独特的设计,旨在将变精度乘法运算保持在模块本身中,并以最大时钟速率运行,无需数据来回遍历逻辑结构来完成AI推理中最常见的运算。同样,Xilinx的向量处理器架构应该能够保持数据顺利地通过算术单元。换句话说,我们还没有看到基准或参考设计以任何有意义的方式证明这些公司的说法。
当然,要使用所有这些lut和乘法器,您需要让您的设计实际布局布线并满足所选芯片的时序要求。随着FPGA的发展,这已经成为一个越来越困难的挑战。单比特网络和逻辑路径通过有限的路由资源分布在一个巨大的芯片上,使得传统的时序收敛逐渐成为噩梦。用于在同步设计中实现时序收敛的传统技术遇到了障碍并且不能被扩展。Xilinx和Achronix都在新一代FPGA中通过增加一个覆盖传统逻辑和路由结构的片上网络(NoC)解决了这个问题。NoC本质上改变了游戏规则,因为整个芯片不再需要在一次巨大的魔法融合中实现时序收敛。现在,更小的同步块可以通过NoC传输数据,减轻了传统路由结构的负担,将庞大的设计自动化工具需要解决的问题分解成更小、更易管理的问题。
几代之前,英特尔采取了另一种方法来解决这个问题——使用大量被称为“HyperFlex寄存器”的微寄存器来平滑整个逻辑结构。这些寄存器允许对更长和更复杂的逻辑路径进行重新定时和流水线操作,从而使整个设计本质上是异步的。有趣的是,这也是Xilinx和Achronix使用NoC的效果。每种方法都面临着挑战,因为这两种方法都会增加芯片设计和我们使用的设计工具的复杂性。据报道,在英特尔的情况下,HyperFlex寄存器对逻辑架构可以实现的整体速度也有一些负面影响。英特尔表示,Agilex FPGA中的HyperFlex架构是第二代,与上一代HyperFlex架构相比有所改进和增强,可以提高性能,简化时序收敛。在Agilex取得进展后,我们还得拭目以待用户使用后的反应。
在Xilinx和Achronix这两家使用NoC进行路由的厂商中,Achronix声称通过其二维跨芯片AXI实现实现了最快的NoC。在这种NoC中,每一行或每一列被实现为两个工作在2 GHz的256位单向AXI通道,也就是说,它可以在每个方向上支持512 Gbps的数据流量。Speedster的NoC***拥有197个节点,最终形成27 Tbps的总带宽,减轻了FPGA中传统逐位路由的资源负担。据我们所知,Xilinx的Versal NoC性能还没有发布,但是大概有28个节点,我们猜测总带宽大概是1.5 Tbps
好了,这周墨水用完了,下周继续——看看这些FPGA系列带来的迷人灵活的内存架构,每个系列独特的封装和定制功能,疯狂的SerDes IO功能,嵌入式处理子系统,设计工具流程等等。
*点击文末阅读原文,即可阅读英文原文。
今天是半导体产业观察分享的第2125期内容。欢迎关注。
半导体行业观察
“半导体第一垂直媒体”
识别二维码,回复下方关键词,阅读更多。
AI |晶圆|台积电|射频|华为|集成电路|TWS耳机|小米
回复投稿,阅读如何成为“半导体行业观察”会员
回复搜索,就能轻松找到你感兴趣的其他文章!
英文原版
!