ROSC用于神经网络加速器功能覆盖

文章:James Imber和Tim Atherton

虽然RISC(减少指令集电脑)设计哲学永远改变了整个计算机的面对计算,但本文对神经网络加速器的功能覆盖提供了新的功能:减少操作集计算或ROSC。

虽然精简指令集计算机(RISC)的设计理念已经永远改变了计算的面貌,但在这篇文章中,我们提出了一种新的神经网络加速器的功能覆盖:精简操作集计算(简称ROSC)。

看看RISC以及它是如何发展的,重点是一个小的、高度灵活的、允许更深层次的流水操作的低级指令集,将复杂性转移到编译器上,以及更好的整体性能。RISC已经在计算机体系结构中占主导地位几十年了,并且是当今领先的处理器体系结构的基础。

然而,RISC在计算以少量复杂操作类型主导的应用中蒸发的优点。这种计算问题的主要示例是卷积神经网络(CNN)推断,其中绝大多数计算和带宽要求是少量的图层类型:例如,卷积,池和激活。在这样的设置中硬件加速器被称为这些常用任务的专用,固定功能实现。除此之外,这将导致次优硬件,消耗更多的功率和区域,以达到每秒相同的目标操作数。

进入ROSC的概念

围绕高度优化的固定功能硬件构建神经网络加速器(NNA)可以很好地满足网络的绝大多数计算需求。然而,不可避免地会留下大量相对不常见的层类型:这些类型通常只占计算需求的一小部分,可能包括诸如softmax、argmax和全局缩减等层。我们需要一个好的方法来处理这些剩余的图层类型。

高度优化的、专用的硬件加速器的问题在于它们的焦点太狭窄:每个模块都必须设计得非常好地完成一项任务。这导致了狭窄的专门化,这通常被理解为将硬件的应用限制在其设计的领域。

简化操作集计算(ROSC)是想象力技术公司(IMG)的解决方案。它来自于这样一种认识,即一些硬件加速器包含一个高度伪装的通用操作集。ROSC正在从一个或多个可用的固定功能操作中构建新的操作(加速器上不存在专门的硬件)。

如何做到这一点在一开始是不明显的,经常需要一些创造力-硬件有时被用在高度非传统的方式!然而,由于建立了这样的技术库来实现常见的操作,重用它们来构建新的操作就变得越来越容易了。作为一种方法,这可以将加速器的灵活性扩展到其主要应用程序之外。它为硬件加速器带来了RISC的许多优点,如操作重用、通用性和编译器复杂性的改变,而不需要引入新的硬件。

ROSC的常规替代方案通常如下:

  • 在另一个设备上执行这些操作,例如CPU,GPU或DSP。这是不可取的,因为它会从系统的其余部分消耗系统带宽和有价值的计算资源。
  • 包括通用可编程单元,例如在设计内或旁边的微处理器。这增加了缺失的功能,但增加了硬件复杂性和电源和面积开销。与固定功能硬件相比,这种硬件的计算密度(每单位面积OPS)通常较低。
  • 为每个缺少的图层类型添加更多专用硬件块。虽然这允许对新模块的高度优化的实现,但它将架构置于永久上捕获到最先进的地位(即,它不是未来的)。它还导致硬件膨胀和黑暗硅的问题。

所有上述所有缺点都具有缺点,例如增加面积和功耗或消耗CPU时间和带宽的系统资源。相比之下,ROSC提供了一种优雅的方法来重用我们现有的固定功能硬件,以便常见的神经网络操作以覆盖各种各样的其他层类型。

使用ROSC构建复杂层

例如,softmax可以由硬件支持的操作构建,如下所示。本例中的目标体系结构是IMG的Series4 NNAs。

ROSC文章图1
  • 用一个加权张量与一个完全由1组成的单一滤波器进行1×1卷积,可以用来实现跨通道和。
  • 除法可以实现为一个张量与另一个张量的倒数的乘法。可以配置IMG Series4的LRN(本地响应规范化)模块来计算倒数。
  • 可以通过将通道转换到空间轴上并进行一系列空间最大池操作来完成交叉通道Max。然后,将其转回通道轴。
  • 由于指数限制为负和零输入值,激活LUT可以配置为一个指数衰减函数。

使用固定功能的硬件而不是通常的操作模式可以降低利用率。然而,将数据保存在设备上的好处通常大于坏处。例如,假设我们在上述的softmax实现中只实现了1%的4核IMG Series4 NNA。这个NNA在充分利用的情况下可以实现40个TOPS,所以即使在1%的利用率下,它仍然可以实现非常可观的400 GOPS。片上存储器的可用性加上Imagination的张量平铺算法意味着中间数据可以保持在本地,从而最大限度地减少带宽消耗。最后,我们避免了使用协处理器来执行这一层,也不需要消耗主机CPU时间。ROSC有利于代码重用。例如,一旦我们为softmax实现了分割和跨通道最大值,我们就可以在其他层中重用这些实现。考虑下面的实例规范化实现,它重用了softmax的划分实现。平方根操作也是通过LRN模块实现的。 The global mean reduction uses the same trick as we used for global max reduction in softmax.

ROSC文章图2

很容易看出如何以这种方式建立可重复使用的低级构建块库,使其逐渐更简单地实现新图层类型。这就是我们如何使用ROSC实现妇女的怎样。ROSC自然地适合在现有的图表中降低编译器,如发光和TVM,在那里我们可以将高级层分解为计算图表,如上所示,并使用由原始神经网络操作组成的子图替换每个部分。

在由一小组复杂操作主导的应用程序中,例如神经网络推断,使用固定功能硬件最大化计算密度,从而导致CISC处理器具有极其有限的功能覆盖。但是,我们发现我们可以重新任务专用NNA硬件(在我们的情况下,IMG系列4),以覆盖令人惊讶的层类型。

以这种极不正常的方式使用硬件会降低利用率。然而,工作负载的部分我们将它应用到很小,我们经常发现它是一个值得付出的代价提高整体性能,并减少带宽和权力,尤其是NNA如此强大而其他可用的设备在一个典型的SoC。

本文最初发表于嵌入式

詹姆斯imber.是Imagination Technologies'AI研究团队的成员,他主要用于神经网络加速器,编译器和低精密推断靶向嵌入式系统。在半导体知识产权行业的研究员中,他累积了九年的研究员,累计了24项授予专利,并为国际计算机视觉会议的出版物贡献,包括ECCV和ICPR。他在Surrey大学进行了他的博士学位,掌握了言论,言语处理(CVSP)的形状辅助内在图像分解,并占据了电子工程大学的蚌。

蒂姆·阿瑟顿他是想象力技术公司人工智能研究主管。在加入Imagination之前,Tim是华威大学(Warwick University)的一位获奖学者(计算机科学),专门从事生物视觉的数学模型、高性能计算(HPC)架构以及向商业和政府组织的技术转移。

留下你的评论