(原标题:FPGA,老兵不死)
公众号记得加星标,第一时间看推送不会错过。
因为在数据中心受挫,FPGA近年来非常沉寂。但现在,FPGA 在人工智能、高速无线通信、医疗和生命科学技术以及复杂的芯片架构等领域找到了新的应用,它们可以改善数据流。
现场可编程门阵列 (FPGA) 使设计人员能够在芯片部署后重新编程或重新配置数字逻辑,这在人工智能领域至关重要,因为算法的更新速度远超芯片架构的更新速度。FPGA 的前期成本较低,因此可以用作专用集成电路 (ASIC) 等固定功能芯片的原型设计工具,或作为工作负载确定前的临时解决方案。但由于其制造成本较高,FPGA 通常用于小批量、高性能的特殊应用,例如战斗机或实验室测量设备。
尽管如此,FPGA市场仍在不断扩大。新的应用领域包括:
1、基于云的服务器能够将复杂的算法从数据中心卸载到医疗和科学应用中,这些应用涉及 3D 数学;
2、通过混合原型系统进行低成本虚拟硬件验证;
缓解SoC和NoC中的内存和I/O瓶颈;
3、AI 基础设施、数据平面管理以及在数据到达 CPU 或 GPU 之前对其进行准备;
4、为基站和核心网络设备开发的 5G/6G 芯片;
5、通过横向产品差异化提供定制化的硬件功能;
6、防范安全法规和威胁的变化。
高端FPGA的主要大批量用户包括电信公司(无线和有线)、数据中心、网络以及军事、航空航天和政府部门。“这些应用领域的年用量从数千到数十万颗不等,”Altera业务管理集团负责人Venkat Yadavalli表示。“在应用领域方面,FPGA集成了更多功能,例如嵌入式Arm内核和AI张量模块,这提高了FPGA在更广泛的嵌入式和边缘AI应用中的使用率。”
机器人技术是正在蓬勃发展的一个领域,它需要确定性的延迟,并利用来自摄像头和传感器的异构数据在边缘端进行实时决策。“它可以是语音、视频,或者任何需要传感器融合的数据,”Yadavalli说道。
另一个重要的应用场景是医学成像技术,从验光师扫描视网膜到核磁共振成像系统,无所不包。“你需要处理原始的模拟数据,对其进行滤波、处理,并用它来重建图像,还要进行大量的矩阵运算,”AMD自适应和嵌入式产品营销高级经理Rob Bauer表示,“FPGA在这方面表现出色。人工智能引擎非常擅长矩阵运算,因此它们是这类体积成像应用的理想选择。”
在当今快速变化、高度互联且人工智能赋能的环境中,对于设计人员应该使用 FPGA、ASIC 还是其他类型的 IC,并没有一个统一的答案。
Arteris公司产品管理和市场营销副总裁Andy Nightingale表示:“你不会在两种解决方案之间随意切换。 你拥有的是多种方案的组合或融合。互连技术促进并支持FPGA的混合应用,例如用于网络安全或缓解I/O瓶颈。FPGA可以实现原型设计,但客户可能会在系统中保留某些FPGA,他们可能会说:‘我们希望在SoC中使用定制硬件,但我们会保留一些FPGA技术,因为这样做的好处大于定制硬件所需的时间,即使最终发现规范或标准发生了变化。’如果网络安全标准发生变化,他们就必须重新实现和处理,而FPGA可能包含可以重新编程的内容。即使功耗方面会有略高的开销,但它可能不在关键路径上,因此可以绕过这个问题。”
在权衡各种方案时,考虑FPGA中每个逻辑单元的成本很有帮助。“与ASIC相比,你需要一些架构设计才能获得成本效益,”Yadavalli说道。“与ASIC或ASSP相比,你总会略微处于劣势,因为它们的功能是固定的,经过精心设计和优化,只实现你所需的功能,而不是让你自己创建所有可编程性。在这种情况下,你在实现以太网或PCIe方面会有一些额外的开销。你可以切换所有这些功能。你需要所有这些电路,而这会带来成本。最终取决于投资回报率,以及市场是否已经稳定到你需要ASIC的地步。”
这关乎于在设计上做出权衡,以解决特定问题。“如果你观察FPGA的用户,你会发现他们正试图完成越来越复杂的任务,”Bauer说道。“在物理人工智能领域,人们正尝试将人工智能集成到边缘系统中,从传感器获取数据并立即进行处理,延迟极低。数据速率在不断提高,安全要求也在不断提高。这是一个优化问题。”
不断发展的算法
AI/ML 模型是一个不断变化的目标,虽然可以重新编程 FPGA 来匹配它们,但随着情况的变化,选择最佳芯片是一个循环过程。
“如果工作负载经常变化,那么我需要通用计算,” Movellus首席执行官 Mo Faisal 表示。“我可以进行更多优化,并将其性能发挥到极致。但最终你会意识到,‘这种高度灵活的通用计算不再有价值。我需要进行定制。我们正处于一个周期,我的问题陈述变化如此之大,以至于我可能通过采用可重编程计算获得更多收益。’最终,我们会耗尽这方面的潜力,回到过去 ASIC 和 FPGA 的发展历程。当然,你可以开发专门针对 FPGA 的特定算法。例如,如果你想谈谈粒子加速器的规模,他们使用 10,000 个 FPGA 来处理以特定速率输出的数据。但如果你想大规模地实现这一点,目前只有 CERN 和费米实验室。如果你想要 10,000 个 FPGA 呢?你需要重新考虑 FPGA。”
其他人也认为这需要具体情况具体分析。“是否使用可编程FPGA取决于你面临的工作负载类型,软件开发也是如此,” ChipAgents研究主管Kexun Zhang表示。“生命科学领域的研究人员正在设计不同的模型架构。我看到一些领域和方向的模型架构探索远未趋于一致,这就是为什么人们仍然需要编译器,仍然需要硬件以合理的速度运行其定制的模型架构。而FPGA正是在这些领域大放异彩。”
对于消费市场和其他大众市场而言,成本和效率结构并不合理。“在数据中心,原型设计或针对非常具体的AI变更,或许能从中受益,” Baya Systems首席商务官Nandan Nayampally表示。“例如,如果你从事高频交易,算法会定期变更,那么就需要进行优化。如果我没有足够的业务量或成本来支持ASIC,那么我可能会坚持使用FPGA。许多新型AI架构都采用可编程组件和可编程引擎,集成在同一芯片或多个芯片上,这既能提高效率,又能保持灵活性。”
在FPGA上,可以根据FPGA的规模,构建尽可能多的硬连线并行计算单元,只要资源允许即可。“与通用GPU核心相比,FPGA可以根据您的应用进行定制,”Nightingale说道,“您还可以自定义并行度。”
用于复杂算法和验证的
虚拟 FPGA 机器
基于云的 FPGA 也可用于将计算密集型工作负载从数据中心卸载,例如,通过使用 Amazon Web Services EC2 虚拟服务器。“你可以访问 AWS 并配置一台虚拟机,”西门子 EDA项目总监 Russell Klein 表示。“这是一台物理机,它配备了所谓的 F2 实例。它内置一张 PCIe 卡,上面有八个 Xilinx FPGA,所有这些 FPGA 都可以通过 PCIe 总线与主处理器进行编程。我一直在与他们合作,利用我们的高级综合工具来对这些 F1 实例进行编程,并告诉他们:‘这里有一个函数,让我们通过 PCIe 总线将其推送到 FPGA 架构上。’我们刚刚实现了这个功能,我可以获取一个函数,通过我们的高级综合工具对其进行编译,然后通过 Xilinx 工具将其与处理器上运行的软件进行交互。”
此外,F2实例还被用于卸载非常复杂的算法。“他们主要在生命科学领域看到这种应用——从事DNA分析或化学反应分析的人员需要处理非常复杂的3D数学运算,他们负责对FPGA进行编程,并让FPGA与主机上运行的处理器进行交互,”Klein说道。“他们可以通过PCIe连接将所有这些设备连接起来,从而加速这些非常复杂的算法。我们将在人工智能领域看到这种应用的广泛普及,因为它速度更快、能耗更低。这显然是构建更快、更高效的推理和训练环境的下一步。这种能力已经具备,我们需要让整个行业开始利用它。”
F2实例的另一个应用场景是低成本硬件验证。“SiFive刚成立的时候,他们需要在RISC-V设计上启动操作系统,才能制造芯片,”Klein说道。“他们想把这作为验证步骤。他们没有购买FPGA原型系统,而是以每小时6美元的价格在AWS上租用FPGA板。他们可以将一个CPU实例集成到一个芯片上,然后通过编程到多个FPGA和多个板卡上,运行多CPU、多核设计。他们利用这些数据中心CPU搭建了自己的低成本仿真器。AWS对此非常感兴趣,并为此开发了相关工具,能够利用系统中的FPGA架构建模部分进行逻辑仿真。他们可以将所有这些功能结合起来运行,速度更快。这就像一个混合FPGA原型系统。”
整张卡都连接到服务器上的一个处理器。“他们会在一台服务器上插入多张这样的卡,每张卡都插在不同的 PCIe 插槽中,这样就可以将多个程序连接到多张卡上,”Klein解释说。“你可以非常快速地启动和关闭它。这些是数据中心的 FPGA 卡,可以加速硬件验证、生物科学和人工智能的发展。这是一种应对我们当今计算挑战的可行技术。”
与此同时,FPGA正在助力实现左移设计。“如果你看看人工智能驱动下的新芯片开发呈爆炸式增长,以及2nm等先进制程节点的成本,就会发现确保设计正确性比以往任何时候都更加重要,”AMD的Bauer表示。“软件工程团队可以利用这些仿真原型平台,在最终ASIC芯片流片之前就开发出相应的软件。”
减少瓶颈,数据准备
FPGA 还可以通过优化数据传输来帮助减少 SoC 和芯片中的内存和 I/O 瓶颈,从而节省数据中心的功耗并提高性能。
Altera 近期选择 Arteris 来协助解决这个问题。“FPGA 可以直接放置在数据路径中来管理数据流,从而最大限度地减少缓冲,优化吞吐量,”Nightingale 表示。“通过在线管理数据,FPGA 可以对传入的数据进行预处理,这减轻了 CPU、GPU 或其他处理单元的工作量,从而缓解了 AI 系统性能中最主要的瓶颈。因此,出现的内存和 I/O 瓶颈也得以减少。”
这与在线处理类似,即将FPGA直接嵌入到数据流中。“由于如今这些设备的容量都非常大,你可以在数据流经的同时对同一批数据进行更多处理,”Nightingale说道。“我们看到FPGA技术贯穿整个数据传输过程,与数据处理紧密结合。”
在数据中心,FPGA 被用作带有本地内存的智能网卡。“你会遇到非常庞大的网状拓扑结构,必须能够快速地将数据从一个点移动到另一个点,”Bauer 说。“FPGA 的可重构特性,加上其超高速的连接性、内存容量和低延迟,使其非常适合与 AI 计算单元(无论是 GPU 还是 ASIC)并排使用。这样,客户就可以精确地定义数据的移动位置。我们将大容量内存直接放置在计算单元旁边。在 AI 应用中,内存和计算单元的邻近性至关重要。这才是高端应用。”
另一方面,GPU集群或服务器主板上也使用非常小的FPGA,用于执行板级编排、管理和电源时序控制。“我们称之为服务器I/O类型的用例,”Bauer说道。“服务器上的FPGA控制着各个板级,确保所有组件都能正确供电。此外,还有FPGA负责将数据传输到内存以及在不同的计算单元之间进行通信。”
FPGA 的另一个新角色是 AI 基础设施,它需要处理进入 GPU 或 CPU 的基础设施数据。“数据进入系统后,这些数据包的管理方式具有很高的可编程性,”Yadavalli 说。“你需要一种更智能的方式来管理网络接口卡、智能网卡功能,或者某种数据平面管理,这些都需要在数据进入 CPU 或 GPU 之前完成。FPGA 的作用就在于接收这些数据,并以一种能够被后端所有大型 GPU 和 CPU 使用的方式对其进行预处理。”
数据预处理和清洗是另一个新兴领域。人工智能应用的效果取决于数据的质量。“你可能拥有最先进的模型或逻辑层模型(LLM),但如果数据本身噪声很大,无论是业务数据还是任何商业数据,都会出现‘垃圾进,垃圾出’的情况,”Yadavalli说道。“数据预处理是指将所有输入的信息自动转换为标准格式。你可以输入PPT、语音命令、文本等等。另一方面,逻辑层模型只能处理某些特定的原始数据,这些数据需要经过特殊处理才能提供最佳信息。FPGA恰好非常适合这项工作,它们可以对这些输入的多样化数据进行空间处理。”
无线通信基础设施
5G、6G、Open RAN 和基带应用等通信协议是 FPGA 的重要市场,Altera 和 BigCat 近期 合作 ,旨在扩展基于 FPGA 的无线接入网技术。“随着无线标准的演进,前四到五年的部署周期通常都采用 FPGA,”Arteris 的 Yadavalli 表示。“由于标准尚未完全定型,像 Erickson、诺基亚、三星以及全球其他大型设备供应商都无法及时开发出 ASIC。你需要提前两年预购整个规范,才能着手开发 ASIC。一旦规范最终确定,你就需要这些芯片能够及时上市,以便将网络过渡到下一代技术。”
人工智能算法在网络领域也在快速发展,这为FPGA带来了机遇。“在6G领域,与网络相关的AI处理技术正在被广泛讨论,但目前还没有标准化的方案,而且人们对6G的部署时间也充满疑虑,”Yadavalli说道。“很多人可能会在某些方面落后、领先或误入歧途。他们需要在AI计算方面具备灵活性。此外,还有各种规模的计算机。有些计算机可以真正将计算推向基带,那里已经搭建了大型云平台。但也有很多技术部署在无线电侧,以及位于大型天线下方的基带设备。这些都需要FPGA作为辅助组件。”
在5G领域,AMD的自适应SoC在波束成形应用中的使用量显著增加。“这是标准推广推广的重要组成部分,”Bauer说道。
横向产品差异化
垂直整合的公司可以将特定的加速器或功能集成到专用集成电路(ASIC)中,但该行业的大部分业务都是横向整合的。一家生产各种嵌入式处理器的公司不太可能开发固定的加速器功能,因为这会缩小其整体市场机会。
西门子Klein表示:“这些公司可以将嵌入式FPGA架构集成到他们的设备中,或者使他们的SoC能够与外部FPGA连接。我们看到很多制造商都开始这样做。这可以为他们的系统提供定制化的硬件功能。虽然它比ASIC级别的实现方式体积更大、功耗更高,但比软件实现方式速度更快、能效更高。”
例如,如果一家公司希望可穿戴设备的电池无需充电即可续航一周,他们就必须考虑将部分功能从处理器上转移出去。“如果他们要进行横向整合,并且不自行研发SoC,那么他们就需要可编程逻辑来转移部分功能,”Klein解释说。“无论这种可编程逻辑是嵌入在他们购买的SoC中,还是作为独立的组件单独使用,FPGA都能帮助他们实现更高的性能和更低的能耗。”
嵌入式FPGA还能够通过稀疏性和混淆来保护某些知识产权。“也许某个软件开发商或软件程序拥有自己的秘密算法,”QuickLogic的知识产权销售副总裁Andy Jaros说道,“他们希望拥有一个与之配套的硬件加速器。他们开发了算法,并将其放置在ASIC上的eFPGA中,而无需与任何人共享。”
安全威胁
尽管 FPGA 可以重新编程以应对不断变化的法规和日益增长的威胁(例如量子黑客的幽灵),但人们仍然担忧新兴的安全威胁。
“我们看到FPGA的应用日益广泛,旨在确保这些系统上运行的代码的真实性,并防止篡改,”Bauer说道。“此外,对于数据的在线加密,一些客户拥有自己的专有技术,而可编程逻辑非常适合这些技术。其他客户则对我们已经集成的标准方法感到满意。我们拥有用于实现端到端在线加密的硬加密模块。”
其他应用场景包括无线或有线连接以及防火墙。“人们正在使用FPGA进行基于人工智能的数据包检测,以查找威胁,”Bauer说。“你需要高速连接,然后还需要将模型直接集成到网络架构中。”
然而,也存在一些缺点。“独立式和嵌入式FPGA提供了极大的灵活性,但如果比特流配置数据的机密性和完整性管理不当,尤其是在数据中心等共享环境中,这种优势可能会带来安全风险,” Rambus公司硅IP高级技术总监Scott Best表示。“与数据中心ASIC和SoC为不同用户运行半独立虚拟机所面临的风险类似,数据中心FPGA也需要强大的配置和访问控制,以防止在用户共享可编程架构时发生未经授权的重新编程或侧信道攻击。”
现在许多FPGA都内置了加密系统。“代表FPGA编程的比特流的保护措施已经有所改进。但它们仍然是攻击者最热衷的目标,攻击者试图以此声称自己已经入侵了系统,修改了程序的一个比特位,将其传输到FPGA上并使其运行,” Synopsys 产品管理高级总监Dana Neustadter说道。他指出,攻击FPGA与安全启动等技术类似。“在处理器领域,我们使用安全启动来确保处理器上运行的是正确的程序。在FPGA领域,同样的任务由加密和认证引擎来完成,该引擎会验证FPGA的编程。”
结论
FPGA 前期成本低,因此仍将作为原型设计工具发挥作用,但在当今高科技领域,它们也正在承担越来越多的新角色。为了跟上人工智能的发展步伐并抵御黑客攻击,设计人员可能会认为最佳解决方案是将固定功能器件和可编程器件混合使用。
(来 源 : 内容 编译自 semiengineerin)
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4239期内容,欢迎关注。
加星标第一时间看推送,小号防走丢
求推荐










