登录注册   忘记密码

eFPGA更适用于AI ?

人工智能(AI),特别是机器学习正在重塑世界的运作方式,也为工业和商业带来了无数的机会,但支持神经网络演进、多样性、训练和推理的最佳硬件架构尚未确定。本文针对这一领域,就嵌入式FPGA(eFPGA)的应用做一些探讨。


人工智能应用领域涵盖多个不同的市场,如自动驾驶、医疗诊断、家用电器、工业自动化、自适应网站、财务分析和网络基础设施。

TIM截图20180620170711.png

这些应用(特别是在边缘实施时)需要高性能和低延迟才能成功响应实时变化。它们还需要低功耗,这就使能源密集型云解决方案无法使用。另外,更深层的要求是:这些嵌入式系统即使在没有网络连接到云的情况下,也总是处于开启状态并准备好进行响应。这些因素的加在一起,需要改变传统的硬件设计方式。


神经网络

许多算法可用于机器学习,但当今最成功的算法是深度神经网络。受生物处理过程和结构的启发,深度神经网络可以在前馈中采用10层或更多层。 每一层使用虚拟神经元对一组输入执行加权求和,然后将结果传递给下一层中的一个或多个神经元。


虽然有一种常见的核心方法来构建最深的神经网络,但目前还没有一种适用于深度学习的通用体系结构。 越来越多的深度学习应用将合并不基于模拟神经元的元素。 随着技术的不断发展,许多不同的架构将会出现。 就像有机大脑本身一样,可塑性是任何旨在将机器学习融入其产品设计的组织的主要要求。


训练和推理

有机大脑和人工智能之间的一个重要差异是,当训练好的网络被要求作出决定时,能够区分诸如训练和推理阶段等活动。 在2000~2010年,人们发现了有效的技术,可以一次对多个层次进行训练。这些技术依赖于通常由使用许多处理器来完成任务的服务器提供的巨大计算能力。训练过程在后台进行 - 通常在云端进行 - 不需要实时生成结果。


对于推理,计算需求低于训练,但通常需要在大多数现实世界的应用程序中提供实时响应。 高能效并行处理是推理系统的关键要求,因为许多系统不具备永久的外部电源。


通常,训练要求用于计算神经权重的浮点运算具有高精度,在大多数情况下,32位浮点已被证明是足够的精度需求。


对于推理来说,错误累积的可能性较小,通常,8位定点算术就足够了,对于某些连接,4位分辨率不会显著增加错误,系统将受益于重新配置数据路径的能力,以便他们能够以4位或8位的精度并行处理多个数据流。但是,设计人员希望保留在需要的地方结合高精度算术执行单元的能力。


显然,机器学习系统需要提供高性能和可塑性组合的硬件基质。


机器学习基质

许多处理结构可用于支持高性能机器学习,但是对于实时嵌入式系统来说,由于功耗和性能的原因,有些将在早期阶段被排除。


在2010~2015年期间,通用图形处理单元(GPGPU)成为训练和推理的热门选择。GPGPU提供数百个片上浮点单元,能够并行处理多个神经元的输入,比通用CPU集群的输入快得多。


然而,将GPGPU应用于深度学习架构存在一些缺点,这些设备主要用于加速2D和3D图形应用程序,这些应用程序使用均匀且可预测的内存访问模式,它们的结构支持算术运算密集型算法,这些算法可以很容易地在存储器中紧密地组合在一起,然后可以合理高效地处理卷积神经网络层。然而,其他类型的层可能会有麻烦,因为他们更加强调神经元之间的数据传输,从而使本地存储器架构效率降低,这样就降低了性能和能效。


具有定制逻辑和内存管理器的ASIC可以克服GPGPU在实施深度学习系统时存在的挑战和瓶颈。ASIC针对神经网络代码中遇到的不同访问模式进行调整的内存管理单元可以在提高整体速度方面做得更好。在诸如卷积神经网络(CNN)层的结构中,通过不将数据传入和传出本地或中间存储器的方式,可以实现节能。


与基于软件的处理器相比,ASIC的问题是其相对不灵活。我们可以对多种深度学习结构进行原型设计,然后选择基于硅集成的优化选项。一个特定的应用程序可能需要部署更多的卷积层或增加滤波器内核的复杂性来处理特定类型的输入,支持这种复杂性可能需要相对于其他硬件加速器而言增加数量庞大的滤波器内核处理器,这种结构可以通过ASIC实现,但它很可能不适合改变算法或相邻应用。


FPGA具有实现定制处理器和内存管理技术的诸多优势,它不需要将实现局限在特定的不变硬件结构。今天,许多FPGA架构提供了完全可定制的逻辑和数字信号处理(DSP)引擎的整合,可支持固定和浮点运算。在许多情况下,DSP引擎采用由8位或16位单元组成的构建块方法,这些方法可以将它们组合起来以支持更高精度的数据类型,通过在查找表(LUT)中实现的逻辑,可以适应低精度需求。


对逻辑阵列进行返工的能力使FPGA很容易调整并行处理器的结构和它们之间的路由,以满足应用的特定需求。如果训练结果指出如何扩展或重新布置图层以提高性能,那么其自由度仍然有调整空间。然而,可编程逻辑阵列相对低的效率可能意味着,当应用程序确实需要网络的某些高吞吐量专用功能时,用户必须在神经网络内不同层之间的性能共享功能上妥协。 一种方法是使用更小的ASIC来扩展FPGA,从而为常用功能(例如卷积内核或max-pooling计算)提供加速。


