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

一种流水式卷积计算架构设计方法及残差网络加速系统技术方案

技术编号:28625312 阅读:14 留言:0更新日期:2021-05-28 16:21
本发明专利技术提供一种流水式卷积计算架构设计方法及残差网络加速系统,该方法将该硬件加速架构分为片上缓冲区、卷积处理阵列和逐点加法模块;设置该硬件加速架构的主路由三块串行排列的卷积处理阵列组成,在它们之间插入两块流水线缓冲区,用于实现主路的三层卷积的层间流水;设置第四卷积处理阵列用于并行处理残差积木块分支的内核大小为1×1的卷积层,通过配置第四卷积处理阵列中的寄存器,改变其工作模式,使其可用于计算残差网络头部卷积层或全连接层,当残差积木块的分支无卷积时,跳过第四卷积处理阵列不执行卷积;设置逐点加法模块将残差积木块主路的输出特征与分支快捷连接的输出特征执行对应输出特征像素逐元素相加。

【技术实现步骤摘要】
一种流水式卷积计算架构设计方法及残差网络加速系统
本专利技术涉及计算机视觉场景处理方法领域,更具体地,涉及一种流水式卷积计算架构设计方法及残差网络加速系统。
技术介绍
卷积神经网络(CNN)在各种计算机视觉场景中使用广泛,并表现出了优越的性能。但是由于复杂密集的计算需求以及庞大的存储需求,使得在功耗敏感和实时性要求较高的的移动设备、嵌入式平台上部署和加速卷积神经网络成为一项挑战。在卷积神经网络中,卷积层的计算时间占据网络总计算时间的90%以上,因此,卷积层运算的加速是卷积神经网络加速最重要的组成部分。卷积神经网络的加速器的设计应充分利用卷积神经网络中层与层之间、层内各个卷积核的并行度,同时针对网络模型的特征定制卷积运算模块。现场可编程逻辑门阵列(FPGA)是专用集成电路中的一种半定制电路,是可编程的逻辑器件,随着半导体技术的不断升级和发展,现在主流的FPGA包含了丰富的逻辑计算,存储和布线资源,同时具有低功耗优势,使得研究人员有足够的设计空间来定制专用的卷积神经网络加速硬件结构,以充分利用卷积神经网络计算的并行特性来加速运算过程。残差网络是近年来在计算机视觉领域备受关注的卷积神经网络模型,与传统卷积神经网络的逐层简单堆叠不同的是,残差网络采用了分支快捷连接构建了残差积木模块,有效解决了随着网络层数的加深,训练和测试精度退化问题,使得网络能够更容易的通过堆叠层数来提升性能。但是目前在FPGA上部署残差网络的相关研究数量较少。因为残差网络的层数较深,各层的尺寸有所不同,而且每两个或三个相邻的层之间使用了分支快捷连接对特征图像进行累加,这使得网络的结构高度不规则,与传统CNN相比,在FPGA上部署残差网络难度更高。目前的很多研究都是设计单个卷积处理阵列模块来处理残差网络的卷积运算,卷积处理阵列每次计算网络中的一层卷积,并通过中央处理器重复调用这一卷积处理阵列来逐层计算残差网络的所有卷积层。残差网络的结构主要由带有分支快捷连接的残差积木模块堆叠构成(图1),主路通常由内核尺寸为1×1、3×3和1×1的三层卷积层组成(因此也称为瓶颈积木块),分支快捷连接存在两种情况:1)使用内核尺寸为1×1的卷积层计算输入特征,得到的结果再与主路的输出特征对应像素逐点相加;2)不进行任何处理,直接将输入特征数据与主路的输出特征对应像素逐点相加。图2为现有的使用单一卷积处理阵列计算残差网络某一层的执行流程,每执行一次此流程,可完成残差网络的一层计算。现有的使用单一卷积处理阵列模块来加速卷积神经网络的解决方案适合用来处理传统的简单逐层堆叠结构的卷积神经网络模型,具有一定的通用性。但由于计算每层卷积计算开始前和计算结束后都需要访问一次外部存储器,而残差网络通常具有较深的网络层数,因此带来了大量的能量消耗和访存延迟;由于残差网络结构的特殊性,使用单一的卷积处理阵列只能串行执行残差积木块主路和分支快捷连接的卷积层后,再进行逐点相加,无法充分利用其结构的并行性;同时,残差网络卷积层的尺寸多样,使用单一的卷积处理阵列处理不同尺寸的卷积通常无法实现较高的硬件资源利用率。
技术实现思路
本专利技术提供一种较高的硬件利用率流水式卷积计算架构设计方法。本专利技术的又一目的在于利用该流水式卷积计算架构设计方法设计一种残差网络加速器系统。为了达到上述技术效果,本专利技术的技术方案如下:一种流水式卷积计算架构的设计方法,包括以下步骤:S1:将该硬件加速架构分为片上缓冲区、卷积处理阵列和逐点加法模块;S2:设置该硬件加速架构的主路由三块串行排列的卷积处理阵列组成,在它们之间插入两块流水线缓冲区,用于实现主路的三层卷积的层间流水,所述流水线缓冲区设置在片上缓冲区内;S3:设置第四卷积处理阵列用于并行处理残差积木块分支的内核大小为1×1的卷积层,通过配置第四卷积处理阵列中的寄存器,改变其工作模式,使其可用于计算残差网络头部卷积层或全连接层,当残差积木块的分支无卷积时,跳过第四卷积处理阵列不执行卷积;S4:设置逐点加法模块将残差积木块主路的输出特征与分支快捷连接的输出特征执行对应输出特征像素逐元素相加。进一步地,所述缓冲区包括输入缓冲区、流水线缓冲区、输出缓冲区和权重缓冲区;其中,输入缓冲区用于缓存从片外存储器中读取的特征数据切片,并为残差积木块主路的第一卷积处理阵列和第四卷积处理阵列所共享以提供特征输入;在用于计算残差积木模块主路卷积的第一卷积处理阵列和第二卷积处理阵列的输出端应用流水线缓冲区;流水线缓冲区,用于缓存第一卷积处理阵列的输出特征,即缓存第二卷积处理阵列的输入特征;在残差积木块主路的第三卷积处理阵列的输出端设置第一输出缓冲区,在分支快捷连接处的第四卷积处理阵列的输出端设置第二输出缓冲区,用于存储卷积输出特征结果,根据后续的运算过程不同,输出缓冲区中的数据可能会被送到逐点加法模块、池化运算单元或通过直接存储器访问模块写回外部存储器;权重缓冲区用于缓存各层卷积对应的权重数据切片,由于使用了流水线技术处理主路的三层卷积,为了使得下一级流水更快开始启动同时最小化流水线缓冲区的大小,卷积计算的循环顺序设计为先将某一输出特征对应的所有输出通道计算完毕,再更换输出特征,按照这一顺序将所有输出特征计算完毕,避免了缓冲区的输入特征切片的重复加载,但是造成了权重缓冲区的重复加载用以更换权重切片,为此设计每个卷积处理阵列都配有两块权重缓冲区:权重缓冲区a、权重缓冲区b,实现乒乓缓冲权重切片,用于重叠卷积计算延迟和加载权重的延迟;逐点加法模块用于将残差积木块主路的输出特征与分支快捷连接的输出特征执行对应输出特征像素逐元素相加;首先从主路的第一输出缓冲区和第二输出缓冲区分别读取对应的输出特征进行加法运算,再执行激活运算,然后将运算结果送回主路第一输出缓冲区,根据后续的运算不同,第一输出缓冲区的数据接下来可能被送到池化运算单元执行池化运算,或通过直接存储器访问模块写回外部存储器。进一步地,第一至第四卷积处理阵列中的寄存器配置模块用于接收和寄存卷积处理阵列的各项参数,包括卷积层的尺寸以及工作模式;根据寄存器配置模块中各寄存器的值,逻辑控制模块将控制权重和特征数据流以指定的模式送入卷积处理阵列的乘累加计算单元、偏置计算单元或激活计算单元进行运算,并将计算结果以指定的数据流模式送出。一种残差网络加速系统,包括:直接存储器访问模块、流水式卷积计算架构模块、池化运算单元、全局控制逻辑单元;直接存储器访问模块发送读取数据命令到片外存储器,从而将片外存储器中的数据传输到片上的输入缓冲区;发送写数据命令到片外存储器,将当前残差积木块计算得出的最终输出特征从输出缓冲区的数据写回外部存储器;池化运算单元用于进行平均池化运算或最大池化运算;当需要执行池化运算操作时,池化运算单元将从流水式卷积计算架构模块的输出缓冲区读取特征数据执行对应的池化运算,然后将执行后的结果写回输出缓冲区;全局控制逻辑单元用于控制整个系统各模块的启用、执行顺序和数据流动;跟踪当前网络已执行的层数;传递直接存储器访问模块本文档来自技高网
...

