[原创] 三强争霸高端FPGA(三):软件成主战场

2019-11-13
14:00:05
来源: 半导体行业观察

 
来源:内容由半导体行业观察(ID:icbank)编译自「 eejournal 」, 作者: Kevin Morris,谢谢。
 
在本系列的第1部分 《三强争霸高端FPGA(一)》 中,我们研究了来自Xilinx、英特尔和Achronix的新型高端FPGA系列,并讨论了它们的底层半导体工艺、可编程逻辑LUT结构的类型和数量、DSP/算术资源的类型和数量以及它们对AI推理加速任务的适用性、声称的TOPS/FLOPS性能能力,以及片上互连,如FPGA布线资源和片上网络(NOC)。在第2部分 《三强争霸高端FPGA(二): 内存,I/O和自定义》 中,我们讨论了内存架构、封装内集成架构和高速串行IO功能。从这些比较中可以清楚地看出,这些芯片是有史以来开发的最复杂、最精密的芯片,这场战斗涉及到很高的风险,每个供应商都带来了一些独特的价值,没有明显的赢家或输家。

 

在这一部分中,我们将探讨最重要的因素——设计工具,它允许工程团队利用这些器件的强大功能。事实证明,可编程逻辑的灵活性和强大功能既是其最大的资产,也是其最大的局限。FPGA不是处理器,即便它们最吸引人的用途之一是加速计算。纯软件背景的工程师往往无法认识到使用这些器件背后的复杂性,以及需要漫长的学习过程才能足够熟练使用FPGA。与传统的冯·诺依曼处理器不同,FPGA不是软件可编程的——至少在传统意义上不是这样。

 

充分利用FPGA需要设计数字逻辑,尽管已经取得了几十年的进步,但我们还没有达到让一个设计人员在不具备一定程度的硬件专业知识的时就可以优化使用FPGA的地步。然而,对于这种说法,有几点需要注意。首先,在处理了很多年FPGA设计的庞大(且不断增加)的复杂性之后,FPGA供应商提出了一些技巧来缓解这个问题。最简单和最重要的是使用预先设计好的单功能加速器和应用。对于某些常见的应用,FPGA公司已经帮你完成了设计——这些设计是由专家优化和调整后的逻辑,以获得最佳性能、功耗和利用率。如果你碰巧正在做这些应用之一,那么你可能永远不会知道你正在使用FPGA。它只是静静地呆在后台,让你的系统变得更好。在以后的文章中,当我们讨论这些器件的营销和分销时,我们将对此进行更详细的讨论。

 

减少所需设计专业知识的第二种方法是提高设计的抽象级别。通过创建允许在更高级别进行设计的工具,FPGA供应商减少了在寄存器传输级进行详细设计的需求,从而大大简化了流程。我们将在后文中详细讨论这一点。

 

但是,不管实际情况如何,今天的FPGA公司主要面向三种不同的受众或专业领域。具有HDL技能的数字硬件工程师、软件工程师,以及最近的AI/机器学习工程师。每一个用户群体中都将从FPGA技术的应用中获得巨大的收益,但是为每一类群体提供符合他们需求的工具来合理利用FPGA是一项艰巨的任务。

 

要打开FPGA工具和IP的广阔前景,我们应该从核心开始,即唯一定义FPGA的部分——查找表(LUT)结构。在现代,FPGA的发展就像瑞士军刀或智能手机一样。瑞士军刀的“刀”部分已经成为其具备能力的一小部分,但我们仍然称它们为“刀”。另外一个例子是智能手机的“手机”功能正变得越来越小,但我们仍然称它们为“手机”。FPGA中的LUT结构仅是这些惊人器件所提供价值的一小部分,但是LUT结构是唯一赋予FPGA强大功能的东西。

 

Xilinx指出,他们的“ACAP”器件不需要配置LUT结构,甚至根本不需要使用LUT结构,就可以引导和使用他们的Versal器件。这是他们声称Versal器件不是FPGA,而是一个新类别的很大一部分基础。但是,所有这些器件在功能和任务方面有足够的共同点,可以进行比较。并且Versal不太可能在完全不使用FPGA架构的许多应用中找到归宿。

 

