当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于一维脉动阵列的通用卷积神经网络加速器制造技术

技术编号:21454889 阅读:44 留言:0更新日期:2019-06-26 05:04
本发明专利技术公开一种基于一维脉动阵列的通用卷积神经网络加速器,AXI4总线接口用于实现模式配置指令的载入以及待计算数据的读取与结果数据的批量发送;模式配置器通过模式配置指令配置各个功能模块为对应工作类型;数据调度模块可并发进行待计算数据缓存、计算数据读取、卷积结果缓存以及卷积结果处理与输出任务;卷积计算模块采用一维脉动阵列的模式进行卷积计算;待计算数据缓存区、卷积结果缓存区、输出结果缓冲FIFO,用于缓存对应数据;结果处理模块进行卷积神经网络中常见的结果处理操作。此种加速器能够兼容卷积神经网络中的不同计算类型并进行高并行度计算来有效加速,同时只需要较低的片外访存带宽需求以及少量的片上存储资源。

【技术实现步骤摘要】
一种基于一维脉动阵列的通用卷积神经网络加速器
本专利技术属于电子信息和深度学习
,特别涉及一种基于一维脉动阵列(1-DSystolicArray)的通用卷积神经网络硬件加速器。
技术介绍
近年来,深度卷积神经网络近来受到了广泛的关注,从2012年GoogleBrain团队使用深度神经网络“认猫”到16/17年Deepmind团队的AlphaGO/AlphaZero在围棋场上的所向无敌,以卷积神经网络为代表的“深度学习”,吸引到的不仅仅是大众的目光,还有学术界与产业界极大的兴趣。通过研究人员和工程师们的努力,现在卷积神经网络已经在很多方向上得到了广泛的应用,例如图像识别、目标检测、自然语言处理等。但高性能的卷积神经网络所需参数量与计算量也非常大,如针对高清图像的检测/识别/语义分割等任务,仅仅模型的权重数据便高达数百兆字节,即便是推断过程也往往需要数十至数千亿的乘累加操作,数据的访存频率、计算量、存储空间需求无不给计算平台带来很大的压力,需要找到方法构建一个高性能的通用卷积神经网络硬件加速器以解决上述问题,本案由此产生。
技术实现思路
本专利技术的目的,在于提供一种基于一维脉动阵列的通用卷积神经网络加速器,其可兼容卷积神经网络中的不同计算类型并进行高并行度计算来有效加速,同时只需要较低的片外访存带宽需求以及少量的片上存储资源。为了达成上述目的,本专利技术的解决方案是:一种基于一维脉动阵列的通用卷积神经网络加速器,包括:AXI4总线接口,是基于AXI总线协议的面向地址映射的高性能总线接口,通过其实现模式配置指令的载入以及待计算数据的读取与结果数据的批量发送,加速器可直接挂载到支持AXI4协议的主设备上工作;模式配置器,通过模式配置指令配置各个功能模块为对应工作类型,从而适配不同类型的卷积神经网络计算模式;数据调度模块,可并发进行待计算数据缓存、计算数据读取、卷积结果缓存以及卷积结果处理与输出任务,内置的数据调度逻辑可大幅减少外部指令开销并提高数据调度效率;卷积计算模块,作为卷积神经网络加速器的主体,其卷积计算单元的并行度为N,单个卷积计算单元内部包含L×M个乘累加单元,采用一维脉动阵列的模式进行卷积计算并针对多种卷积类型做了结构优化,卷积计算单元后跟一个J级加法树进行计算结果的整合,J等于log2N;待计算数据缓存区、卷积结果缓存区、输出结果缓冲FIFO,用于缓存对应数据,待计算数据缓存区包括N个特征图缓存单元和权重缓存单元,特征图缓存单元采用乒乓操作,保存当前计算需要的特征图行像素值及下一次计算需要的特征图行像素值,卷积结果缓存区及输出结果缓冲FIFO并行度均为M,卷积计算完成后数据由卷积结果缓存区取出,经由结果处理模块处理后通过输出结果缓冲FIFO传出;结果处理模块,包括标准化、池化、激活函数、量化处理四个子模块,对应四种卷积神经网络中常见的结果处理操作,并行度为M,卷积结果以流水线的方式依次经过这四个模块的处理,其中标准化模块简化成标准化系数乘加操作,激活模块采取Relu激活函数,池化模块与量化模块设计了可配置分支以对应不同的池化类型与量化精度。上述卷积计算模块采用一维脉动阵列的组合形式进行并行卷积计算,由N个卷积计算单元组成,每个卷积计算单元对应一个特征图缓存单元和一个权重缓存单元;根据卷积核的行数KH,又可以将卷积计算单元分成G组,G等于每批计算时特征图缓存单元分别缓存有G个特征图输入通道的KH行数据中的一行,而同一组权重缓存单元均缓存M个卷积核的该组对应通道的权重,对应输入通道不改变时下一批轮计算时只需更新每组特征图缓存单元中的S个缓存单元即可,S为卷积步长。上述卷积计算单元执行计算时,通过L级移位寄存器提供特征图行数据给卷积计算单元阵列而无需额外展开,同时权重缓存单元直接提供M个卷积核的相应位置权重值,即一个卷积计算单元L×M阵列每次计算可完成L个特征图数据与M个权重数据两两之间的定点数乘法并可累加同位置上次计算的结果。上述卷积计算模块在卷积计算单元输出结果时,会通过J级加法树对N个卷积计算单元对应位置结果进行累加,包括同一卷积核同一通道KH行结果累加×同一卷积核G通道累加,将累加结果行L个结果拼接后存入M个卷积结果缓存区。在卷积结果缓存区到输出缓冲FIFO之间增加了结果处理模块,可将与卷积层相关联的计算全部在加速器内完成,结果处理模块包括标准化、池化、激活、量化四个子模块,卷积结果以流水线的方式依次经过这四个功能模块的处理,其中标准化模块将偏置加法与标准化过程简化成一次标准化系数乘加操作,激活模块采取Relu激活函数,池化模块与量化模块设计了可配置处理分支以对应不同的池化类型与量化精度。上述AXI4总线接口与各缓存区会将多组数据合并后进行收发,提高传输效率。采用上述方案后,本专利技术注重卷积神经网络硬件加速器的通用性及内部数据复用性,基于一维脉动阵列的计算结构既可能灵活的实现多种计算模式,又可以方便的实现片内特征图数据复用和权重复用以提高计算效率;通过数据调度模块、数据缓存区、卷积计算模块的相互配合,保证了该卷积神经网络硬件加速器的高效运行,降低了通信等待时间;结果处理模块的加入令该加速器能完成卷积神经网络模型的绝大部分工作加速,提高最终系统的运行效率。本专利技术在基于YOLO算法的物体检测分类应用中得到验证,在FPGA平台上使用100MHz的工作频率,使用计算阵列大小为3×8,并行度为32的卷积计算单元,输入数据精度为8位定点数的情况下,最大算力可达150GOPS,对1280pixels×720pixels的视频流可进行实时处理检测分类任务,即处理速度达到30FPS,同时精度损失不超过5%。附图说明图1是本专利技术的组成结构示意图;图2是本专利技术的缓存-计算执行结构示意图;图3是本专利技术卷积计算单元结构示意图;图4是本专利技术结果处理模块分支示意图。具体实施方式以下将结合附图,对本专利技术的技术方案及有益效果进行详细说明。如图1所示为本专利技术设计的加速器各模块组成结构,其工作方法如下:片外处理器预先向加速器发送模式配置指令,模式配置器接收指令后对其进行解码,并依此对各功能模块的配置端口置位或对配置寄存器赋值。数据调度模块的可配置部分包括特征图行长ML、卷积核行数KH、卷积核列数KL、卷积核步长S、卷积核个数KC、特征图填充数PAD、单通道计算行数LC、池化类型PT、数据更新模式DR这几个配置寄存器。当片外处理器通过AXI4总线接口从片外存储器(实施例中为DDR3)发来有效数据时,数据调度模块根据特征图行长ML数值将特征图数据按行存放到各个特征图存储单元,数据更新模式DR为全部更新时会将下一批特征图数据依次写入各组所有的特征图缓存单元,部分更新时每组只轮流更新参考卷积核步长S个特征图缓存单元;再依据卷积核行数KH、卷积核列数KL、卷积核步长S、卷积核个数KC的数值信息,将权重值分别按通道存放在各组卷积核存储单元里;标准化系数则在输出处理前存放在M个标准化参数存储区里,数据总量只有2×KC个。在收到片外处理器的计算命令后,加速器开始执行计算任务,此时数据调度模块自发进行待计算数据对齐取出,对单个特征图存储单元而言,在取出其中所存特征图行的起始和结束位置时,会依特征图填充数PAD自动补零填充,每KL次移位计算将完成本文档来自技高网...