【技术保护点】
1.一种流水式卷积计算架构的设计方法,其特征在于,包括以下步骤:/nS1:将该硬件加速架构分为片上缓冲区、卷积处理阵列和逐点加法模块;/nS2:设置该硬件加速架构的主路由三块串行排列的卷积处理阵列组成,在它们之间插入两块流水线缓冲区,用于实现主路的三层卷积的层间流水,所述流水线缓冲区设置在片上缓冲区内;/nS3:设置第四卷积处理阵列用于并行处理残差积木块分支的内核大小为1×1的卷积层,通过配置第四卷积处理阵列中的寄存器,改变其工作模式,使其可用于计算残差网络头部卷积层或全连接层,当残差积木块的分支无卷积时,跳过第四卷积处理阵列不执行卷积;/nS4:设置逐点加法模块将残差积木块主路的输出特征与分支快捷连接的输出特征执行对应输出特征像素逐元素相加。/n

【技术特征摘要】
1.一种流水式卷积计算架构的设计方法,其特征在于,包括以下步骤:
S1:将该硬件加速架构分为片上缓冲区、卷积处理阵列和逐点加法模块;
S2:设置该硬件加速架构的主路由三块串行排列的卷积处理阵列组成,在它们之间插入两块流水线缓冲区,用于实现主路的三层卷积的层间流水,所述流水线缓冲区设置在片上缓冲区内;
S3:设置第四卷积处理阵列用于并行处理残差积木块分支的内核大小为1×1的卷积层,通过配置第四卷积处理阵列中的寄存器,改变其工作模式,使其可用于计算残差网络头部卷积层或全连接层,当残差积木块的分支无卷积时,跳过第四卷积处理阵列不执行卷积;
S4:设置逐点加法模块将残差积木块主路的输出特征与分支快捷连接的输出特征执行对应输出特征像素逐元素相加。


