中文 英语

ML为fpga打开了新的大门

可编程性将机器学习应用程序的部分负担从硬件工程师转移到软件开发人员。

受欢迎程度

fpga长期以来一直被用于任何新的数字技术的早期阶段,因为它们可以用于原型设计和快速发展。但通过机器学习,fpga显示出了比传统解决方案更大的优势。

这开辟了一个热门的新市场fpga传统上,由于价格的原因,这种电池很难维持在大批量生产中,也很难用于电池驱动和其他低功耗应用。它们的主要好处仍然是灵活性,这对于一个多变的行业来说是非常重要的机器学习(毫升)。不仅应用程序在一般情况下会发生变化,而且网络和模型也会随着不断的训练增加进一步的细化而迅速变化。不同的供应商有不同的解决方法。

“gpu、fpga和asic之间的竞争仍在继续,”英特尔市场开发经理Anoop Saha表示Mentor是西门子旗下的企业.“如果FPGA供应商不提供(工具),那么他们就没有机会。”

第一个ML实现是面向软件的,利用了cpu和gpu。他们面临的挑战是极高的能源消耗——即使对于数据中心也是如此。“人们试图更快地在软件方面进行创新,但很难处理强大的电源,”英特尔公司的总经理兼产品营销、FPGA和电源产品副总裁帕特里克·多尔西(Patrick Dorsey)说英特尔的可编程解决方案组。

因此,fpga提供了比软件可编程的更有吸引力的电源解决方案。该公司副总裁Shakeel Peera表示:“由于并行性,fpga在高性能、低功耗应用方面做得更好芯片的FPGA事业部。

他并不孤单。英特尔的多尔西说:“我们看到FPGA中的TOPS/W优于英伟达。”

fpga还提供低延迟和确定性性能,这是基于软件的解决方案难以实现的。该公司战略和规划高级总监Mike Fitton表示:“asic大约有5个TOPS/W, fpga有1到2个TOPS/WAchronix.在这种情况下,与基于软件的方法相比,性能不会以功耗为代价。

对于商品应用来说,价格仍然是一个问题,但很少有ML应用达到这个阶段,因为模型发展得如此之快。英特尔人工智能和软件产品营销总监尼克•尼(Nick Ni)表示:“fpga对大宗商品不利赛灵思公司.“例如,一些固定摄像机的算法正变得越来越成熟。”

但目前这种情况并不常见。多尔西说:“在人工智能领域,我们看到fpga仍在生产中。然而,这并不意味着成本不重要。多尔西指出:“成本是巨大的。人们会问,‘我的TCO(总拥有成本)是多少?’”

虽然灵活的解决方案在市场发展的早期占据主导地位,但通常的后续措施是将特定于应用程序的标准产品(assp)引入市场,以提供更好的性能、功率和/或成本效益。许多assp正在开发中。

不过,这些assp也面临着艰难的平衡。它们必须带来计算效率,同时不采用过于僵化的架构。大多数这些努力都是针对边缘的推理,在今天的解决方案和这些新的芯片之间,在市场确定一组首选解决方案之前,可能会有很多碎片化。

数据中心、边缘和两者之间
fpga已经在数据中心找到了一个家,作为卸载基于CPU和gpu的推理引擎的加速工具。训练尤其如此,训练总是在数据中心进行,但它们也用于推断。

在光谱的另一端,边缘是大多数行动的地方-特别是对于汽车应用。这些应用对成本和功率更加敏感,但考虑到生产中缺乏ASSP解决方案以及设计的快速变化,fpga可以很好地与处理器竞争。“fpga在边缘具有优势。当涉及到TOPS/W时,FPGA很难出错,”Mentor的Saha说。

与此同时,在Synopsys所称的“积累”市场——位于边缘和数据中心之间的网络上的路由器和交换机等设备——机会正在增长。这个市场一直对fpga很友好,在许多情况下,目标是将ML功能添加到已经存在的fpga中。英特尔的多尔西说:“有很多现有的应用程序,他们只是想给它增加一些智能。”“现在,30%到40%的经典嵌入式业务涉及人工智能的讨论。”

Achronix的Fitton补充说,“预处理和后处理通常已经在FPGA中完成,”允许推理设计共享同一块芯片。

设计模型挑战
考虑到硬件可编程解决方案优于软件可编程解决方案的优势,显而易见的问题是,“为什么不是每个人都简单地使用fpga呢?”答案可以归结为一个词:硬件。这是fpga的致命弱点。

