中文 英语

理解新的边缘推断架构

如何驾驭大量令人困惑的选择和术语。

受欢迎程度

新的边缘推理机器学习架构在去年以惊人的速度出现。理解所有这些都是一个挑战。

首先,并不是所有的ML架构都是一样的。这是理解差异的一个复杂因素机器学习架构是用来描述它们的术语。您将看到诸如“mac海洋”、“收缩阵列”、“数据流架构”、“图形处理器”和“流图形处理器”等术语。除非您是计算机专家,否则很难判断这些区别的含义是什么——或者理解它们是否重要。

mac海洋架构,例如那些以gpu为特色的架构,为单核问题提供了大量的多核解决方案。但最终,处理器只是得到了代表网络的代码。更简单的加速器,如用于NXP i.m mx 9家族的micro- npu,是用于适度工作的MAC加速器。该公司边缘处理应用流程产品创新主管Amanda McGregor表示:“我们看到了对不同能力水平的需求——不仅仅是一个‘大top’加速器,而是具有更小NPU的成本效益高的产品NXP

然而,这样的体系结构可能包括专门的硬件来提高推断效率。NXP边缘处理战略主管Gowri Chindalore表示:“它具有压缩、修剪、零重量移除等硬件加速功能。”

与此同时,图处理器至少在图级而不是代码级上进行理论上的操作。在静态实现中,处理器数组的不同部分分配给图的不同层。著名的系统架构师David Hough说:“编译器本质上是在权衡我有多少内核,以及我可以在不溢出的情况下将多少层组合在一起(放到一个tile组中)想象力的技术

动态版本可以称为流图处理器,因为网络本身通过架构进行流处理,影响何时何地将发生什么的决策。对于这些体系结构,编译器组装有关网络的元数据,这些元数据实时通知调度决策。Blaize的高级产品总监Rajesh Anantharaman说:“我们在整个软件工具链中一直保存图形,一直到硬件,硬件理解依赖关系并动态管理它们。”

这使事情在更高的层次上工作——blaze称之为任务并行。“指令指针不是描述下一个要完成的任务的机制,”Blaize的首席软件架构师Val Cook说。“它实际上是DAG(有向无环图)的根节点。”

与此同时,Atlazo也宣称了一种流图架构,但它专注于语音,用于非常小的、耗电的应用程序,比如真正的无线设备。Atlazo首席执行官Karim Arabi表示:“语音是触发语音命令、说话人识别甚至场景感知的UI。

动态架构的支持者指出,复杂的现实世界情况是激励因素。Deep Vision的联合创始人兼首席技术官Rehan Hameed描述了一款店内视觉应用程序。他说:“摄像头中的处理器会检测到人,然后跟踪他们到商店。”“如果它找到了这个人,那么它会进行姿势估计,以确定这个人是否真的从架子上拿起了东西。如果它检测到这一点,那么它就有了另一个产品识别模型。这一切都是动态决定的。”

无论是静态的还是动态的,调度或放置的方式都可以使一个内核的输出立即可用于下一个内核,而不需要将它们从内存中的一个位置移动到另一个位置。

这个特性限制了预编译的数量。当然可以优化网络,根据需要修剪连接并融合层或节点。但是这些努力仍然为处理器留下了一个图形。"的概念"图降低,其中图形被进一步编译,将破坏图形字符,因此对流图处理器的实用性有限。

更多的建筑风格
还有其他的架构变体。Syntiant是一家从事边缘业务的时间比许多新公司都要长,它依靠一种完全不同的方法来实现TensorFlow网络的整个概念,并将其适应硬件平台。它没有运行TensorFlow Lite这样的翻译程序,也没有编译成本地代码,而是设计了一个直接使用TensorFlow作为指令集的处理器。

