掌桥专利:专业的专利平台
掌桥专利
首页

一种并行计算单元的卷积神经网络硬件加速方法

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及计算机硬件技术领域,具体涉及一种基于静态量化、分层量化和并行计算单元的卷积神经网络硬件加速方法。

背景技术

近年来,随着人工智能技术的发展,以卷积神经网络为代表的算法在计算机视觉领域的应用上取得了优异的成果。但是,卷积神经网络复杂的计算量和规模庞大计算参数不适合硬件资源有限的嵌入式设备,如何将卷积神经网络部署在边缘嵌入式设备上,使之成为智能终端成为学术界和工业界的研究热点。

目前,市面上已经存在许多基于并行计算模块对卷积神经网络实现硬件加速的产品,这些产品主要是采用对模型参数的量化以达到减少计算量的目的和针对特定模型的卷积核尺寸设计专用的向量计算模块等方法,但是这些方案都没有考虑对模型参数的量化方法对于网络结构相适应的通用性。

发明内容

有鉴于此,本发明的目的在于提供一种基于静态量化、分层量化和并行计算单元的卷积神经网络硬件加速方法,根据检测低延时、性能好、部署灵活且成本低的技术要求,设计了一种基于静态量化、分层量化和并行计算单元的卷积神经网络硬件加速方案。

为实现上述目的,本发明采用如下技术方案:

一种基于静态量化、分层量化和并行计算单元的卷积神经网络硬件加速方法,包括以下步骤:

步骤S1:将训练好的卷积神经网络模型根据静态量化、分层量化的方法进行权重参数的量化;

步骤S2:通过预设在硬件电路上的并行计算单元对量化后的卷积神经网络模型进行运算;

步骤S3:根据不同输入尺寸的卷积神经网络模型在推理阶段计算并行度不同,通过片上可重构技术自适应不同卷积核尺寸的卷积神经网络模型。

进一步的,所述步骤S1具体为:

步骤S11:从训练好的卷积神经网络模型中提取参数,并将其视化为权重参数直方图;

步骤S12:采取INT8量化将每层的权重参数映射到-127到127之间,得到量化后的卷积神经网络模型,数据格式为8位整形定点数。

进一步的,所述并行计算单元采用11*11的乘法器阵列,包括个专用寄存器、一根使能信号线的并行乘法器单元以及并行、流水线的最大池化层结构设计单元。

进一步的,所述11*11的乘法器阵列采用的是通过使能信号控制,并且能够自适应输入卷积神经网络模型的卷积核尺寸激活相应N*N的乘法器整列。

进一步的,所述并行、流水线的最大池化层结构设计单元包括1个数据选择器、2个64位计数器、2个32位数据位宽和1024位数据深度的FIFO缓存模块和3个32位数值比较器;所述并行、流水线的最大池化层结构设计单元通过1个数据选择器使得卷积模块产生的特征图像输入根据奇偶规则存入计数行FIFO和偶数行FIFO,2个计数器分别负责计数输入奇数行和偶数行FIFO的数据数量,3个数值比较器分别负责比较从奇偶行FIFO中读取的数值。

进一步的,所述步骤S2具体为:

步骤S21:从片外的DDR3存储器中读取卷积层的尺寸参数,通过使能信号激活硬件乘法器矩阵中的3*3运算单元;

步骤S22:在第一个单位时钟周期,分别读取一个3*3的卷积层的权重到一个32位的乘法器的专用寄存器1上,并且从一个独立FIFO缓存中读取与权重相对应的图片像素点取值存放至专用寄存器2;

步骤S23:在第二个单位时钟周期,32位的乘法器完成一次32位单精度浮点运算,将步骤S21中专用寄存器1和专用寄存器2的值做乘法运算,并将结果写入64位专用寄存器3。

本发明与现有技术相比具有以下有益效果:

1、本发明能够实现卷积神经网络硬件加速的目的,使得在低功耗的情况下有着高推理速度;

2、本发明应用范围管,效果显著,当在工业场景下需要移动便携的低功耗自动缺陷检测设备时,能够有效地提升缺陷识别的精度和降低处理每帧图片所需的能耗。

