一种基于卷积神经网络的处理方法及其系统技术方案

技术编号:30708656 阅读:19 留言:0更新日期:2021-11-10 10:59
本发明专利技术提出了一种基于卷积神经网络的处理方法及其系统,其解决了现有技术方案实现过程中引入过多额外多路选择器逻辑从而造成的增加硬件开销、增加功耗、降低加速芯片运行频率的问题,并且能降低硬件逻辑的设计复杂度。同时取消了对网络参数模型精度的多种限制。同时取消了对网络参数模型精度的多种限制。同时取消了对网络参数模型精度的多种限制。

【技术实现步骤摘要】
一种基于卷积神经网络的处理方法及其系统


[0001]本专利技术涉及神经网络领域,特别涉及一种基于卷积神经网络的处理方法和系统。

技术介绍

[0002]卷积神经网络(CNN)是一种用于进行图像处理的、包含卷积计算且具有深度结构的前馈神经网络,其被广泛用于图像分类、图像识别等。
[0003]近年来随着对神经网络算法的研究不断深入,深度学习技术迅速发展,已经被广泛应用到生活中的多个领域,特别是计算机视觉、语音识别和自然语言处理领域。卷积神经网络(CNN)作为深度学习技术的代表,凭借其强大的学习能力已经成为图像识别和分类任务中最有效的方法。
[0004]CNN作为一种计算密集型的深度学习模型,通常拥有大量的模型参数并且有比较高的计算需求。为了在图像识别和分类任务中获得更高的准确率,CNN模型的网络层次逐渐加深、规模更庞大、结构也更复杂。在性能提升的同时,也带来了更大的计算复杂度和参数存储需求。在通过处理器硬件对模型参数进行计算时,往往导致巨大的计算量需求、内存和带宽需求以及功耗较高的问题,这也导致了CNN模型在FPGA、ASIC等资源有限且对功耗较为敏感的移动嵌入式硬件平台上的部署难以实现。
[0005]为了解决上述问题,对神经网络模型的压缩和加速方法成为深度学习领域研究的热点。一方面,是对基于FPGA和ASIC等嵌入式硬件的加速芯片的研究,通过充分挖掘网络模型中算法的并行性,设计专用的电路结构实现对计算的并行加速。另一方面,是对网络模型中的参数进行压缩,目的是为了降低模型参数的数据量和计算量,进而减小模型实现的存储需求和计算复杂度。
[0006]当前主流的网络模型压缩方案主要有模型剪枝、低秩近似、参数量化和二值网络等几种。每种方案从不同的设计角度对网络模型进行压缩,均能取得相应的压缩效果。其中参数量化方案的基本设计思路是把网络模型中位宽较大的参数量化为低位宽低精度的量化数据来表示,进而减少参数的存储空间和计算复杂度。当前,参数量化作为一种通用的压缩方法,凭借其较高的压缩率和较低的性能损失受到了广泛的关注和应用。
[0007]传统的神经网络模型中较为核心的乘加计算,其输入输出的数据格式一般是采用64bit的双精度浮点数或者32bit的单精度浮点数,当网络模型规模较大时,对此类数据的存储和计算必然会产生巨大的存储需求、带宽需求、计算复杂度和功耗消耗。因此当前主流的网络模型均采用了参数量化的压缩方案对网络模型参数进行压缩,实现了从32bit单精度浮点数参数到16bit、8bit、4bit甚至更低位宽的整数数据格式的压缩。
[0008]对于不同的应用场景,不同的网络模型适用的参数量化精度会有所不同,甚至同一个网络模型中不同网络层参数的量化精度也存在不同,所以不同的网络模型在利用硬件加速芯片加速时,乘法计算的输入会存在多种不同精度的量化参数,出现不同位宽数据的计算需求。为了能支持对所有可能出现量化精度的参数的乘法运算,硬件实现上必须使用最高位宽参数位数的乘法器结构,且参数输入寄存器的通道大小也必须对应设计为最高位
宽,这将造成芯片硬件逻辑资源的严重浪费。
[0009]为了解决上述问题,实现神经网络加速芯片对不同应用场景的网络模型的通用性,当前研究提出了一种对网络原始参数数据切分处理的技术方案,即把参与乘法计算的高精度的高比特数切分成多个低比特片段,通过低比特片段之间的乘法运算来等价代替两个高比特原始数据的乘法操作。
[0010]例如:W和F的精度都是16bit,将W切分成两个8bit片段,即W的低8bit为Wa、高8bit为Wb,同理F也切分成Fa和Fb两个8bit片段。有:
[0011]W*F=Wa*Fa+((Wa*Fb+Wb*Fa)<<8)+(Wb*Fb<<16)
[0012]在硬件逻辑电路中只需要实现切分后大小的数据位宽的乘法器结构,它们既可以用来完成低比特的乘法运算,也可以完成高比特乘法运算。其中需要注意的一点是,切分后数据的大小必须为所支持的各种精度乘法运算原始参数的公约数。比如对于所有使用偶数大小位宽参数精度的模型来说,参数精度大小存在公约数2,所以可以选择按2bit大小对原始参数进行切分,在硬件加速器逻辑电路中只需实现2bit的乘法器结构,然后通过对切分后得到的2bit大小数据的特殊计算就可以等价得到原始参数的乘积结果。
[0013]使用该技术方案能大大提升神经网络加速芯片的通用性,能实现对不同应用场景的网络模型的加速。
[0014]上述公知技术说明中简单描述了一种当前比较实用的神经网络数据处理方案,即:为了实现神经网络加速芯片对不同应用场景中不同参数精度网络模型的通用性,提出的一种对网络模型原始参数数据进行切分处理的方法。
[0015]下面通过结合附图1详细介绍当前技术方案的具体实现过程。
[0016]当前神经网络加速芯片的硬件逻辑电路中,均由大规模的PE阵列来实现对大量参数数据的并行运算,PE计算单元的个数达到数千甚至上万个。设N-bit是PE的基本精度,每个PE含有一个N-bit*N-bit的乘法器、一个N-bit的权值参数W输入端口和一个N-bit的特征图参数F输入端口。一个PE一次可以完成一个N-bit*N-bit数据的乘法运算,在PE阵列中将这些乘法结果求和得到卷积神经网络的结果。所有大于N-bit精度的网络需要切分成N-bit进行计算。此处我们以N=2即PE的基本精度是2bit为例,对局部一组32个PE计算单元的运算过程来分析。分析结果可同理扩展到加速芯片的整个PE阵列,以及其它基本精度类型的PE。
[0017]当计算一个32通道的W和F都是2bit的网络时,W参数和F参数分别表示为W0,W1,...,W31和F0,F1,...,F31,此时不需要对数据切分的操作,直接将它们分别加载到对应的PE0,PE1,...,PE31计算单元,每个PE的乘法结果分别为P0,P1,...,P31。得到的最终运算结果为SUM=P0+P1+...+P31。
[0018]而当计算一个32通道的W和F分别为4bit和8bit的网络时,则对两个参数进行2bit切分,4bit的W0被切分成低2bit数据W0a和高2bit数据W0b两个片段,同理8bit的F0按2bit切分后得到的数据自低位至高位分别是F0a、F0b、F0c、F0d共四个片段。使用低精度的PE完成对高精度网络的运算是通过每个高精度网络通道占用多个PE的方式实现,每个通道所占用的PE数是网络最高精度参数切分的片段数。在这个例子中每个通道占用4个PE,下面按通道0占用PE0~PE3、通道1占用PE4~PE7、

