一种量化MobileNet的硬件加速器及其设计方法技术

技术编号:32570975 阅读:20 留言:0更新日期:2022-03-09 16:58
本发明专利技术涉及一种量化MobileNet的硬件加速器及其设计方法,属于硬件加速及计算机视觉技术领域。包括顶层控制模块、存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块;顶层控制模块与存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块相连;存储器控制模块与逐点卷积模块、逐通道卷积模块及后处理模块相连。所述方法将输入数据与权重放入不同大小缓存,通过并行数可变的深度可分离卷积降低硬件使用并获得卷积结果,再通过后处理完成池化、跨层连接与地址生成,使得数据在连续地址上排布。所述方法解决了MobileNet缓存利用率低的问题、降低了耗时与资源消耗。降低了耗时与资源消耗。降低了耗时与资源消耗。

【技术实现步骤摘要】
一种量化MobileNet的硬件加速器及其设计方法


[0001]本专利技术涉及一种量化MobileNet的硬件加速器及其设计方法,属于硬件加速设计及计算机视觉


技术介绍

[0002]深度神经网络已经成为了许多重要应用的一部分,尤其是在涉及到计算机视觉及语音处理等部分,传统模型无法对这些复杂应用进行良好的建模,而深度神经网络则可以完成良好的模型拟合。卷积神经网络根据生物对图像的感知过程演变而来,十分适合于计算机视觉任务,例如图像识别、图像分割等。近年来,许多不同的CNN模型被提出,提升了该类网络的不同部分性能,如计算复杂度,识别精度等。但这些提升带来的代价则是急剧上升的计算负载,存储负载以及带宽负载,例如在图像分类问题上,著名的ResNet50网络能够在ImageNet数据集上实现76.5%的top

1准确率,但这种高准确率是以大量的运算以及内存操作为代价获取的,这导致这类网络只能在有着一定运算能力与存储空间的平台上运行,而极难部署或无法部署在小型移动平台上。尽管以MobileNet为代表的一系列效率型卷积神经网络以降低计算负载和权重大小为目标进行网络结构的重新设计,并且取得了显著的效果,但在一些边缘设备上仍旧面临着许多性能瓶颈,其中的一大问题便是存储问题。
[0003]随着智能社会的发展,我们希望在许多小型设备上也能实时运行高精度的神经网络模型以实现更多丰富的应用。但这些设备受限于成本、功耗等现实问题,计算能力与存储能力都十分有限,或许他们可以配备低功耗的廉价大容量片外存储(例如DRAM)以解决存储问题,但这些片外存储延迟大,访问效率低,如果在网络运行的过程中频繁的对这些存储进行数据交互将导致网络运行速度的下降,从而不能满足绝大部分应用的实时性要求。因此如何在这些设备上充分利用较小的高速存储与较弱的运算能力以实现实时的神经网络应用就变成了一个难题。

技术实现思路