根据美国劳工统计局的数据,2018年5月,大约每21.5名软件工程师对应一个计算机硬件工程师(软件工程师包括“应用程序”程序员和“系统软件”开发人员)。硬件开发人员使用较低级别的硬件设计语言(hdl)工作,这种语言更多地用于指定硬件结构,而不是定义算法功能。这是一种非常不同的心态,大多数工程师要么在一个阵营,要么在另一个阵营。

fpga,在大多数情况下,需要硬件设计。如果在较低的硬件水平上完成,那么可以用于这项工作的工程师数量就会变得更稀少、更昂贵。“你请不起(硬件)工程师来做(设计),”门拓的萨哈说。依赖于硬件设计人员的ML策略必须确保有可靠的开发人员供应,以便对该策略有信心。Saha听到一位客户说:“我们知道我们将在FPGA上获得优势,但需要8到10个月的时间,需要4到5名工程师。”

尽管如此,大多数FPGA方法包括引擎-硬编码或IP -是软件可编程的。这种灰色地带使得一些FPGA解决方案部分是硬件部分是软件。Flex Logix方法将这一点发挥到了极致,所有硬件设计都由Flex Logix处理,其余的开发过程都是软件练习。

ML面临的特殊挑战不仅仅是硬件/软件之分。它超越了数据科学家,他们可能精通高级软件语言,但不是纯粹的软件开发人员。这些设计师仍然远离硬件设计。作为任何ML解决方案的关键组成部分,它对FPGA供应商提出了重大挑战,因为FPGA供应商必须能够通过抽象硬件的软件工具向数据科学家销售。“软件方面的挑战很大,”英特尔的多尔西说。正如Peera所指出的,“为了在市场上脱颖而出,我们必须让软件工程师参与进来。”

硬件工程师可以创建对ML计算至关重要的硬件结构,从而可以在没有硬件设计的情况下进行进一步的模型细化。这可以通过简单地实例化IP实现,IP可以由高级工具管理。“大多数工程师使用他们的网络,”这意味着更少的硬件工作,侯赛因奥斯曼,市场部门经理晶格半导体

这里有两个重要的考虑因素——设计流程和设计工具。一些FPGA公司将设计流程分离出来,这样硬件设计可以在很大程度上与模型设计解耦。这使得非硬件工程师更容易使用fpga。但第二部分涉及使用哪些工具以及如何在FPGA中实现对模型的更改。

FPGA设计细节通常在上传到设备的低级位流中指定。但是当涉及到ML时,一些公司在比特流中实现整个模型,而其他公司只对硬件部分使用比特流,使用软件二进制文件来实现ML模型细节。


图1:fpga上ML应用的两个简化设计模型。在左边,设计的所有方面都被捕捉在一个比特流中。数据科学家可能能够进行高层次的设计,但这些工具通过硬件编译器来传递设计的这些方面。在右侧,高级模型数据在一个单独的二进制文件中捕获。对模型的更改可能需要硬件位流更改的确切点将因FPGA供应商而异。资料来源:Bryon Moyer/Semiconductor Engineering

该设计模型对已经部署在现场的设备的持续设计修改和更新具有影响。在比特流中包含整个设计的情况下,未来的更改将使用低级FPGA硬件工具来创建更新的比特流,即使高级设计工具避免了任何显式硬件设计的需要。

在其他情况下,对模型的更改只会导致对软件二进制文件的更改,这通常会比完整的硬件重新编译快得多。在这种情况下,底层硬件将保持不变,而模型的各个方面将发生变化。纯软件更改和硬件更改之间的边界将因特定的体系结构而异。

当谈到硬件设计时,一个宽慰的来源是高级合成该公司可以将算法C转化为硬件设计。因为许多算法都是从软件开始的——通常是C或c++——将其直接移植到硬件可以节省大量时间。虽然它仍然需要一些硬件专业知识来管理这个过程,但它实现了大部分设计的自动化,节省了时间和精力。Saha说:“能够使用FPGA的是HLS和高级工具。

最后一个挑战是调试。萨哈说:“找出问题出在哪里是个大问题。如果其他人构建的硬件出现问题,项目可以暂停,同时咨询适当的专家。

优化推理模型
所有FPGA工具链都在抽象级别上操作,与云中的标准模型训练框架交互。在顶层,参数(或权重)由训练过程创建,并放置到已知的流行模型中,如ResNet、MobileNet或YOLO。这些参数只是简单的数字,它们可以存储在数据文件中。