【技术保护点】
1.一种基于一维脉动阵列的通用卷积神经网络加速器,其特征在于包括:AXI4总线接口,用于连接片外处理器和片外存储器,实现模式配置指令的载入、待计算数据的读取及结果数据的发送;模式配置器,用于根据模式配置指令将各个功能模块设置为对应工作类型,从而适配不同类型的卷积神经网络计算模式;数据调度模块,用于并发进行待计算数据缓存、计算数据读取、卷积结果缓存及卷积结果处理与输出任务;卷积计算模块,包含N个卷积计算单元和一个J级加法树,J等于log2N,N个卷积计算单元的输出端均连接加法树,每个卷积计算单元内部包含L×M个乘累加单元;结果处理模块,用于完成与卷积层相关联的计算,并将计算结果送入输出结果缓冲FIFO;以及,待计算数据缓存区、卷积结果缓存区、输出结果缓冲FIFO,用于缓存对应数据;待计算数据缓存区包括N个特征图缓存单元和权重缓存单元,特征图缓存单元采用乒乓操作,保存当前计算需要的特征图行像素值及下一次计算需要的特征图行像素值;卷积结果缓存区及输出结果缓冲FIFO并行度均为M,卷积计算完成后数据由卷积结果缓存区取出,经由结果处理模块处理后通过输出结果缓冲FIFO传出。