2.根据权利要求1所述的流水式卷积计算架构的设计方法,其特征在于,所述缓冲区包括输入缓冲区、流水线缓冲区、输出缓冲区和权重缓冲区;其中,输入缓冲区用于缓存从片外存储器中读取的特征数据切片,并为残差积木块主路的第一卷积处理阵列和第四卷积处理阵列所共享以提供特征输入;在用于计算残差积木模块主路卷积的第一卷积处理阵列和第二卷积处理阵列的输出端应用流水线缓冲区。


3.根据权利要求2所述的流水式卷积计算架构的设计方法,其特征在于,流水线缓冲区,用于缓存第一卷积处理阵列的输出特征,即缓存第二卷积处理阵列的输入特征。


4.根据权利要求3所述的流水式卷积计算架构的设计方法,其特征在于,在残差积木块主路的第三卷积处理阵列的输出端设置第一输出缓冲区,在分支快捷连接处的第四卷积处理阵列的输出端设置第二输出缓冲区,用于存储卷积输出特征结果,根据后续的运算过程不同,输出缓冲区中的数据可能会被送到逐点加法模块、池化运算单元或通过直接存储器访问模块写回外部存储器。


5.根据权利要求4所述的流水式卷积计算架构的设计方法,其特征在于,权重缓冲区用于缓存各层卷积对应的权重数据切片,由于使用了流水线技术处理主路的三层卷积,为了使得下一级流水更快开始启动同时最小化流水线缓冲区的大小,卷积计算的循环顺序设计为先将某一输出特征对应的所有输出通道计算完毕,再更换输出特征,按照这一顺序将所有输出特征计算完毕,避免了缓冲区的输入特征切片的重复加载,但是造成了权重缓冲区的重复加载用以更换权重切片,为此设计每个卷积处...

【专利技术属性】
技术研发人员:黄以华黄俊源陈志炜
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

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

1