一种卷积处理方法、系统以及终端设备技术方案

技术编号:37886618 阅读:11 留言:0更新日期:2023-06-18 11:51
本申请提供一种卷积处理方法、系统以及终端设备。解决了采用大位宽寄存乘累加中间结果会使处理器芯片的面积和功耗大幅增加的技术问题。处理方法包括:根据中间结果的预设定点数位宽W,确定满足预设条件的M值和N值;其中,中间结果为特征数据每一次卷积乘累加后的数据;预设条件为W≤M+(2

【技术实现步骤摘要】
一种卷积处理方法、系统以及终端设备


[0001]本申请涉及卷积神经网络
,尤其涉及一种卷积处理方法、系统以及终端设备。

技术介绍

[0002]硬件电路在计算卷积时一般需要经过次数巨大的(几百、几千、上万次)乘累加后再量化截位得到计算结果,因此乘累加的中间结果需要采用较大的位宽寄存。进一步,在寄存后,乘累加中间结果需要进行量化截位处理,用以使卷积计算的输出跟输入是一样的位宽。
[0003]目前,采用大位宽寄存卷积计算的乘累加中间结果。由于存在多种截位可能,卷积神经网络处理器芯片需要支持全部量化截位可能情况的处理。
[0004]但是,卷积神经网络处理器芯片中包含大量的乘累加单元,乘累加中间结果采用大位宽寄存的方法,会使处理器芯片的面积和功耗大幅增加,处理器芯片的能效比变得较低。同时,实现多种量化截位可能情况的处理会消耗较多的资源,增加处理器芯片的面积和功耗,进一步降低处理器芯片的能效比。

技术实现思路

[0005]本申请提供了一种卷积处理方法、系统以及终端设备,解决采用大位宽寄存乘累加中间结果会使处理器芯片的面积和功耗大幅增加的技术问题。
[0006]第一方面,本申请提供一种卷积处理方法,根据中间结果的预设定点数位宽W,确定满足预设条件的M值和N值;其中,所述中间结果为特征数据每一次卷积乘累加后的数据;所述预设条件为W≤M+(2
N

1);所述中间结果包括第一中间结果;将所述第一中间结果拆分为a*2
b
的形式;其中,所述a对应的位宽为所述M值,所述b对应的位宽为所述N值;将所述a寄存至所述M值对应的第一寄存器;将所述b寄存至所述N值对应的第二寄存器。
[0007]这样,通过确定可以存储中间数据的小位宽寄存器的位宽以及分别采用第一寄存器和第二寄存器寄存拆分后的中间结果,可以实现小位宽寄存器寄存中间结果,从而减小处理器芯片的面积和功耗。
[0008]在一些实施例中,一种卷积处理方法还包括:当乘法器输出下一数据结果时,调取所述第一寄存器中的a和所述第二寄存器中的b;根据所述a和所述b,还原所述第一中间结果;将所述下一数据结果和所述还原后的第一中间结果输入加法器,得到第二中间结果;拆分所述第二中间结果。
[0009]在一些实施例中,所述将所述第二中间结果拆分为a*2
b
的形式,包括:判断所述第二中间结果的最高位是否为0;若最高位为0,则判断次高位是否为1;若次高位为1,则所述b的数值加1,且所述a从最高位开始取M位;若次高位不为1,则判断次次高位是否为0;若次次高位为0,则所述b的数值减1,且所述a从次次高位开始取M位;若次次高位不为0,则所述b的数值不变,且所述a从次高位开始取M位。
[0010]在一些实施例中,所述将所述第二中间结果拆分为a*2
b
的形式,还包括:若最高位不为0,则判断次高位是否为0;若次高位为0,则所述b的数值加1,且所述a从最高位开始取M位;若次高位不为0,则判断次次高位是否为1;若次次高位为1,则所述b的数值减1,且所述a从次次高位开始取M位;若次次高位不为1,则所述b的数值不变,且所述a从次高位开始取M位。
[0011]第二方面,本申请还提供一种卷积处理系统,系统包括控制模块、第一寄存器和第二寄存器;所述控制模块被配置为:将所述特征数据进行乘累加,得到中间结果;将所述中间结果拆分为a*2
b
的形式;其中,所述a对应的位宽为M值,所述b对应的位宽为N值;所述M值和所述N值是根据中间结果的预设定点数位宽W和预设条件为W≤M+(2
N

1)确定的;所述第一寄存器对应的位宽为M值,所述第一寄存器被配置为:寄存中间结果a*2
b
中的所述a;所述第二寄存器对应的位宽为N值,所述第二寄存器被配置为:寄存中间结果a*2
b
中的所述b。
[0012]在一些实施中,所述控制模块包括移位处理模块;所述移位处理模块进一步被配置为:当乘法器输出下一数据结果时,调取所述第一寄存器中的a和所述第二寄存器中的b;根据所述a和所述b,还原所述第一中间结果;所述控制模块进一步被配置为:将所述下一数据结果和所述还原后的第一中间结果输入加法器,得到第二中间结果;拆分所述第二中间结果。
[0013]第三方面,本申请还提供一种终端设备,应用上述卷积处理方法。
[0014]本申请采用一种新颖的寄存方法寄存乘累加中间结果,既可以节省中间结果寄存的资源消耗,又可以降低量化截位的复杂度(即节省量化截位处理的资源消耗),减小了寄存乘累加中间结果的资源消耗,减小了量化截位处理的资源消耗。
附图说明
[0015]为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为本申请实施例提供的卷积处理系统的结构示意图;
[0017]图2为本申请实施例提供的卷积处理方法的流程示意图一;
[0018]图3为本申请实施例提供的卷积处理方法的流程示意图二;
[0019]图4为本申请实施例提供的M值和N值的几种示例;
[0020]图5为现有方案量化截位处理示意图;
[0021]图6为本申请实施例提供的量化截位处理示意图。
具体实施方式
[0022]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行完整、清楚的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0023]需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和
通常的含义理解。
[0024]本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
[0025]术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
[0026]术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
[0027]图1为本申请实施例提供的卷积处理系统的结构示意图。如图1所示,本申请提供的卷积处理系统包括乘法器和加法器,当输入第一数据时,第一数据依次通过乘法器和加法器得到第一结果,完成第一次乘累加计算;当继续输入第二数据时,第二数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积处理方法,其特征在于,包括:根据中间结果的预设定点数位宽W,确定满足预设条件的M值和N值;其中,所述中间结果为特征数据每一次卷积乘累加后的数据;所述预设条件为W≤M+(2
N

1);所述中间结果包括第一中间结果;将所述第一中间结果拆分为a*2
b
的形式;其中,所述a对应的位宽为所述M值,所述b对应的位宽为所述N值;将所述a寄存至所述M值对应的第一寄存器;将所述b寄存至所述N值对应的第二寄存器。2.根据权利要求1所述的卷积处理方法,其特征在于,还包括:当乘法器输出下一数据结果时,调取所述第一寄存器中的a和所述第二寄存器中的b;根据所述a和所述b,还原所述第一中间结果;将所述下一数据结果和所述还原后的第一中间结果输入加法器,得到第二中间结果;拆分所述第二中间结果。3.根据权利要求2所述的卷积处理方法,其特征在于,所述拆分所述第二中间结果的步骤,包括:判断所述第二中间结果的最高位是否为0;若最高位为0,则判断次高位是否为1;若次高位为1,则所述b的数值加1,且所述a从最高位开始取M位;若次高位不为1,则判断次次高位是否为0;若次次高位为0,则所述b的数值减1,且所述a从次次高位开始取M位;若次次高位不为0,则所述b的数值不变,且所述a从次高位开始取M位。4.根据权利要求3所述的卷积处理方法,其特征在于,所述将所述第二中间结果拆分为a*2
b
的形式,还包括:若最高位不为0,则判断次高位是否为0;若次高位为0,则所述b...

【专利技术属性】
技术研发人员:杨东天王丹阳杨灿
申请(专利权)人:南京风兴科技有限公司
类型:发明
国别省市:

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

1