中文 英语

理解新的边缘推理架构

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

受欢迎程度

新的边缘推理机器学习架构一直在去年以惊人的速度到达。让他们感到挑战。

首先,并非所有ML架构都是相似的。理解不同的复杂因素之一机器学习架构是用来描述它们的术语。你会看到像“sea-of- mac”、“systolic array”、“dataflow architecture”、“graph processor”和“streaming graph processor”这样的术语。除非你是计算机专家,否则很难知道这些区别意味着什么——或者理解它们是否重要。

sea -of- mac架构,比如那些具有gpu的架构,为单核问题提供了大规模的多核解决方案。但最终,处理器只是被输入代表网络的代码。更简单的加速器,如NXP i.MX 9家族使用的微npu,是用于适度工作的MAC加速器。“我们看到了对不同水平能力的需求——不仅仅是一个‘big-TOP’加速器,而是具有更小NPU的成本效益产品,”边缘处理应用流程产品创新主管Amanda McGregor说NXP

然而,这种架构可以包括专用硬件来促进推理效率。“它具有压缩,修剪,零重量的硬件加速,类似的东西,”NXP边缘处理策略负责人Gowri Chindalore说。

同时,图形处理器至少在图形级别而不是代码级别操作。在静态实现中,将阵列处理器的不同部分分配给图的不同层。“编译器本质上旨在折衷我有多少核心,还可以在没有溢出的情况下将[进入瓦片集团]一起融合多少层,”David Hough,杰出的系统架构师说想象力的技术

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

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

同时,Atlazo还声称了一种流式图形架构,但一个专注于在非常小的功率 - 吝啬的应用中使用的语音,如真实的无线设备。“声音是触发语音命令,扬声器识别甚至场景意识的UI,”阿塔拉佐首席执行官Karim Arabi说。

动态架构的支持者指向复杂的现实世界情况作为动机。Rehan Hameed,CTO和深远的联合创始人,描述了店内视觉应用。“相机中的处理器会被人们侦探,然后将它们跟踪到商店,”他说。“如果发现这个人,那么它将做出姿势估计,以弄清楚这个人是否实际上从架子上挑选一些东西。如果检测到,则它具有另一种用于产品识别的模型。这一切都是动态决定的。“

静态或动态,调度或放置是以使得一个内核立即可用的一个内核的输出的方式完成的,而无需将那些从内存中的一个位置移动到另一个内核。

这一特征会对一个可以做多少汇编来说有一些限制。当然可以根据需要优先优化网络,修剪连接和定影层或节点。但这些努力仍然为处理器留下了一个图形。“图表降低了,将进一步编译图形,这会破坏图形字符,因此对于流式图形处理器来说用处有限。

更多的建筑风格
还有其他架构变体。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正在使用更传统的架构,而不是完全处理每个视频帧,它只处理从先前帧改变的那些像素。因此,第一帧作为整体处理,而后续帧需要更少的处理。“我们从尖刺网络中继承了基于事件的架构,但我们有平行的处理像Hailo和Mythic和其他人一样,”Makhijani持续。“我们不做内存计算为模拟,但我们做数字近记忆库。”

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


图2:在上图中,每个节点执行每一帧。在底部的图像中,只有那些改变了的像素被处理,对于变化很少的帧保持许多节点不活动。问题来源:粒

最后,还有一些基于光子的机器学习方法。(这将是今后讨论的主题)。

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


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

这与其他动态处理器不同,该处理器分配用于执行软件的核心。这分配了硬件,预编译了FPGA结构的设计。例如,图层可以融合,以减少通过网络获取所需的迭代次数。“当我们看到具有大中间激活的层时,我们看看我们是否可以将它们组合成一个熔断器组合层,因此一层的输出直接进入下一层的输入,”表示。“这使得性能的提高50%至75%,而YOLO V3的时间只做一层。”


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

关键在于能够快速重新配置。Flex Logix声称能够以4μs执行此操作,具有配置缓冲区和权重缓冲区,允许其隐藏加载当前执行后面的新图案和权重。虽然正在处理一组节点,但是正在被读取下一个节点,以便快速切换。