[原创] 三强争霸高端FPGA(三):软件成主战场

一切始于HDL设计

 

FPGA领域中最低级别的设计工具是布局(place)和布线(route)。此过程获取互连LUT的网络表(以及这些LUT的配置),以求用接近最佳的方式将其排列在芯片上,并通过可编程互连结构进行所需的连接。布局和布线是FPGA实现的核心和灵魂。随着器件越来越大,两个趋势影响了布局和布线过程。首先,(相对于逻辑而言),用于互连的芯片部分必须增加,以使大型设计能够成功地进行布线。当然,FPGA公司不喜欢为布线分配大量的硅,因为这意味着他们器件上的逻辑更少。你从没见过供应商吹嘘他们提供的巨大布线资源,但LUT计数通常是最重要的。因此,最大化LUT和最小化布线是数据表营销的基础。

 

为了最大限度地减少布线资源消耗的芯片面积,FPGA公司在芯片设计过程中进行了详尽的探讨,在芯片开发的多次迭代中布局和布线了无数真实的设计,以便在大多数用户设计能够利用芯片上的大量逻辑资源同时不会在布线过程中失败。如果它们分配的布线资源太少,芯片上的大量逻辑将无法使用。这种情况在过去发生过,因为FPGA公司发布过利用率只有60%左右的常规布线芯片,这使得芯片远远低于他们在所宣传的能力。相反,如果分配给布线的硅太多,那么在相同的硅片面积中,芯片的逻辑密度将低于竞争对手。

 

显然,如果布局和布线算法的性能越好,完成大多数设计所需的布线资源就越少。因此,布局布线算法的性能一直影响到器件本身的设计。

 

影响布局和布线的第二个趋势是,逻辑路径中延迟的主导因素已经从“逻辑”延迟转移到“互连”延迟。这对设计流程有深远的影响,因为逻辑综合过程不能再独立于与布线/互连相关的延迟进行时序分析。这意味着逻辑综合和布局布线必须紧密结合在一起——布局信息决定布线延迟,而这些布线延迟被反馈回来,在促使逻辑路径的构建中做出不同的决策。在今天的世界中,逻辑综合和布局和布线通常在一个(通常是迭代的)步骤中绑定在一起,这个步骤对逻辑和布局的各种解决方案进行评估和比较,直到找到满足诸如定时、设计区域和功耗等关键目标的结果。

 

三家公司都为合成和布局布线提供了强大的工具集,这些工具集是传统FPGA用户(即上文提到的“具有HDL技能的数字硬件工程师”)的基本盘。

 

Xilinx在2012年彻底修改了当时老化的ISE工具套件,从而创建了Vivado。7年后,Vivado已经相当成熟,成为一个相对健壮、可靠的平台,其架构总体上做得很好,跟上了FPGA业务的快速升级步伐。Vivado的逻辑合成和布局布线算法是最先进的,而且在当今庞大的设计中很好地处理了编译时间和内存占用。Vivado可以通过TCL进行自定义,提供了大量的控制和自定义能力。Vivado还包含一个仿真器和一个IP集成工具。

 

Xilinx在他们的工具和FPGA架构之间进行了广泛的迭代,以找到布线和逻辑资源方面的最佳点,从而允许他们的器件与他们的工具实现一致的高利用率,并在时序收敛(timing closure)方面获得可靠的结果。在三家供应商中,Xilinx在布局和时序收敛方面是最“老派”的,而英特尔和Achronix都在其器件架构中采取了一些新颖的架构步骤,以帮助在当今的大型复杂设计上实现时序收敛。

 

然而,Xilinx也在FPGA领域的高级综合(HLS)方面处于领先地位,而Vivado HLS是(我们相信到目前为止)业界使用最多的HLS工具,支持C/C++生成逻辑门的流程,供硬件设计人员寻求超越寄存器传输级别(RTL)的生产力。Xilinx的HLS工具的高采用率也有助于解决时序收敛问题,因为从HLS工具自动生成的RTL在时序收敛方面的表现往往比手写的RTL表现得更好。

 