[0004]本专利技术的目的在于针对目前神经网络平台资源受限导致网络整体性能下降较多或无法部署在边缘设备上的技术缺陷,提出了一种量化MobileNet的硬件加速器及其设计方法。
[0005]为了达到上述目的,本专利技术采取如下技术方案:
[0006]所述硬件加速器,与外部存储器及控制器相连,包含顶层控制模块、存储器控制模块、逐通道卷积模块、后处理模块以及逐点卷积模块;
[0007]逐通道卷积模块包含行缓存器子模块以及量化单元A;
[0008]后处理模块包含池化子模块、跨层连接子模块与地址生成子模块;
[0009]逐点卷积模块包含数据准备子模块、权重准备子模块、逐点卷积计算子模块与部分和累加子模块;
[0010]其中,逐点卷积计算子模块包括乘法阵列与可配置的加法器树,部分和累加子模
块包括FIFO和量化单元B;
[0011]其中,可配置的加法器树按照顶层控制模块配置的输入输出通道并行数将乘法阵列的输出按照不同的通道并行度相加,从而达到输入输出通道并行度可配置;
[0012]所述硬件加速器中各组成部件的连接关系如下:
[0013]顶层控制模块与存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块相连;存储器控制模块与顶层控制模块、逐点卷积模块、逐通道卷积模块及后处理模块相连;逐点卷积模块与顶层控制模块、存储器控制模块、逐通道卷积模块及后处理模块相连;逐通道卷积模块与逐点卷积模块、顶层控制模块、存储器控制模块及后处理模块相连;
[0014]逐通道卷积模块内部的连接方式为行缓存器子模块与量化单元A相连;
[0015]逐点卷积模块内部的连接方式为数据准备子模块与逐点卷积计算子模块相连;权重准备子模块与逐点卷积计算子模块相连;逐点卷积计算子模块分别与数据准备子模块、权重准备子模块和部分和累加子模块相连;部分和累加子模块与逐点卷积计算子模块相连;
[0016]其中,逐点卷积计算子模块内部的连接方式为乘法阵列与加法器树相连接;
[0017]其中,部分和累加子模块内部的连接方式为FIFO和量化单元B相连接。
[0018]所述硬件加速器中各组成部件的功能如下:
[0019]顶层控制模块接收外部输入的控制信号启动硬件加速器,同时决定当前硬件加速器的状态,并根据当前状态通知存储器控制模块将当前输入输出缓存与其对应的最佳实际物理缓存相连接;通知逐点卷积模块本次运算对应的输入通道并行数与输出通道并行数;通知逐通道卷积模块当前运算需要进行补零的部分;通知后处理模块启用池化子模块、跨层连接子模块或地址生成子模块。
[0020]存储器控制模块根据顶层控制模块的指令将输入输出缓存对应至不同的实际物理缓存,送出或接收所需的数据与权重信息,并实现针对输入或输出缓存的乒乓缓存切换;
[0021]逐点卷积模块进行逐点卷积运算并完成部分累加和处理与量化操作,同时能够处理输入输出通道并行数不一致的运算请求;
[0022]逐通道卷积模块进行对应位置补零与逐通道卷积运算并完成部分累加和处理与量化操作;
[0023]后处理模块进行网络除卷积外的池化操作与跨层连接操作,同时对每一个输出结果生成对应的存储地址实现重排序。
[0024]所述硬件加速器的设计方法,包括如下步骤:
[0025]步骤1、顶层控制模块接收控制器传来的控制参数并初始化,并给存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块发送指令;
[0026]其中,顶层控制模块给存储器控制模块发送指令告知其最佳的数据接收顺序与每笔数据对应的存储位置;顶层控制模块给逐点卷积模块发送指令告知本次运算的类型及对应的输入输出通道并行数;顶层控制模块给逐通道卷积模块发送指令告知数据是否需要补零及补零位置;顶层控制模块给后处理模块发送指令告知是否需要池化、跨层连接及地址生成;
[0027]步骤2、存储器控制模块接收外部存储器的数据与权重,并根据顶层控制模块的指令选择接收输入数据与网络权重的顺序和对应存储位置,当存储器控制模块接收到的数据
能满足单次运算过程时,跳至步骤3;
[0028]步骤3、存储器控制模块向逐点卷积模块发送当前运算所需数据,同时存储器控制模块进行乒乓缓存切换维持数据的继续输入;
[0029]步骤4、数据准备子模块将输入数据按照顶层控制模块提供的输入通道并行数并行排布后输出至逐点卷积计算子模块,同时权重准备子模块按照顶层控制模块提供的输入输出通道并行数将卷积运算所需的权重并行排布后输出至逐点卷积计算子模块;
[0030]步骤5、逐点卷积计算子模块使用步骤4的输出的数据与权重进行卷积运算,并将卷积结果输出至部分和累加子模块;
[0031]步骤6、部分和累加子模块缓存一部分卷积输出以完成对逐点卷积计算子模块卷积结果的累加操作并输出至量化单元B;
[0032]步骤7、量化单元B对部分和累加子模块的输出结果进行量化并输出;
[0033]步骤8、顶层控制模块根据当前卷积层判断进行逐通道卷积、池化还是跨本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种量化MobileNet的硬件加速器与外部存储器及控制器相连,包含顶层控制模块、存储器控制模块、逐通道卷积模块、后处理模块以及逐点卷积模块,其特征在于:逐通道卷积模块包含行缓存器子模块以及量化单元A;后处理模块包含池化子模块、跨层连接子模块与地址生成子模块;逐点卷积模块包含数据准备子模块、权重准备子模块、逐点卷积计算子模块与部分和累加子模块;逐点卷积计算子模块包括乘法阵列与可配置的加法器树,部分和累加子模块包括FIFO和量化单元B;顶层控制模块与存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块相连;存储器控制模块与顶层控制模块、逐点卷积模块、逐通道卷积模块及后处理模块相连;逐点卷积模块与顶层控制模块、存储器控制模块、逐通道卷积模块及后处理模块相连;逐通道卷积模块与逐点卷积模块、顶层控制模块、存储器控制模块及后处理模块相连;逐通道卷积模块内部的连接方式为行缓存器子模块与量化单元A相连;逐点卷积模块内部的连接方式为数据准备子模块与逐点卷积计算子模块相连;权重准备子模块与逐点卷积计算子模块相连;逐点卷积计算子模块分别与数据准备子模块、权重准备子模块和部分和累加子模块相连;部分和累加子模块与逐点卷积计算子模块相连;其中,逐点卷积计算子模块内部的连接方式为乘法阵列与加法器树相连接;其中,部分和累加子模块内部的连接方式为FIFO和量化单元B相连接。2.依据权利要求1所述的硬件加速器,其特征在于:可配置的加法器树的工作过程为:按照顶层控制模块配置的输入输出通道并行数将乘法阵列的输出按照不同的通道并行度相加,从而达到输入输出通道并行度可配置。3.依据权利要求1所述的硬件加速器,其特征在于:顶层控制模块接收外部输入的控制信号启动硬件加速器,同时决定当前硬件加速器的状态,并根据当前状态通知存储器控制模块将当前输入输出缓存与其对应的最佳实际物理缓存相连接;通知逐点卷积模块本次运算对应的输入通道并行数与输出通道并行数;通知逐通道卷积模块当前运算需要进行补零的部分;通知后处理模块启用池化子模块、跨层连接子模块或地址生成子模块。4.依据权利要求1所述的硬件加速器,其特征在于:存储器控制模块根据顶层控制模块的指令将输入输出缓存对应至不同的实际物理缓存,送出或接收所需的数据与权重信息,并实现针对输入或输出缓存的乒乓缓存切换。5.依据权利要求1所述的硬件加速器,其特征在于:逐点卷积模块进行逐点卷积运算并完成部分累加和处理与量化操作,同时能够处理输入输出通道并行数不一致的运算请求;逐通道卷积模块进行对应位置补零与逐通道卷积运算并完成部分累加和处理与量化操作;后处理模块进行网络除卷积外的池化操作与跨层连接操作,同时对每一个输出结果生成对应的存储地址实现重排序。6.一种量化MobileNet的硬件加速器的设计方法,其特征在于:包括如下步骤:步骤1、顶层控制模块接收控制器传来的控制参数并初始化,并给存储器控制模块、逐点卷积模块、逐通道卷积模块及后处理模块发送指令;步骤2、存储器控制模块接收外部存储器的数据与权重,并根据顶层控制模块的指令选择接收输入数据与网络权重的顺序和对应存储位置,当存储器控制模块接收到的数据能满足单次运算过程时,跳至步骤3;步骤3、存储器控制模块向逐点卷积模块发送当前运算所需数据,同时存储器...

【专利技术属性】
技术研发人员:张延军蔺彦儒卢继华
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1