“当我们完成处理该图层时,我们重新配置微秒,”表示Tate。“这些层以毫秒乘坐运行,因为例如yolo v3是一个百万像素图像的300亿Mac。然后,我们将配置更改为不同的Tensor操作以执行下一步所需的图层。我们在执行上一层时将配置和重量从DRAM中进行。“


图5:处理层0的虽然处理层0,可以加载层1。重新配置大约需要4μs。来源:Flex Logix

纯FPGA进一步占据了这一总体概念,芯片中的专用硬件较少。“神经形态人今天正在使用FPGA,”产品营销,AI和软件主任Nick Ni赛灵思公司。缺点是实现较少的区域或成本效益,因为所有逻辑都是可编程的。上行的是您可以对最新型号作出反应。

“在这个领域引入了许多专注于人工智能的soc,架构是固定的,在基础硬件级别上不具有适应性,”Ni说。“这对于几年前设计的AI模型非常有效,但它们在现代网络上的运行往往很糟糕。fpga可以用最优的领域特定架构进行重新编程,而无需创建新的芯片。”

整个网络与部分网络
虽然动态架构可能会一次处理一块网络,但静态常常尝试在单个芯片中容纳整个模型。明确的好处是不再需要实时移动配置和权重。该模型是加载的,然后数据从头到尾流过它。

这种安排有几种口味。最简单的是收缩系统阵列,所谓的,因为数据在一个点进入并流过血液流过我们静脉的方式流过架构。根据其如何设置,可以启动一组数据,并且在开始流动后,启动它后面的一组新数据。只有因为硬件未用于不同的节点,这是可能的。每个执行单元都致力于模型的特定块。

但是,只有当所有权重都可以存储在其执行单元附近时,这种方法才能真实地工作。鉴于某些型号需要数十亿的重量,这会产生巨大的内存需求。

给定的系统也可能有多个应用程序同时运行。在静态架构中,给定足够的资源,这些应用程序每个都可以获得自己的硬件资源。在动态架构中,可以选择将可重用的硬件分配给不同的应用程序,允许它们彼此运行。然而,这可能很难管理。对所有应用程序使用相同的资源可能更容易,时间共享以保持所有移动。

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

该想法是重量存储在这些阵列中,然后将传入的信号乘以权重。给定足够的阵列空间,可以立即加载整个型号。对于基于非易失性的内存的阵列,这些权重甚至可以存活地关闭,使得只需加载一次。然后不需要DRAM。“没有外部DRAM,”Mythic的产品和业务发展高级副总裁蒂姆车辆说。“我们不需要它,我们不想要它。”

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

DAC和ADC也需要将数字值转换为模拟值,以便乘法累加结果转换回数字形式。那些必须具有非常高质量的DAC和ADC,可以采取大量的模具区域,在模拟阵列的数量之间创建折衷 - 较小的阵列散布在宽松信号路由和芯片尺寸周围,因为外围阵列电路将具有要为每个数组复制。“熔断”阵列保存硅,因为例如单一感测放大器可用于多个计算,更好地摊销电路区域。

神话一直在研究这项技术的基于闪存的版本。“它也不是闪光,但它具有专有的专有编程技术,”神话的联合创始人兼首席执行官Mike Henry说。他们的差异来自这种新的建筑而不是侵略性的硅技术。“我们不必使用疯狂的过程技术”增加了车辆。“我们可以留在标准,几乎滞后的边缘,节点。”


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

另一方面,Ambient Scientific使用3D SRAM作为细胞。这建立在静态存储器单元格包含一个增殖能力。电池在断电时就会丢失里面的东西,但睡眠可以节省电力。辛格说:“我们所有的sram都自然处于睡眠模式,但它们醒来时没有延迟。”Ambient Scientific不是独立校准dac / adc,而是将它们在一个循环中一起校准,这样它们就可以在没有独立参考的情况下聚合。“DAC和ADC是一起完成的。”


图7:环境科学内存计算方法。SRAM单元用于存储和呈现数字形式的计算值,转换为实际数学的模拟。资料来源:环境科学