英特尔的Quartus Prime Pro是Altera Quartus设计工具套件的演进,该设计工具套件在过去20年中一直是其FPGA设计的旗舰产品。正如我们之前提到的,英特尔在几代前使用他们所称的“HyperFlex”架构更新了芯片——本质上是用大量小寄存器覆盖器件,以便于工具对关键逻辑路径进行即时重新定时。这使得复杂设计的时序收敛更加容易,但可能会以牺牲一些整体性能为代价。

 

最近,英特尔在Quartus中增加了一种名为“分形综合”(Fractal Synthesis)的可选策略,用于诸如算术运算量大或乘法器小的机器学习算法等设计。英特尔表示,微软在他们(为必应搜索提供动力)的“脑波”项目中使用分形综合技术,让Stratix 10器件达到92%的最高性能。最近添加的另一项功能是Design Assistant设计规则检查(DRC),它有助于查找约束和放置网络表中的问题,以减少时序收敛所需的迭代次数。

 

英特尔加入HLS的时间比Xilinx晚得多,但他们现在将英特尔HLS编译器包含在Quartus套件中。该HLS编译器采用untimed C++作为输入,并生成针对英特尔FPGA进行优化的RTL代码。虽然英特尔的HLS工具在该领域的使用量远远低于Xilinx的Vivado HLS,但我们预计随着HLS编译器为英特尔One API软件开发平台的“FPGA”分支提供支持,我们预计这一工具会被大量采用。目前看来,英特尔的HLS工具可能比Xilinx的更倾向于由软件工程师来使用(对于硬件设计者来说,Xilinx显然是一个强大的工具)。

 

Achronix的ACE工具套件依赖于第三方工具进行仿真和综合。ACE套件中包含OEM版本的Synopsys Synplify Pro,它包括高级布局规划和关键路径分析功能,以帮助时序收敛。然而,凭借Speedster7t,Achronix采用了独特的方法来实现片上网络(NoC)的时序收敛。NoC“使设计人员能够以高达2GHz的速度在FPGA结构的任何地方传输数据,而无需使用逻辑资源。这也意味着,在布局和布线用户设计时,它将比传统FPGA消耗更少的宝贵FPGA布线资源,而传统FPGA必须专门使用LUT来布线器件内的信号。

 

由于加速工作负载通常涉及多位路径的大量“总线”布线,Achronix还引入了基于字节(或半字节)的布线,以进一步改善时序收敛。这些是额外的布线资源,可以在移动数据字且不需要位交换时使用。

 

对于Achronix进军HLS而言,Achronix与Mentor合作,后者的Catapult-C可能是市场上最成熟的ASIC HLS工具。Catapult-C具有工业实力,而且价格适中。Catapult-C将允许完整的C / C ++流向Speedster7t FPGA——通常的警告是HLS仍然是为硬件工程师设计的工具,用于提高生产率和结果的质量,而不是软件工程师能够直接使用的硬件设计工具。Catapult-C应该可以在5G应用以及优化加速工作负载(如AI推理)方面大放异彩。

 

[原创] 三强争霸高端FPGA(三):软件成主战场

软件开发人员的切入点

 

在过去的20年里(自从Altera推出他们命运多舛的“Excalibur”系列以来),许多高端FPGA除了其LUT结构外,还包含了传统的冯·诺依曼结构(Von Neumann)处理器。这些处理器的范围从用LUT实现的“软”微控制器到复杂的“硬”多核64位处理子系统以及外设。这些FPGA都可以被归为“片上系统”(systems on chip,简称SoC)。随着这种趋势的发展,设计问题变得更加复杂,因为我们现在需要工具来支持软件工程师开发在当今FPGA中所嵌入的处理器子系统上运行的应用程序。

 

多年来,这意味着FPGA SoC项目需要团队中同时具备硬件和软件专家。但随着FPGA公司努力将他们的芯片打入新的市场,他们也在努力减少对HDL/硬件专业知识的依赖。今天,他们正在努力提供软件开发工具套件,这不仅使软件工程师能够开发在嵌入式处理子系统上运行的代码,而且还允许这些软件工程师创建利用FPGA结构来加速他们应用的加速器。

 