虽然Syntiant没有投资于模型适应工具,但它更密切地关注训练过程,因为所有特定于应用程序的调优都是在训练过程中完成的。Syntiant首席执行官Kurt Busch表示:“我们已经开发了完整的培训管道,我们可以从脏数据,清理数据,构建数据,通过培训管道,并提供一个交钥匙解决方案。”

Syntiant硬件副总裁David Garrett解释了这种方法的好处。“TensorFlow释放一个二进制文件,在我们的设备上执行,它已经知道速度/面积/功率,”他说。“因此,作为训练的一部分,你可以针对能源效率和推断率的超参数搜索进行训练。”


图1:使用Syntiant第二代核心的设备框图。处理器在本地执行TensorFlow指令。来源:Syntiant

与此同时,GrAI Matter正在神经形态snn和更常见的人工神经网络(ANN)之间走钢丝。“我们采取了混合方式。我们做的是基于事件的处理,”GrAI Matter业务发展副总裁Mahesh Makhijani说。虽然snn在这种方法中工作得很好,但它们也更难训练——而且很难获得适合训练的数据集。

GrAI使用了一种更传统的架构,但它不是完全处理每一帧视频,而是只处理那些与前一帧相比发生了变化的像素。因此,第一帧作为一个整体处理,而后续帧需要较少的处理。“我们从spike网络继承了基于事件的架构,但我们有Hailo和Mythic等并行处理,”Makhijani继续说道。“我们不像模拟那样做内存计算,但我们做数字近内存计算。”

该公司没有为每个节点分配一个处理器,因此如果需要分时处理器,需要更多处理的帧可能会有更高的延迟。对于稀疏变化的帧,延迟和功率降低。


图2:在顶部图像中,每个节点执行每一帧。在下面的图像中,只有那些发生了变化的像素被处理,对于变化很少的帧保持许多节点不活动。来源:GrAI Matter

最后,还有一些基于光子学的机器学习方法。(这将是未来报道的主题)。

fpga的处理器
目前有一种独特的动态AI处理器,它利用了一个FPGA织物。Flex Logix可以在硬件中实现网络节点,但该硬件可以实时重新配置。“我们像FPGA一样对连接进行编程,然后为模型的每一层重新配置它们,”Geoff Tate说Flex Logix


图3:Flex Logix架构的高级视图。来源:Flex Logix

这与其他动态处理器不同,后者为执行软件分配内核。这分配硬件,预编译FPGA结构的设计。例如,可以融合层,以减少通过网络所需的迭代次数。Tate说:“当我们看到有大量中间激活的层时,我们看看是否可以将它们组合成一个单一的熔断器组合层,这样一层的输出就可以直接进入下一层的输入。”“与YOLO v3一次只做一层相比,这可以提高50%到75%的性能。”


图4:两层被融合在一起,中间有激活逻辑。来源:Flex Logix

关键在于能够快速重新配置。Flex Logix声称能够在4µs内完成这一任务,并使用配置缓冲区和权重缓冲区,允许它在当前执行后隐藏加载新模式和权重。当一组节点正在处理时,下一组节点正在准备中,以便进行快速切换。

Tate说:“当我们完成对层的处理后,我们可以在微秒内重新配置。”“这些图层需要几毫秒才能运行,因为以YOLO v3为例,一张百万像素的图像需要3000亿台mac电脑。然后我们将配置更改为不同的张量操作,以执行下一步所需的层。当我们执行前一层时,我们从DRAM中引入配置和权重。”


图5:在处理Layer 0的同时,可以加载Layer 1。重新配置大约需要4µs。来源:Flex Logix

纯fpga进一步发展了这一概念,芯片中专用硬件更少。该公司产品营销、人工智能和软件总监Nick Ni指出:“神经形态研究人员如今正在使用fpga赛灵思公司.缺点是实现的面积或成本效率更低,因为所有的逻辑都是可编程的。好处是你可以对最新的模型做出反应。

