一种基于注意力区域的DCNN加速器制造技术

技术编号:37259128 阅读:26 留言:0更新日期:2023-04-20 23:34
一种基于注意力区域的DCNN加速器,通过对注意力区域周期性的更新,识别准确率高,计算量低;在硬件上设计多个计算核心,并动态分配子图片以应对不同的计算场景;进行卷积核级的细粒度精度量化,提出卷积核/输出通道重排列的方法支持不同精度卷积核的计算;对卷积窗口集进行实时精度量化,可以实时对输出特征图进行零率检测,并设计适应性的PE与PE Array;设计具有“二维数据滑动”功能的OS数据流体系,可以将数据最大程度保留在PE内部从而在时间和空间上复用Weight和Activation数据,从而减少数据传输带宽和重复数据传输造成的额外功耗,同时可以很好地支持在线卷积窗口集实时零率检测。检测。检测。

【技术实现步骤摘要】
一种基于注意力区域的DCNN加速器


[0001]本专利技术涉及目标检测领域,具体涉及一种基于注意力区域的DCNN加速器。

技术介绍

[0002]在以往的one stage目标检测中,没有针对视频流优化检测方法的硬件加速器。然而在视频目标检测中,不同于图片检测,相邻几帧具有很强的内容关联性。这意味着可以预知下一帧目标出现的位置并判断出视野中哪些区域是没有价值的。此外,以往的工作中,可重配置计算精度的加速器往往是先对DCNN模型离线进行精度需求量化,并且量化的粒度仅仅是层级粒度Layer level。这种方法有一定的缺点:第一,Layer level的精度量化无法区别同一层中不同卷积核的重要程度,显得比较粗糙;第二,离线的精度量化无法在模型运行中动态地对各层特征图Feature Map的不同区域(卷积窗口集,Conv Windows Set)进行量化。这些缺点使得这些加速器面临一些局限性:第一,加速器可能要做更多没有必要的高精度计算,增加了计算资源开销。第二,无法针对不同的视频流进行动态的计算精度调整,缺乏灵活性。
[0003]在硬件方面,GPU的并行能力主要体现在利用大量的流处理器,进行多个图片并行处理,因此GPU适合批量图片的训练。但在视频目标实时识别任务中,视频帧是顺序到来的,对单张图片的计算时间非常敏感,加速器必须按顺序处理视频帧。特别是在帧率要求极高的场景下(60fps、120fps),比如自动驾驶中对危险目标的提前识别预测对于驾驶安全至关重要,毫秒级的提前识别预测可以缩短几米乃至数十米的刹车距离。很多论文的背景介绍中都提出了GPU在这方面的缺陷,即无法发挥其批量图片的并行处理能力。因此以往的设计中,往往通过提高单个核心的处理性能来提高视频目标实时识别能力,例如设计多个Pile提升卷积核级并行。此外,对地面目标识别的无人机往往拥有高分辨率的航拍视频,这种应用对实时处理性能提出了更高的要求。

技术实现思路