正如我们最近所写的,Xilinx刚刚发布了他们的Vitis统一平台,该平台旨在帮助软件工程师(以及用“Vitis AI”为切入点的AI开发人员)使用Xilinx器件加速特定应用。Xilinx表示,Vitis“为加速主机CPU、嵌入式CPU和混合(主机+嵌入式)应用提供了统一的编程模型。除了核心开发工具外,Vitis还提供一套丰富的硬件加速库,为基于Xilinx器件的硬件平台进行了预优化。”

 

Vitis可能代表了Xilinx的一种行为和理念上的转变,(Xilinx在历史上一直以吞噬自己的生态系统而闻名),它“致力于开源和社区参与”。Xilinx表示,他们所有的硬件加速库都发布在GitHub上,他们的runtime、XRT也是开源的。当然,所有这些开源软件仍然是以Xilinx硬件为最终载体的软件,修改它以应用到竞争对手的器件上可能是一项相当浩大的任务。再加上Vitis是免费提供的,这无疑是公司朝着正确方向迈出的一大步,并为非传统用户(如CUDA开发人员)使用FPGA开辟了便捷通道。

 

英特尔的One API的设计目标与Xilinx的Vitis相似,但目标更广泛。由于英特尔计算产品组合非常广泛——heavy-iron Xeon处理器、GPU、 FPGA、专用AI引擎(如Nervana和Movidius等)——英特尔正在制定一个雄心勃勃的目标,即软件开发的单一入口点,涵盖英特尔所谓的“SVMS架构”(标量、矢量、矩阵、空间等四种不同的运算,部署在CPU、GPU、NNP和FPGA中)。英特尔表示,One API“承诺通过将数据从主机到FPGA再返回的DMA抽象出来,从而消除FPGA上实现硬件加速器目前存在的准入障碍——这种数据流动的过程在基于HDL的设计流程中是非常依赖于手工、乏味且容易出错的。One API还与英特尔的HLS编译器和英特尔OpenCL SDK for FPGA共享FPGA的后台的基础设施,使目前使用这些工具的开发人员可以轻松地迁移到One API。”

 

Intel提醒我们要注意,“FPGA开发人员需要修改他们的代码以获得FPGA上的最佳性能,或者使用为具备空间计算特性的FPGA架构预先优化过的库。软件开发人员必须接受FPGA方面的培训,以充分利用FPGA特殊架构加速带来的性能优势,实现架构间的可移植性。”

 

感谢Intel-wan。我们都渴望接受FPGA方面的培训。

 

One API将使用一种称为“数据并行 C++”(DPC++)的新编程语言以及API调用。One API将包含适用于各种工作负载域的API库,还将包括为DPC++量身定制的增强了的分析和调试工具。

 

使英特尔产品与众不同的一个功能是,它们在XEON-scalable处理器与FPGA加速器之间优化了低延迟和缓存一致性UPI(以及将来的CXL)接口。英特尔表示,这种功能“使虚拟化、人工智能和大型内存数据库等应用程序能够在更高的级别上执行,而不是依赖于传统的PCIe连接。”

 

在让软件开发人员能够直接利用FPGA加速方面,与规模更大、更多样化的竞争对手相比,Achronix处于劣势。该公司正在通过各种合作伙伴关系开发一个生态系统,但它们可能主要针对具有使用FPGA所需的硬件专业知识的设计团队,以及Achronix生态系统已经拥有的预优化解决方案和参考设计的应用。

 

[原创] 三强争霸高端FPGA(三):软件成主战场

随着人工智能接管世界……

 

最近,人工智能已经成为FPGA的一个新的“杀手级应用”。正如我们在上一期文章中讨论的那样,FPGA具有极好的能力来动态地创建定制化的处理引擎,以适应特定人工智能推理应用的需要。但这也创造了一种新的用户——AI/ML工程师。这第三个目标受众带来了他们自己的一套工具流需求,以期利用FPGA的强大功能。这些人需要开发工具能支持TensorFlow、Caffe和他们所在行业的其他前端工具,以及将这些工具产生的结果转化为被合理优化后的基于FPGA的解决方案的技术途径。

 