“随着该领域引入了许多专注于人工智能的soc,其架构是固定的,在基本硬件层面上无法适应,”Ni说。“这对于几年前设计的人工智能模型非常有效,但它们在现代网络上的运行通常非常糟糕。fpga可以用最优的领域特定架构重新编程,而无需创建新的芯片。”

全网vs.部分网
动态架构可能一次处理网络的一部分,而静态架构通常试图在单个芯片中容纳整个模型。明显的好处是不再需要实时移动配置和权重。加载模型,然后数据从头到尾流经模型。

这种安排也有几种不同的风格。最简单的是收缩阵列,之所以被称为收缩阵列,是因为数据从一点进入,并像血液流经静脉一样流经整个结构。根据设置的方式,可以初始化一组数据,并在它开始流动之后,在它后面初始化一组新数据。这只是因为硬件没有被不同的节点重用。每个执行单元都专用于模型的特定部分。

但是,这种方法实际上只有在所有权重都可以存储在执行单元附近时才有效。这就产生了对大量内存的需求,因为一些模型可能需要数十亿个权重。

给定的系统还可能同时运行多个应用程序。在静态架构中,只要有足够的资源,这些应用程序都可以获得自己的硬件资源。在动态体系结构中,人们可以选择将可重用硬件分配给不同的应用程序,允许它们彼此并行运行。然而,这可能很难做到。对所有应用程序使用相同的资源可能更容易,通过分时来保持所有应用程序的运行。

所有模型参数在内存中
另一类主要的静态平台利用了内存计算(IMC)或内存计算(CIM)。的特性非易失性内存数组,允许它们通过访问行和列来执行乘法累加函数,没有显式的乘数或加法器。数学计算是以模拟的方式完成的。

其思想是将权重存储在这些数组中,然后将传入的信号乘以权重。如果有足够的数组空间,整个模型可以一次加载。对于基于非易失性内存的数组,这些权重甚至可以在断电后继续存在,因此只需要加载一次。权重不需要DRAM。Mythic公司负责产品和业务发展的高级副总裁Tim Vehling说:“没有外部DRAM。“我们不需要它,也不想要它。”

校准用于消除制造过程中变化的影响。它也有必要实时使用,以纠正任何老化的影响。当然,这是有代价的。Ambient Scientific的首席执行官GP Singh表示:“如果没有补偿和校准,这些模拟电路的效率将提高50倍,而不是5到10倍。”

dac和adc还需要将数字值转换为模拟值,以获得乘法累加结果,然后再转换回数字形式。这些dac和adc必须具有非常高的质量,可能会占用大量的模具面积,在模拟阵列的数量(较小的模拟阵列分散在简化信号路由的周围)和模具尺寸之间进行权衡,因为必须为每个阵列复制外围阵列电路。“融合”阵列节省了硅,例如,一个感应放大器可以用于多个计算,更好地分摊电路面积。

Mythic一直致力于这项技术的基于flash的版本。Mythic的联合创始人兼首席执行官迈克·亨利(Mike Henry)说:“它是NOR闪存,但它拥有高度专有的编程技术。它们的区别来自于这种新的架构,而不是激进的硅技术。“我们不需要使用疯狂的工艺技术,”Vehling补充道。“我们可以停留在标准的、几乎落后的节点上。”


图6:Mythic的架构使用基于闪存的阵列来存储权重,纳米处理器与SIMD块一起执行其他计算。本地SRAM存储来自邻近单元的激活,通过NoC传递。来源:神话

另一方面,Ambient Scientific公司在电池中使用了所谓的3D SRAM。这建立在静态存储器单元包含乘法功能。电池在断电时会丢失电量,但睡觉可以省电。辛格说:“我们所有的sram都自然地处于睡眠模式,但它们醒来时的延迟为零。”Ambient Scientific不是独立校准dac / adc,而是在一个循环中校准它们,这样它们就可以在没有独立参考的情况下收敛。“DAC和ADC是同时进行的。”