[0004]针对上述
技术介绍
中存在的问题,提出一种基于注意力区域的DCNN加速器,从两大方向对计算量进行修剪:一是减少参与计算的图像区域,减少可能没有目标的区域的计算量;二是细粒度地进行计算精度量化,减少不必要的高精度计算。其次,在硬件上将GPU的多张并行处理的优势带入加速器。综上,结合多个改进方式来实现高效率的视频流目标检测和动态精度重配置计算。
[0005]一种基于注意力区域的DCNN加速器,基于多核心架构,每个核心处理一个子图像;当子图像较大时,将其分解为两个部分交给两个核心进行处理;核心之间进行数据的通信;
[0006]加速器进行目标识别时,核心的并行方式首先为子图像并行,在子图像重新组合后,完整特征图被广播到所有Node中,不同的Node获得不同的卷积核,Node之间转变为卷积核级并行;
[0007]对于待目标识别的视频流,每隔固定时间对其中完整的帧图像进行检测识别,加
速器根据检测结果更新注意力区域;在其他时间,加速器只检测注意力区域;其中注意力区域包括比被识别的目标框长与宽稍大的区域和图像的边缘区域;
[0008]加速器中,分别对于子图像的Weight数据和Activation数据进行细粒度精度量化的处理,包括对于Weight数据的基于零率占比标记计算精度及排序输出的卷积核粒度分析、以及对于Activation数据的基于零率阈值标记计算精度及排序输出的卷积窗口集粒度量化。
[0009]本专利技术达到的有益效果为:
[0010]1)提出了注意力机制。大部分时候加速器只检测注意力区域的图像,通过对注意力区域周期性的更新,从而既可获得较高的识别准确率,又大大降低了需要的计算量。在硬件上,芯片中设计了多个计算核心,加速器为这些核心动态分配子图片以应对「计算不同大小的注意力区域」和「计算整张图像」两种计算场景。
[0011]2)对DCNN模型进行离线的卷积核级的细粒度精度量化,提出卷积核/输出通道重排列的方法来支持加速器对不同精度卷积核的计算;
[0012]3)在线对FeatureMap的各个分区即卷积窗口集进行实时精度量化,提出了一种在线零率检测器,可以实时对输出特征图进行零率检测。并设计了适应于这种方法的PE与PEArray。
[0013]4)设计的8个PEArray与WeightRegFiles、RightRegFiles和BottomRegFiles组成了具有“二维数据滑动”功能的OS数据流体系,可以将数据最大程度保留在PE内部从而在时间和空间上复用Weight和Activation数据,从而减少数据传输带宽和重复数据传输造成的额外功耗;同时可以很好地支持在线卷积窗口集实时零率检测。
附图说明
[0014]图1为本专利技术实施例中的图像注意力区域并行处理示意图。
[0015]图2为本专利技术实施例中的Node结构示意图。
[0016]图3为本专利技术实施例中的注意力机制运行方式示意图。
[0017]图4为本专利技术实施例中的注意力区域合并和拆分示意图。
[0018]图5为本专利技术实施例中的PE内部结构示意图。
[0019]图6为本专利技术实施例中的PEArray工作流程示意图。
[0020]图7为本专利技术实施例中的PEArray对通道进行重新排序的流程示意图。
[0021]图8为本专利技术实施例中的不同精度的Activation数据和Weight数据在加速器中的数据流示意图。
[0022]图9为本专利技术实施例中的不同目标密集程度的视频下不运行与运行注意力机制的Performance提升示意图。
具体实施方式
[0023]下面结合说明书附图对本专利技术的技术方案做进一步的详细说明。
[0024]在本实施例提出的注意力机制中,加速器会从图片中取出多个子图片,这些子图像的形状大小并不相同。尽管他们使用相同的卷积核进行卷积运算,但由于尺寸的差异,这些子图像的计算进度是不一样的。如果使用单个性能极高、规模庞大的核心处理这些子图
像,可能会带来一些弊端:一是子图像计算进度不统一会造成计算资源的空闲等待;二是会大大增加进度控制方面的开销。为了解决这些问题,希望将这些子图像相对独立地进行处理。这里称子图像「相对独立」,是因为在YOLO这样的OneStage多目标识别中,在后期子图像最终要嵌入到原本尺寸的图像中,或者说子图片不能完全作为独立的图片运行YOLO模型。
[0025]如图1,图像的注意力区域被交付给多个Node并行处理,加速器进行子图像并行。在DCNN模型后期,合并的完整图形被广播给所有Node,每个Node处理一部分kernel,加速器转变为卷积核级并行。
[0026]因此,提出了多个核心的加速器架构。每个核心可以处理一个子图像;当子图像较大时,将其分解为两个部分交给两个核心进行处理。并且,这些核心之间可以进行数据的通信。针对于YOLO这样的One Stage多目标识别模型,这些核心的并行方式可以被改变:在模型后期,核心的并行方式从子图像并行转变为卷本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于注意力区域的DCNN加速器,其特征在于:所述加速器基于多核心架构,每个核心处理一个子图像;当子图像较大时,将其分解为两个部分交给两个核心进行处理;核心之间进行数据的通信;所述加速器进行目标识别时,核心的并行方式首先为子图像并行,在子图像在重新组合后,完整特征图被广播到所有Node中,不同的Node获得不同的卷积核,Node之间转变为卷积核级并行;对于待目标识别的视频流,每隔固定时间对其中完整的帧图像进行检测识别,加速器根据检测结果更新注意力区域;在其他时间,加速器只检测注意力区域;其中注意力区域包括比被识别的目标框长与宽稍大的区域和图像的边缘区域;所述加速器中,分别对于子图像的Weight数据和Activation数据进行细粒度精度量化的处理,包括对于Weight数据的基于零率占比标记计算精度及排序输出的卷积核粒度分析、以及对于Activation数据的基于零率阈值标记计算精度及排序输出的卷积窗口集粒度量化。2.根据权利要求1所述的一种基于注意力区域的DCNN加速器,其特征在于:加速器由多个核心Node和一个中心核心CentralNode组成;Node之间通过片上网络NoC相互连接与通信;CentralNode中运行顶层逻辑,包括运行注意力机制、对Node的计算任务分配、后期的数据Reshape;每个Node独立运行卷积神经网络CNN;每个Node由8个PE阵列PEArray、权重寄存器堆WeightRegFiles、底寄存器堆Bottom RegFiles、右寄存器堆RightRegFiles、零率检测器ZeroDetector、重排序缓存RearrangeBuffer、512KB和256KB突触/神经元缓存Synapses/NeuralBuffer、网络接口NetworkInterface和控制单元ControlUnit组成;ControlUnit从指令缓存InstBuffer读取指令控制Node的运行;512KB和256KB大小的Synapses/NeuralBuffer的存储内容能够调换;Synapses/NeuralBuffer向BottomRegFiles和Right RegFiles传输Activation数据、向WeightRegFiles传输Weight数据;其中每个PE阵列由16个处理单元PE组成。3.根据权利要求1所述的一种基于注意力区域的DCNN加速器,其特征在于:当加速器进行子图像并行时,利用512KB的Synapses/NeuralBuffer用于存储权重Weight数据,256KB的Synapses/NeuralBuffer用于存储激活Activation数据;当加速器由子图像并行转变为卷积核级并行时,512KB的Synapses/NeuralBuffer用于存储Activation数据,256KB的Synapses/NeuralBuffer用于存储Weight数据。4.根据权利要求2所述的一种基于注意力区域的DCNN加速器,其特征在于:PEArrays从RegFiles读取参与计算的数据;每个PE Array的输出数据经过一个ZeroDetector,ZeroDetector用于检测输出数据的零率;经过ZeroDetector的数据存入Rearr...

【专利技术属性】
技术研发人员:陈小柏胡秋润
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1