最后,IMEC.globalfoundries他们合作了一个研究项目,其目标是实现10,000 TOPS/W的效率。虽然他们已经接近成功,但他们采用了一种基于sram的方法,这种方法的硅效率并不高。Imec技术人员Diederik Verkest表示:“该项目的目的是了解哪种(比特单元)选项最适合这种特定的应用。”他们正在探索许多新的架构思想,如果结果证明它们是正确的,这些思想将值得更详细的讨论。

GlobalFoundries/Imec的工作似乎不同于其他IMC架构。Imec的研发工程师约安尼斯·帕皮斯塔(Ioannes Papista)表示:“DAC将激活信息输入,然后将其转换为激活线上的脉冲宽度。”“根据脉冲宽度和载入计算单元的重量,我们在累加线上得到电荷,在ADC上转换成一个六位字。”


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

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

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

其他网络,如长短短期内存(LSTMS)和经常性神经网络(rnn)确实涉及一些反馈。反馈可能涉及在节点内保留的用于进一步处理的激活(同时也向前馈入),或者它们可能跳回一个以上的层。

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

另一方面,blaze使用了一种不同的方法。数据保留在适当的位置,以便在另一个节点中使用,但控件将被发送回主机以便重新调度。只要反馈不超过几层(确切数字不公开),那么图形元数据就可以让控制电路预测反馈。

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

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

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


图9.芯片片上的AI加速器的示例处理器。资料来源:Maxim集成

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

对于纯推理体系结构,这些函数由主机或其他处理器处理。“很多时候,进入加速器的数据需要以某种方式进行处理,而这正是我们架构中RISC-V的真正用途,”微软微系统、安全和软件业务部门的执行董事克里斯·阿迪斯(Kris Ardis)说马克西姆集成

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

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

处理记忆墙
许多这些架构的最大挑战是通过改善数据提取来降低功率。这意味着尽可能地保持数据,尽管存在广泛改变的方法。在某些情况下,它是关于数据所在的位置 - 所谓的“near-memory”计算。在其他情况下,它是关于隐藏取回。ai的首席执行官Krishna Rangasayee说:“我们已经能够将取回问题隐藏在计算周期之后。”虽然这隐藏了延迟,但它可能无法隐藏移动如此多数据所需的能力。

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

直接比较,风险自负
我们希望以一些简洁的方式总结这些不同的架构,但很难做到。除非公共网络上的共同模型在不同的架构上运行,否则苹果到苹果比较几乎是不可能的。基准旨在提供这一点,但是只有这些架构中的大多数都没有获得基准结果。即使存在,现有的基准网络也被认为太小,无法提供有意义的结果。

我们剩下的是营销人数。他们不一定是邪恶的,但他们确实必须用清晰的眼睛观察。我们将一些简单的参数一起拉到一张表中。它们最适合获得不同设备的应用程序。它们对于直接比较哪个设备更好。所有数据(除非另有说明)来自各自的公司,仅供简洁编辑。

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

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

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

  • “品牌”是设备,架构或技术品牌,可能与公司名称不同。
  • 差异化是概括架构“不同之处”的几个词。
  • “销售方式”盒子反映了架构的可用方式。至少一个是IP块;其他人是硅。有些是芯片提供的,其他可以在模块或卡上使用。有各种不同的卡格式可用。表格没有详细信息。它详细介绍了卡是否是一种选择。“卡”和“模块”都称为表中的“卡”。
  • 应用重点是公司承担他们正在解决的任务种类。不同的架构可以用于其他东西,因为它通常是市场焦点而不是技术的问题。但是一个很好的愿景架构可能对非视觉应用程序做得不佳。甚至在视觉中,并非所有申请都是相似的。


*不是完整的AI引擎,而是用于发动机的微GPU
图10:涵盖的架构的简要总结。不适合做苹果对苹果的比较。资料来源:Bryon Moyer/Sem德赢娱乐网站【官方平台】iconductor Engineering

这应该仍然是一个极具活力的空间,那些做得好的公司会有很多增长。GlobalFoundries计算业务部门副总裁兼总经理Hiren Majmudar表示:“人工智能加速器的增长速度在未来4到5年内可能达到2倍以上。”他补充称,这将使其保持一个具有吸引力的市场。

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



发表评论


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