将FPGA架构嵌入片上系统(SoC)可以克服独立FPGA和ASIC的缺点,以及在它们之间传递数据的问题。 嵌入到ASIC中的一个或多个FPGA提供了动态调整神经网络性能的能力,提供了充分利用定制引擎所需的高数据传输带宽。


eFPGA横空出世

基于此,嵌入式FPGA应运而生。eFPGA概念第一次进入大众视野是在2014年,由UCLA的Cheng C. Wang,Fang-Li Yuan和Dejan Markovic等人在ISSCC发表的文章,“A Multi-Granularity FPGA With Hierarchical Interconnects for Efficient and Flexible Mobile Computing”。


这篇文章中,作者通过创造性地设计互联单元,一举解决了FPGA的功耗、性能和成本受到布线资源限制的问题,从而使得eFPGA集成到SoC中真正变为可能,而该论文也因其突出贡献获得了ISSCC Lewis Award。之后,Cheng C. Wang,Fang-Li Yuan和Dejan Markovic就利用该论文中的成果成立了Flex Logix,并推广eFPGA的概念,力争使其实现商用化。


到了2017年,eFPGA的概念已经获得了业界的广泛认可,而该领域的公司也在慢慢变多。到目前为止,业界主要供应商包括:Flex Logix、Achronix、Menta、QuickLogic、NanoXplore、Efinix和Adicsys。


以上这7家公司采采取3种商业模式和技术发展途径:Achronix同时提供FPGA和eFPGA;Menta、NanoXplore和Adicsys提供软IP eFPGA,Flex Logix全部是硬核eFPGA,QuickLogic采用了GloablFoundry工艺的硬IP,Efinix是硬IP技术。


据悉,中芯国际已经与QuickLogic合作,基于中芯国际40nm低漏电 (40LL) 工艺,推出了ArcticPro 嵌入式 FPGA技术,是业界首个在中芯国际40LL技术节点上提供的eFPGA IP。


与传统实现方案相比,eFPGA可以实现吞吐量和可重编程性之间的最佳平衡,并提供真实世界机器学习系统所需的性能。


片上集成FPGA模块的能力还通过以下方式节省了大量的硅片面积:


1)去除了与独立FPGA关联的耗电量大的I / O


2)将固定功能移至更高效的ASIC模块


3)将重复功能转换为自定义块。


机器学习中的eFPGA

由于AI/机器学习属于高端应用,其面临着算法的变化,是一个高计算需求的应用。


eFPGA是一种高度灵活的解决方案,可支持高性能机器学习应用程序所需的数据吞吐量。 不同的架构为设计人员提供了按照应用程序的要求混合和匹配eFPGA功能的能力。 一些核心功能,包括基于四输入LUT的逻辑,用于寄存器文件和类似用途的小型面向逻辑的存储器(LRAM),较大的块RAM(BRAM)以及可配置的DSP模块。


核心功能还可以通过定制模块进行增强,这些定制模块提供了更多专用功能,这些功能在可编程逻辑中是硅密集型的,例如为流水线访问优化的三态内容寻址存储器,超宽多路复用器和存储器模块。


通过可嵌入架构,SoC中的定制内核可以访问可编程架构,而无需牺牲片外访问的能耗和性能,无需FPGA架构周围的可编程I / O缓冲器,因此,解决方案内的整个裸片面积就会减少。 此外,该架构的模块化特性使得将该技术移植到各种工艺技术中变得很轻松,即使是新兴的7nm节点也没问题。


这些功能是为嵌入式系统提供实时AI加速的最佳起点,这些嵌入式系统涵盖从消费类电子电器到高级机器人和自动驾驶汽车。


机器学习技术代表了嵌入式系统的新领域,实时人工智能将扩大各种应用,但只有在能够以经济高效的方式执行时才能实现市场化量产。诸如多核CPU、GPGPU和独立FPGA之类的现有解决方案可用于支持高级AI算法,如深度学习,但它们无法满足开发人员随着机器学习体系结构发展而增加的硬件需求。


AI需要对数据和性能、内存延迟以及吞吐量进行仔细的平衡,这需要基于将尽可能多的功能引入ASIC或SoC的方法。 但是单芯片器件需要可塑性来处理机器学习项目中不可避免的结构变化。eFPGA技术则为市场所需的定制逻辑提供了灵活性和支持能力的完美整合。


eFPGA在AI应用中的挑战

eFPGA有诸多优点,但作为一种新型技术,其在具体应用中,同样面临着一些挑战,特别是对于AI而言,人工智能本身就是新兴应用,它们组合在一起,在实践当中自然会遇到一些难题。


比如,可靠性和良率问题,工程师在这方面有担忧,纯逻辑制程在这方面的优势还需要进一步观察;测试也是个问题,客户需要用户笔记来帮助设置、调试FPGA设计,当然,eFPGA在这方面是有先天优势的,可以测完再配置为需要的文件;另外还有时序问题,集成硬核很容易,但是时钟同步很难,因为不同于硅SoC的时序是不变的,eFPGA的时序是变化的,如何匹配是个问题。

您的评论:

0

用户评价

  • 暂无评论