OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5634|回复: 0

用于 NNA 功能覆盖的简化操作集计算 (ROSC)

[复制链接]

221

主题

221

帖子

0

精华

高级会员

Rank: 4

积分
762
金钱
762
注册时间
2021-5-18
在线时间
28 小时
发表于 2021-6-18 10:27:02 | 显示全部楼层 |阅读模式
虽然 RISC(精简指令集计算机)设计理念永远改变了计算的面貌,但在本文中,我们提出了神经网络加速器功能覆盖的新观点:精简操作集计算,或 ROSC。
看看 RISC 及其演变过程,重点是一个小型、高度灵活和低级的指令集,允许更深层次的流水线操作,将复杂性转移到编译器,以及更好的整体性能。RISC 几十年来一直主导着计算机架构,并且是当今领先处理器架构的基础。
然而,在计算由少数复杂操作类型主导的应用程序中,RISC 的优势消失了。此类计算问题的一个主要示例是卷积神经网络 (CNN) 推理,其中绝大多数计算和带宽要求针对少数层类型:例如,卷积、池化和激活。在这样的环境中,需要硬件加速器来实现这些常见任务的专用、固定功能的实现。执行除此之外的任何其他操作都将导致硬件欠佳,消耗更多功率和面积以达到每秒相同的目标操作数。
输入ROSC的概念
围绕高度优化的固定功能硬件构建神经网络加速器 (NNA) 可以很好地满足网络的绝大多数计算要求。然而,不可避免地会留下大量相对不常见的层类型:这些通常只占计算需求的一小部分,并且可能包括诸如 softmax、argmax 和全局缩减等层。我们需要一个很好的方法来处理这些剩余的图层类型。
高度优化的专用硬件加速器的问题在于它们的重点很窄:每个模块都必须设计为非常好地完成一项任务。这导致了狭隘的专业化,这通常被理解为将该硬件的应用限制在其设计的领域。
简化操作集计算 (ROSC) 是 Imagination Technologies (IMG) 对此问题的解决方案。它来自于认识到某些硬件加速器包含高度伪装的通用操作集。ROSC 正在从一个或多个可用的固定功能操作中构建新操作(加速器上不存在专用硬件)。
如何做到这一点起初并不明显,通常需要一些创造力——硬件有时会以非常非正统的方式使用!然而,随着此类技术库的建立以实现常见操作,重用它们来构建新操作变得越来越容易。作为一种方法,这可以将加速器的灵活性扩展到其主要应用之外。它为硬件加速器带来了 RISC 的许多优点,例如操作重用、通用性和将复杂性转移到编译器,而无需引入新硬件。
更传统的 ROSC 替代方案通常如下:
在其他设备上执行这些操作,例如 CPU、GPU 或 DSP。这是不可取的,因为它消耗了系统带宽和系统其余部分的宝贵计算资源。
在设计内部或旁边包括一个通用可编程单元,例如微处理器。这增加了缺失的功能,但增加了硬件复杂性以及功率和面积开销。与固定功能硬件相比,这种硬件的计算密度(每单位面积的操作数)通常较低。
原文链接:https://www.yunduoketang.com/article/wangkerj0.html
为每个缺失的层类型添加更多专用硬件块。尽管这允许对新模块进行高度优化的实现,但它使架构处于永远追赶最先进技术的位置(也就是说,它不是面向未来的)。它还导致硬件膨胀和暗硅问题。
以上都有缺点,例如增加面积和功耗或消耗CPU时间和带宽等系统资源。相比之下,ROSC 提供了一种优雅的方式来重用我们现有的固定功能硬件,用于常见的神经网络操作,以覆盖非常广泛的其他层类型。
使用 ROSC 构建复杂层
例如,softmax 可以由硬件支持的操作构建,如下所示。本例中的目标架构是 IMG 的 Series4 NNA。


带有权重张量的 1×1 卷积和一个完全由 1 组成的单个滤波器可用于实现跨通道求和。
除法可以实现为一个张量与另一个张量的倒数相乘。IMG Series4 的 LRN(本地响应归一化)模块可配置为计算倒数。
跨通道最大值可以通过将通道转置到空间轴上并执行一系列空间最大池化操作来完成。之后,它被转置回通道轴上。
由于指数仅限于负值和零输入值,因此可以使用指数衰减函数配置激活 LUT。
以不同于通常操作模式的方式使用固定功能的硬件会降低利用率。尽管如此,将数据保存在设备上的好处通常大于弊端。例如,假设对于上述 softmax 实现,我们仅实现了 4 核 IMG Series4 NNA 的 1% 利用率。这个 NNA 可以在充分利用时达到 40 TOPS,所以即使在 1% 的利用率下,这仍然可以达到非常可观的 400 GOPS。片上存储器的可用性与 Imagination 的张量平铺算法相结合意味着中间数据可以保存在本地,从而最大限度地减少带宽消耗。最后,我们避免了需要协处理器来执行这一层,也不需要消耗主机 CPU 时间。ROSC 有利于代码重用。例如,一旦我们为 softmax 生成了划分和跨通道最大值的实现,我们就可以在其他层中重用它们。考虑下面的实例归一化实现,它重用了来自 softmax 的除法实现。平方根运算也是通过 LRN 模块实现的。全局均值缩减使用的技巧与我们在 softmax 中用于全局最大缩减的技巧相同。


很容易看出如何以这种方式构建可重用的低级构建块库,从而使实现新层类型变得越来越简单。这就是我们如何使用 ROSC 实现面向未来的方法。ROSC 也很自然地适合现有的图形降低编译器,例如 Glow 和 TVM,我们可以在其中将高级层分解为如上所示的计算图,并用由原始神经网络操作组成的子图依次替换每个部分。
在由一小组复杂操作(例如神经网络推理)主导的应用中,使用固定功能硬件最大化计算密度,导致 CI​​SC 处理器乍一看功能覆盖范围极其有限。但是,我们发现我们可以重新分配专用 NNA 硬件(在我们的案例中为 IMG 系列 4)以覆盖范围非常广泛的层类型。
以这种非常非正统的方式使用硬件往往会降低利用率。然而,我们应用它的部分工作负载很小,我们发现它通常是值得付出的代价,因为它提高了整体性能,并降低了带宽和功率,特别是因为与其他可用的 NNA 相比,它的计算能力如此强大典型 SoC 中的设备。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 18:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表