图7:Ambient Scientific内存计算方法。SRAM单元用于以数字形式存储和表示用于计算的值,并将其转换为实际数学的模拟。来源:Ambient Scientific

最后,Imec而且GlobalFoundries合作完成了一个研究项目,目标是达到10,000 TOPS/W的效率。虽然他们已经接近了,但他们使用的是一种基于sram的方法,这种方法的硅效率不高。Imec杰出的技术人员Diederik Verkest说:“该程序的目标是了解哪种(比特单元)选项最适合这种特定应用。”他们正在探索许多新的建筑理念,如果结果被证实,这些理念将值得进行更详细的讨论。

GlobalFoundries/Imec的工作与其他IMC架构不同。Imec研发工程师Ioannes Papista表示:“DAC将激活信号输入到激活线上,并将其转换为脉冲宽度。“根据加载到计算单元的脉冲宽度和权重,我们在求和线上获得电荷,并在ADC上转换为一个6位字。”


图8:Imec和GlobalFoundries合作了一个IMC架构,目前利用SRAM。来源:GlobalFoundries

新的NVM单元如PCRAM和RRAM正在被考虑用于IMC,但仍需要大量的开发工作来证明它们的长期稳定性和可靠性。这将是一个有待继续探索的领域。

前馈和反馈
架构的另一个特征与流的方向有关。基于视觉的应用往往是前馈的。这意味着一层的输出只移动到下一层。当用图表示时,这样的图称为“有向无环图”(dag)。“无循环”的部分意味着没有“循环”——也就是说,没有任何反馈可以再次通过。

其他网络,如长短期记忆(LSTMs)和循环神经网络(rnn)确实涉及一些反馈。反馈可能涉及保留在节点内的激活以便进一步处理(同时也进行前馈),或者它们可能跳过多个层。

在某些情况下,硬件本身将处理反馈。Atlazo的架构是专门为这类应用而设计的,所以虽然该公司还没有透露细节,但硬件很可能是明确内置的。

另一方面,blaze使用了一种不同的方法。数据保留在原地供另一个节点使用,但控件被发送回主机以重新调度。只要反馈不超过几层(确切的数字是不公开的),那么图元数据允许控制电路预测反馈。

加速器与处理器
有些芯片是用作加速器的。这些设备在主机的控制下运行,从主机接收它们的工作负载和内核分配。

其他的则充当自给自足的处理器。虽然主机可以帮助控制配置或启动和停止处理,但硬件可以直接访问数据,而主机则保持在后台,除非某些控制情况需要干预。

如果要处理的数据直接来自传感器,这些设备可能需要专门的I/ o,而其中一些传感器,如麦克风,可能是模拟的。


图9所示。芯片上带有AI加速器的处理器示例。来源:Maxim Integrated

整个应用程序vs.仅网络
推理通常只是整个应用程序的一部分。例如,对于视觉,图像可能需要一些预处理来规范化大小或配色方案,甚至使用DSP算法清理图像。

对于仅推理的体系结构,这些函数由主机或其他处理器处理。“很多时候,进入加速器的数据需要以某种方式进行处理,这就是RISC-V在我们的架构中真正存在的原因,”ibm micros、安全和软件业务部门执行董事Kris Ardis说马克西姆集成

其他体系结构用于处理整个应用程序。这在动态架构中是可能的,在动态架构中,硬件不仅被重新用于网络的不同层,而且也用于其他非网络功能。例如,blaze可以通过其处理单元运行网络内核或其他代码。

类似地,Ambient Scientific也有一个全系统芯片,它专注于整个芯片的低功耗工作,而不仅仅是AI部分。但它并不是在人工智能和其他功能上重复使用相同的电路。例如,当推理正在运行时,主机Arm核心将关闭,直到得到可用的结果。