网络本身的结构是下一个层次。剪枝和融合层是在训练好的网络上进行的优化。在某些引擎中,这可以使用软件原语来实现。在其他情况下,这可能导致硬件更改。

另一方面,专业的ML开发人员可能想要进入并手工定制网络或创建一个全新的网络。当工作在这个级别时,几乎可以保证将创建一个新的硬件位流,即使硬件工具隐藏在ML工具链中。

对于现场更新,更改位流意味着将整个FPGA设计替换为新的设计。如果更新只影响二进制文件,则只需要更改该二进制文件。硬件位流可以保持不变。这可以利用更小的粒度,因为特定的FPGA可能被设计为支持多个模型。“你可以为不同的模式使用多个二进制文件,”公司高级营销经理Joe Mallett说Synopsys对此

如果这包括硬件更改,部分重新配置可能会有所帮助。多尔西说:“一种设计模型是创建许多算法,并使用部分重新配置来交换它们。”

对于基于数据中心的加速器板来说,这种技术尤其强大,因为不同的推理或训练问题可能需要用到这些加速器板。英特尔表示,它的重新配置大约需要100毫秒,不过该公司正在努力将时间缩短到数十毫秒。这样就可以快速地改变加速器的用途。

多种FPGA策略
正如初创公司正在探索各种解决ML问题的方法一样,FPGA供应商也在采取各种方法。其中一个从外面看都不像FPGA。许多FPGA同时提供硬件和软件可编程性,这是因为处理器核心可以在FPGA中创建或实例化为硬宏。这些选项适用于不同的FPGA策略。

正如Achronix的Fitton指出的那样,两家最大的FPGA供应商——Xilinx和英特尔——有着截然不同的策略。

英特尔正在利用更广泛的产品供应,fpga是解决市场问题的唯一方法。它还有至强处理器,可以在数据中心以蛮力方式使用,还有一个正在进行的神经形态研究项目,可能会增加该公司的解决方案范围。英特尔的FPGA主要利用传统的FPGA资源。到目前为止,该公司还没有专门用于ML处理的硬块。


图2:英特尔最新的FPGA家族,Agilex。来源:英特尔

内存访问是ML的一个持续挑战,它对fpga的影响不亚于任何其他解决方案。英特尔的策略之一就是利用HBM内存。“我们已经在很多fpga中添加了很多HBM。把它放在布料附近有助于RNNs(循环神经网络)和语音,”英特尔的多尔西说。目前,这意味着HBM的2D集成就在FPGA旁边,通过基板上的英特尔EMIB连接器进行互连。

Xilinx走了一个不同的方向,在其Versal家族的结构中添加了一个ML引擎。这种硬化块使Xilinx以牺牲织物的灵活性为代价提高了效率。该引擎由软件驱动,消除了一些硬件设计方面的顾虑。


图3:Xilinx的Versal家族。来源:Xilinx

Achronix正在采用同构方法,尽管它已经调整了其DSP块,以便更好地为ML工作提供资源。他们的旧DSP块针对更传统的信号处理进行了优化,例如滤波器,因此专注于18位数据。ML倾向于处理更小的数据单元——特别是在边缘——因此新的DSP针对8位整数进行了优化。请注意,Achronix同时提供封装FPGA和嵌入式FPGA结构作为IP,用于集成到片上系统(SoC)。


图4:Achronix的Speedster FPGA。来源:Achronix

莱迪思一直以低成本、低功耗市场为目标,这一点一直没有改变,因为它专注于ML应用。可以将一些小功能(如唤醒词识别)添加到边缘设备以启动ML处理。从那里,结果可以移交给数据中心进行大量繁重的处理。奥斯曼说:“(我们所做的推断)主要是检测,但关键短语和手势是可以识别的。”


图5:莱迪思的传感器产品。来源:晶格

与此同时,Microchip正在为其PolarFire fpga吹捧其新的VectorBlox工具。他们的策略将硬件设计作为FPGA上ML的要求。Microchip有IP在FPGA上实例化引擎,其余的模型信息被视为软件并转换为二进制文件——一个大文件通常被称为“BLOB”(“二进制大对象”)。

有了这个BLOB, Microchip可以同时管理多个模型。虽然通过实例化多个引擎可以实现纯并发性,但单个引擎也可以按顺序或准并发地处理多个模型。