作为Vitis统一软件平台发布的一部分,Xilinx还发布了Vitis AI,正如人们可能猜到的那样,这是一个针对人工智能和数据科学家的插件。它允许直接从标准框架(如TensorFlow)直接编译AI模型。Vitis AI可以实例化Xilinx在FPGA架构或Versal器件的AI引擎中称为域特定处理单元(DPU)的功能。这种方法的一个关键(且引人注目的)优势是,Vitis AI将AI模型编译为DPU的操作码,因此,无需重新布局和布线即可在几分钟甚至几秒钟内下载并运行新的模型。与大多数将FPGA配置作为开发流程一部分的方法相比,这使得迭代时间和实际工作负载调配变得更加简单和快捷。Vitis AI还利用Xilinx的剪枝技术来帮助优化推理模型。

 

英特尔对其面向AI开发人员的One API采取了类似的方法(实际上,顺序颠倒了),英特尔发布了Open VINO工具包。英特尔的版本为AI开发人员提供了该公司所说的“一个单一的工具包,可以加速他们在包括英特尔FPGA在内的多个硬件平台上的部署解决方案。”英特尔表示,OpnVINO可以将AI开发人员和数据科学家从TensorFlow和Caffe等框架直接带到硬件,而不需要具备任何FPGA知识。

 

英特尔的解决方案支持各种流行的神经网络,还允许创建自定义网络。它们还包括定制API,供FPGA开发人员改变其应用的引擎。英特尔表示,通过为应用的特定数据流和模块定制AI引擎,可以获得数量级的性能提升。

 

定制流程还包括英特尔所称的AI+,适用于除AI之外还需要其他功能的应用。例如允许应用程序开发人员利用FPGA结构的灵活性来启用()AI+预处理,将CPU从执行任务中解放出来,并减少整体系统延迟。

 

Achronix为TensorFlow等框架提供低级机器学习库功能,并支持高级框架。它们既支持“覆盖架构”,也支持将数据图从高级框架直接映射到FPGA逻辑。该公司表示,“覆盖”是“专门针对一个或多个ML网络进行优化的应用处理器,其中硬件以可重新编程逻辑实例化,并且特定网络以运行在该硬件实例上的微码实现”。这意味着可以通过改变软件,或通过改变硬件和软件两者来修改覆盖实现的功能,而直接映射数据图需要完全或部分地重新配置FPGA结构。Achronix的方法本质上允许你根据所需的时间和专业知识来确定所需的优化范畴。

 

正如你所看到的,这些复杂的可编程逻辑器件所使用的开发工具和技术的范围和规模是巨大的,而我们在这里仅仅触及到了皮毛。看看哪些能力与众不同将会很有趣,因为我们相信基于开发流程而不是基于硬件本身的功能将会赢得更多的硬件插槽。

 

下一次,我们将了解IP和参考设计的庞大生态系统,以及预集成的电路板和模块。这些电路板和模块可以推动这些复杂的器件进入高价值的应用中,在这些应用中,并不总是有足够的工程资源用于全面的优化开发。
 
 

*点击文末阅读原文,可阅读 英文 原文。

 

*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。

 

今天是《半导体行业观察》为您分享的第2127期内容,欢迎关注。

推荐阅读

 

谁抓住了半导体业转折窗口期的机遇?

三强争霸高端FPGA(一)

一位本土射频芯片创业者的自述!

 

半导体行业观察

[原创] 三强争霸高端FPGA(三):软件成主战场
 

半导体第一垂直媒体

实时 专业 原创 深度

 

识别二维码 ,回复下方关键词,阅读更多

AI| 晶圆 |台积电 |射频 |华为 集成电路 TWS耳机|小米

 

 

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

[原创] 三强争霸高端FPGA(三):软件成主战场
 
 
点击这里,可阅读
英文原文

原创文章,作者:admin,如若转载,请注明出处:http://www.eefans.com/archives/705

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注