处理记忆墙
对于许多这样的架构来说,最大的挑战是通过改进数据获取来降低功耗。这意味着尽可能将数据保持在本地,尽管有各种各样的方法来做到这一点。在某些情况下,这是关于数据的位置-所谓的“near-memory”计算。在其他情况下,它是关于隐藏取回。SiMa.ai首席执行官Krishna Rangasayee表示:“我们已经能够将取回问题隐藏在计算周期背后。虽然这隐藏了延迟,但它可能无法隐藏移动如此多数据所需的功率。

同时,一些网络显然没有这个限制。TensorFlow Micro在谷歌的技术主管Pete Warden谈到该公司的tinyML方法时表示:“我们受到了计算的限制。“我们不需要更多的内存访问。我们一次加载一些激活和权重值,然后在寄存器中对它们进行许多不同的乘法/加法组合。”

直接比较风险自负
我们希望以某种简洁的方式总结这些不同的架构,但这很难做到。苹果对苹果的比较几乎是不可能的,除非一个公共网络上的公共模型运行在不同的架构上。基准测试旨在提供这一点,但对于大多数这些体系结构来说,根本没有可用的基准测试结果。即使有,现有的基准网络也被认为太小,无法给出有意义的结果。

我们剩下的只有营销数字。它们不一定是邪恶的,但我们必须以清醒的眼光看待它们。我们将几个简单的参数组合到一个表中。它们是了解不同设备用于哪些应用程序的最佳方法。它们对于直接比较哪个设备更好没有用处。所有数据(除非另有说明)均来自相关公司,仅为简洁起见进行了编辑。

三个主要参数是性能、功率和效率:

  • TOPS(每秒太次运算)是一个常见的但不是通用的速度度量。这是一个非常不完善的测量方法,但与延迟不同的是,它是硬件而不是应用程序的特性。它也是不完整的。具有较低TOPS值的聪明架构可能比具有较高TOPS值的不那么聪明的架构更快。
  • 功率反映了一般功率范围。这不是一个保证,但它有助于在本调查的第一部分所示的图表中定位架构。
  • 效率是每瓦的性能。这不是前两个数字的算术组合,因为高性能配置通常不同于低功耗配置。效率需要反映相同配置下的性能和功率。这就是为什么要单独列出的原因。

我们还列出了一些其他的考虑因素:

  • “品牌”是设备、架构或技术品牌,可能与公司名称不同。
  • 区分将是概括架构“有什么不同”的几个词。
  • “如何销售”框反映了架构的可用性。至少有一个是IP块;其他的是硅。有些可以通过芯片实现,有些只能通过模块或卡实现。有各种不同的卡片格式可用。表格中没有详细说明。它详细说明了卡片是否是一种选择。“卡”和“模块”在表中都称为“卡”。
  • 应用重点是公司对他们正在处理的各种任务的处理。不同的架构可以用于其他事情,因为这通常是一个市场焦点而不是技术的问题。但是一个好的视觉架构可能不适用于非视觉应用程序。即使在视觉上,也不是所有的应用都是一样的。


*不是一个完整的AI引擎,而是一个用于引擎的微型gpu
图10:所涵盖架构的简要总结。不适合苹果与苹果的比较。资料来源:Bryon Moyer/Semiconductor Engineering

这应该仍然是一个极具活力的领域,那些做得好的公司将会有很大的增长。GlobalFoundries计算业务部副总裁兼总经理Hiren Majmudar表示:“人工智能加速器在未来四到五年内可能会增长两倍以上。”他补充说,这将使其成为一个有吸引力的市场。

相关的
边缘推理架构激增
是什么让一个人工智能系统比另一个更好取决于很多不同的因素,包括一些不完全清楚的因素。
边缘的定制和限制
为什么功率、性能和安全性将定义边缘设备。
编译和优化神经网络
低功耗,提高性能的推理。
赢家和输家在边缘
目前还没有一家公司拥有这个市场,而且在很长一段时间内也不会。



留下回复


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

Baidu