引擎从内存中的BLOB中提取模型信息。如果有多个二进制文件,则指针指示在给定时间使用哪个BLOB。这个BLOB不是作为一个整体加载的。模型的各个部分在使用时被引用。切换BLOB就像改变指针的位置。当MXP运行时,它每次都从BLOB中提取层信息。在多个神经网络之间切换的时间几乎为零,”Microchip公司FPGA事业部的高级架构师杰米·弗里德(Jamie Freed)说。

准并发性是通过时间切片处理的。如果一个视频同时被多个模型处理,每个模型将运行一个完整的帧,一个接一个。一旦所有模型都处理了这一帧,循环就会从下一帧开始。


图6:Microchip的VectorBlox神经网络引擎。CNN IP处理所有的卷积;MXP处理预处理和后处理以及激活和池;Mi-V(他们的SiFive实现)核心可以处理控制和其他软件。来源:芯片

Flex Logix隐藏了它的FPGA特性。虽然它在内部利用了可编程结构,但它在其产品中修复了该配置,这意味着客户不能将其用作fpga。Flex Logix跨越了可编程FPGA解决方案和具有ML专用行为的设备之间的界限,“它是一个混合ASIC/FPGA。Flex Logix首席执行官杰夫·塔特。“用户编写神经网络模型。他们不编写任何低级别的程序,包括eFPGA,就像英特尔的客户不编写微码或缓存算法一样。”

该公司的框图显示了芯片上的eFPGA,但它只被正在实现的模型服务中的高级工具使用。设计器没有独立访问该eFPGA块的权限。


图7:Flex Logix的InferX块。eFPGA不能用于通用用途。来源:Flex Logix

最后,FPGA世界中出现了一个新人——Efinix。虽然该公司已经瞄准了边缘应用程序的性能和功率,但目前这是一个标准的FPGA故事。Efinix没有宣布专门的ML消息,尽管创始人、总裁兼首席执行官Sammy张指出“管道和宽总线管理非常适合ML。”

Efinix揣恩的

图8所示。Efinix的Trion架构。来源:Efinix

总结不同供应商采取的方法:

  • 英特尔工具可以创建所谓的“外壳”,它不仅包括FPGA的硬件方面,还包括FPGA所在的板。这就像高级工具使用的“板支持包”。这些工具可以针对英特尔支持的所有不同解决方案,无论是面向软件的还是面向硬件的。所有的更改都会影响比特流,即使更改可以在较高的级别上进行。至于在软件层面可以改变什么,这取决于AI引擎中可用的原语。可以根据所支持的原语对运行时模型进行更改。它们支持部分重新配置。
  • Xilinx以其工具链为数据科学家的目标,将模型设计抽象到一个不需要HDL的更高级别。对于较大的设计,它们从参数中分离出硬件位流,这些参数可以直接从内存中加载。他们可以进行部分重构。
  • Achronix有两种不同的设计模型。一种是使用所谓的“覆盖”,即在底层硬件模板上实现模型。这为数据科学家抽象了硬件。第二种方法称为“直接图”,其中一个特定的自定义图被编译到硬件中。
  • Lattice将其设计文件与层、神经元和权重分开,这些都驻留在比特流之外。
  • Microchip可以实例化ML引擎IP大小的应用程序。硬件方面主要由工具来处理。然后,开发人员可以专注于模型,使用单独的BLOB来处理网络细节。它们还支持硬件工程师进行自定义网络设计。
  • Flex Logix的推理引擎主要通过专用逻辑工作,但它利用了嵌入式FPGA。这允许不同应用程序的可配置性。但FPGA只能通过Flex Logix配置。

随着未来几年这些应用的实现,FPGA在大容量应用中的成功似乎很有可能,但它们将受到即将上市的新一轮assp的考验。“新的assp专注于特定的配置,”Xilinx的Ni说。“到它出来的时候,这个行业已经向前迈进了。一切都发生得太快了。”

无论这些assp是否受到关注,fpga显然将在开发和低产量中发挥作用,因此在可预见的未来,它们仍将是ML领域的一部分。

相关文章
FPGA而且eFPGA知识中心
关于fpga和eFPGAs的头条新闻、视频、特别报道、博客和白皮书。
使用fpga进行AI
标准fpga在人工智能方面有多好,基于fpga的专用设备与它们有何不同?
FPGA设计权衡越来越困难
随着芯片尺寸的增长,优化性能和功耗需要一系列新的选项和方法的改变。
构建推理芯片的挑战
随着人工智能领域的不断发展,人们正在开发不同的推理方法。并不是所有的方法都有效。



留下回复


(注:此名称将公开显示)

Baidu