、通道7占用PE28~PE31为例。F参数的四个片段分别输入4个PE的F参数端口,W参数只有2个片段,将其复制一份,分别输入这4个PE的W参数
端口。要完成32通道4bit*8bit的乘加运算需要进行以下两轮计算。
[0019]轮1:将W0a同时送入PE0和PE2的W端口本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于卷积神经网络的处理方法,其特征在于,由PE阵列实现对大量参数数据的并行运算,设N-bit是PE的基本精度,每个PE含有一个N-bit*N-bit的乘法器、一个N-bit的权值参数W输入端口和一个N-bit的特征图参数F输入端口,这个PE阵列对大于N-bit参数切分的N-bit参数片段进行运算,X表示权值参数W的比特数值;Y表示特征图参数F参数比特数值;X和Y是N的整数倍,当X/N大于1或Y/N大于1时进行运算,所述方法包括以下步骤:步骤1,预置SUM寄存器;步骤2,使用PE进行多轮计算,每轮计算时所加载的W参数的N-bit片段是对应W参数的同位权片段,所加载的F参数的N-bit片段是对应F参数的同位权片段,根据预先安排计算顺序,对每轮进行计算,包括:将本轮的W和F参数N-bit片段加载到对应的PE单元中,PE的乘法结果是P0,P1,...,PZ,对每个PE的乘法结果求和,得到S=P0+P1+...+PZ;S的位权是W片段的位权乘以F片段的位权;将本轮的计算结果S与SUM进行累加;每轮对SUM进行累加后,将S的位权赋予SUM。2.根据权利要求1所述的一种基于卷积神经网络的处理方法,其特征在于,所述步骤2包括,根据预先安排计算顺序,确保相邻轮的计算结果S的位权相等,或者不等时大值除以小值是2的N次方;其中,每轮的计算步骤是:步骤2.1,将本轮的W和F参数N-bit片段加载到对应的PE单元中,PE的乘法结果是P0,P1,...,PZ,对每个PE的乘法结果求和,得到S=P0+P1+...+PZ;S的位权是W片段的位权乘以F片段的位权;步骤2.2,将本轮的计算结果S与SUM进行累加;其中,累加的方法是:如果SUM的位权为不确定状态或者SUM的位权与S的位权相等,则将S加SUM置于SUM中;如果SUM的位权除以S的位权是2的N次方,则将S加SUM循环左移N-bit置于SUM中;如果S的位权除以SUM的位权是2的N次方,则将S加SUM循环右移N-bit置于SUM中;步骤2.3,每轮对SUM进行累加后,将S的位权赋予SUM。3.根据权利要求2所述的一种基于卷积神经网络的处理方法,其特征在于,所述步骤2中的加法如果是有符号加法,则符号扩展的位数不能越过SUM的最高位减去它的位权所表示的2进制bit数。4.根据权利要求2所述的一种基于卷积神经网络的处理方法,其特征在于,进一步包括在步骤2中:所述的预先安排计算顺序是,使多轮计算结束后取出SUM时,SUM的位权是1。5.根据权利要求2所述的一种基于卷积神经网络的处理方法,其特征在于,进一步包括在步骤2中,所述的预先安排计算顺序是:轮1到轮n,W参数片段都是W0P
m
,W1P
m
,...,WZP
m
,F参数遍历所有参数片段,即从片段1到片段n:F0Q1,F1Q1,...,FZQ1,...,F0Q
n
,F1Q
n
,...,FZQ
n
;遍历顺序可以是自1至n或自n至1;轮n+1到轮2*n,W参数片段都是W0P
m-1
,W1P
m-1
,...,WZP
m-1
,F参数片段与轮1到轮n相同,只是遍历顺序与之相反;轮2*n+1到轮3*n,W参数片段都是W0P
m-2
,W1P
m-2
,...,WZP
m-2
,F参数片段与轮1到轮n相同,遍历顺序也与之相同;
……
轮(m-2)*n+1到轮(m-1)*n,W参数片段都是W0P2,W1P2,...,WZP2,F参数片段与轮1到轮n相同,遍历顺序与轮(m-3)*n+1到轮(m-2)*n相反;轮(m-1)*n+1到轮m*n,W参数片段都是
W0P1,W1P1,...,WZP1,F参数片段与轮1到轮n相同,遍历顺序与轮(m-2)*n+1到轮(m-1)*n相反;上述步骤中,Z+1表示通道数;X表示W参数比特数值;Y表示F参数比特数值;W参数的切分数值分别为:W0P
i
,W1P
i
,
……
,WZP
i
,i=1,
……
,m,其中m=X/N;F参数的切分数值分别为:F0Q
j
,F1Q
j
,
……
,FZQ
j
,j=1,
……
,n,其中n=Y/N。6.根据权利要求2所述的一种基于卷积神经网络的处理方法,其特征在于,进一步包括在步骤2中,所述的预先安排计算顺序是:轮1到轮n,W参数片段都是W0P1,W1P1,...,WZP1,F参数遍历所有参数片段,即从片段1到片段n:F0Q1,F1Q1,...,FZQ1,...,F0Q
n
,F1Q
n
,...,FZQ
n
;遍历顺序可以是自1至n或自n至1;轮n+1到轮2*n,W参数片段都是W0P2,W1P2,...,WZP2,F参数片段与轮1到轮n相同,只是遍历顺序与之相反;轮2*n+1到轮3*n,W参数片段都是W0P3,W1P3,...,WZP3,F参数片段与轮1到轮n相同,遍历顺序也与之相同;
……
轮(m-2)*n+1到轮(m-1)*n,W参数片段都是W0P
m-1
,W1P
m-1
,...,WZP
m-1
,F参数片段与轮1到轮n相同,遍历顺序与轮(m-3)*n+1到轮(m-2)*n相反;轮(m-1)*n+1到轮m*n,W参数片段都是W0P
m
,W1P
m
,...,WZP
m
,F参数片段与轮1到轮n相同,遍历顺序与轮(m-2)*n+1到轮(m-1)*n相反;上述步骤中,Z+1表示通道数;X表示W参数比特数值;Y表示F参数比特数值;W参数的切分数值分别为:W0P
i
,W1P
i
,
……
,WZP
i
,i=1,
……
,m,其中m=X/N;F参数的切分数值分别为:F0Q
j
,F1Q
j
,
……
,FZQ
j
,j=1,
……
,n,其中n=Y/N。7...

【专利技术属性】
技术研发人员:张紧
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

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

1