附图说明

图1是本发明流程示意图;

图2是本发明一实施例中第一层卷积层权重分布直方图;

图3是本发明一实施例中第二层卷积层权重分布直方图;

图4是本发明一实施例中自适应并行计算模块示意图;

图5是本发明一实施例中并行计算模块的乘法单元示意图;

图6是本发明一实施例中最大池化的流水线结构示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图1,本发明提供一种基于静态量化、分层量化和并行计算单元的卷积神经网络硬件加速方法,包括以下步骤:

步骤S1:将训练好的卷积神经网络模型根据静态量化、分层量化的方法进行权重参数的量化;

在本实施例中,具体的,步骤S1具体为:

步骤S11:首先从模型中提取参数,将其可视化为直方图,观察参数的分布情况,图2和图3中分别绘出了示例第一层卷积层、第二层卷积层的分布情况。由图中我们可以看到,各层的权重参数大都集中分布于某一个区间,如第二层卷积层的权重参数集中分布于[-0.4,0.4]之间,处于此区间之外的参数很少,因此在量化时,将处于此区间之外的参数舍去,将-0.4映射到-127,0.4映射到127。对于第一层卷积层,将处于[-0.6,0.6]区间的参数映射到[-127,127]。对于全连接层,将处于[-0.4,0.4]区间的参数映射到[-127,127],舍弃的参数均取-127或127。

步骤S12:采取INT8量化将每层的权重参数映射到-127到127之间,即max-max映射将参数绝对值的最大值中是负值的映射到-127,正值映射到127。

优选的,在量化过程中,由于偏置参数对应精度的影响很小,所以舍去所有层的偏置参数。

步骤S2:通过预设在硬件电路上的并行计算单元对量化后的卷积神经网络模型进行运算;

在本实施例中,具体的,步骤S2具体为:

步骤S21:如图4所示是并行卷积运算模块的乘法器阵列单元,从片外的DDR3存储器中读取卷积层的尺寸参数,通过使能信号激活硬件乘法器矩阵中的3*3运算单元

步骤S22:如图5所示是并行卷积运算模块的乘法运算,在第一个单位时钟周期,分别读取一个3*3的卷积层的权重到一个32位的乘法器的专用寄存器1上,并且从一个独立FIFO缓存中读取与权重相对应的图片像素点取值存放至专用寄存器2。

步骤S23:在第二个单位时钟周期,32位的乘法器完成一次32位单精度浮点运算,将步骤S1中专用寄存器1和专用寄存器2的值做乘法运算,并将结果写入64位专用寄存器3。

优选的,在本实施例中,并行计算单元采用11*11的乘法器阵列,包括个专用寄存器、一根使能信号线的并行乘法器单元以及并行、流水线的最大池化层结构设计单元

参考图6,最大池化层的流水结构设计单元:包括1个数据选择器、2个64位计数器、2个32位数据位宽和1024位数据深度的FIFO缓存模块和3个32位数值比较器。1个数据选择器使得卷积模块产生的特征图像输入根据奇偶规则存入计数行FIFO和偶数行FIFO,2个计数器分别负责计数输入奇数行和偶数行FIFO的数据数量,3个数值比较器分别负责比较从奇偶行FIFO中读取的数值。

具体的,包括以下步骤:

(1):首先按照先奇后偶的顺序来缓存奇偶行的数据到奇数列FIFO和偶数列FIFO。

(2):当偶数列的FIFO非空时,两个FIFO同时输出数据到比较器1。在第i个时钟周期,先比较奇偶列数据Xi和Y

(3):重复步骤(2)中的操作,在第i+1个时钟周期再比较X

(4):最后,通过比较器3比较Z

步骤S3:根据不同输入尺寸的卷积神经网络模型在推理阶段计算并行度不同,通过片上可重构技术自适应不同卷积核尺寸的卷积神经网络模型。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

相关技术
  • 一种并行计算单元的卷积神经网络硬件加速方法
  • 一种应用于卷积神经网络中硬件加速器的数据传输方法
技术分类

06120114723295