【技术特征摘要】
1.一种基于一维脉动阵列的通用卷积神经网络加速器,其特征在于包括:AXI4总线接口,用于连接片外处理器和片外存储器,实现模式配置指令的载入、待计算数据的读取及结果数据的发送;模式配置器,用于根据模式配置指令将各个功能模块设置为对应工作类型,从而适配不同类型的卷积神经网络计算模式;数据调度模块,用于并发进行待计算数据缓存、计算数据读取、卷积结果缓存及卷积结果处理与输出任务;卷积计算模块,包含N个卷积计算单元和一个J级加法树,J等于log2N,N个卷积计算单元的输出端均连接加法树,每个卷积计算单元内部包含L×M个乘累加单元;结果处理模块,用于完成与卷积层相关联的计算,并将计算结果送入输出结果缓冲FIFO;以及,待计算数据缓存区、卷积结果缓存区、输出结果缓冲FIFO,用于缓存对应数据;待计算数据缓存区包括N个特征图缓存单元和权重缓存单元,特征图缓存单元采用乒乓操作,保存当前计算需要的特征图行像素值及下一次计算需要的特征图行像素值;卷积结果缓存区及输出结果缓冲FIFO并行度均为M,卷积计算完成后数据由卷积结果缓存区取出,经由结果处理模块处理后通过输出结果缓冲FIFO传出。2.如权利要求1所述的加速器,其特征在于:所述卷积计算模块中的每个卷积计算单元对应一个特征图缓存单元和一个权重缓存单元,根据卷积核的行数KH,将卷积计算单元分成G组,G等于每批计算时特征图缓存单元分别缓存有G个特征图输入通...

【专利技术属性】
技术研发人员:陆生礼庞伟罗几何李宇峰
申请(专利权)人:东南大学东南大学—无锡集成电路技术研究所
类型:发明
国别省市:江苏,32

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

1