一种基于电量设置乘法器精度的功耗调整方法和装置与流程

文档序号:15143331发布日期:2018-08-10 20:09阅读:198来源:国知局

本发明涉及电子设备领域,特别涉及一种基于电量设置乘法器精度的功耗调整方法和装置。



背景技术:

随着人工智能产业的迅速发展,人们对人工智能设备的需求也越来越强烈,其中,对于手持移动设备上的人工智能功能需求则更为迫切。在人工智能领域,神经网络电路是其中只要一项,在神经网络计算过程中,应用最频繁的计算为乘法计算,例如计算量最大的卷积层、激活层等,即实现乘法器的电路面积和功耗占了整个神经网络电路的绝大部分面积和功耗比例,因而如何降低乘法器工作时的功耗,在神经网络电路应用领域,尤其是应用于手持移动终端设备(其续航能力有限)时的功耗,对于提高移动终端的续航能力、增强用户体验将是十分有意义的。



技术实现要素:

为此,需要提供一种基于电量设置乘法器精度的功耗调整的技术方案,用以解决现有的神经网络电路在计算时对硬件资源消耗大、功耗高,影响了手持移动终端的续航能力的问题。

为实现上述目的,发明人提供了一种基于电量设置乘法器精度的功耗调整装置,所述装置设置于电子设备中,所述装置包括供电单元、电量检测单元、供电控制单元;所述供电单元包括多个电源域,每一电源域与至少一个缓存单元连接,每一缓存单元用于存储乘数中预设位数的数据;不同电源域内的缓存单元所存储的乘数的预设位数各不相同;

所述电量检测单元用于检测电子设备的电池电量;

所述供电控制单元用于根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况。

进一步地,所述装置包括乘法计算单元,电源域包括第一电源域,第一电源域与乘法计算单元连接,每一电源域内的缓存单元均与乘法计算单元连接。

进一步地,所述乘法计算单元包括低位补零单元、基4编码单元和累加单元;每一电源域还与至少一个编码缓存单元、至少一个编码查表运算单元、位移单元连接;每一电源域的缓存单元还都与低位补零单元连接,所述低位补零单元与基4编码单元连接,每一电源域内的编码缓存单元还都与基4编码单元连接,每一电源域内的编码缓存单元还通过同一电源域内的编码查表运算单元与该电源域内的位移单元连接;每一电源域的位移单元还都与累加单元连接。

进一步地,所述电源域包括第一电源域和第二电源域;供电控制单元用于根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况包括:

当电池电量高于第一预设阈值时,供电控制单元用于控制第一电源域和第二电源域开启;当电池电量小于第一预设阈值时,供电控制单元用于控制第一电源域开启,第二电源域关闭。

进一步地,所述乘法器应用于神经网络识别计算。

发明人还提供了一种基于电量设置乘法器精度的功耗调整方法,所述方法应用于基于电量设置乘法器精度的功耗调整的装置,所述装置设置于电子设备中,所述装置包括供电单元、电量检测单元、供电控制单元;所述供电单元包括多个电源域,每一电源域与至少一个缓存单元连接,每一缓存单元用于存储乘数中预设位数的数据;不同电源域内的缓存单元所存储的乘数的预设位数各不相同;所述方法包括以下步骤:

电量检测单元检测电子设备的电池电量;

供电控制单元根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况。

进一步地,所述装置包括乘法计算单元,电源域包括第一电源域,第一电源域与乘法计算单元连接,每一电源域内的缓存单元均与乘法计算单元连接。

进一步地,所述乘法计算单元包括低位补零单元、基4编码单元和累加单元;每一电源域还与至少一个编码缓存单元、至少一个编码查表运算单元、位移单元连接;每一电源域的缓存单元还都与低位补零单元连接,所述低位补零单元与基4编码单元连接,每一电源域内的编码缓存单元还都与基4编码单元连接,每一电源域内的编码缓存单元还通过同一电源域内的编码查表运算单元与该电源域内的位移单元连接;每一电源域的位移单元还都与累加单元连接。

进一步地,所述电源域包括第一电源域和第二电源域;步骤供电控制单元根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况包括:

当电池电量高于第一预设阈值时,供电控制单元用于控制第一电源域和第二电源域开启;当电池电量小于第一预设阈值时,供电控制单元用于控制第一电源域开启,第二电源域关闭。

进一步地,所述乘法器应用于神经网络识别计算。

上述技术方案所述的基于电量设置乘法器精度的功耗调整方法和装置,所述装置设置于电子设备中,所述方法可以根据当前电子设备的电量调整各个电源域的供电情况,进而调整当前进行神经网络计算的乘法器精度,具体则是在电子设备的电量充足时,尽可能开启更多地电源域,使得与这些电源域连接的乘加器均处于工作状态,以便采用更高精度的乘加器进行神经网络的乘法计算;反之,在电子设备的电量较低时,关闭部分电源域,以使得与关闭的电源域连接的乘加器处于不工作状态,以便采用相对较低精度的乘加器进行神经网络计算,从而达到节省功耗的目的。

附图说明

图1为本发明一实施例涉及的卷积神经网络的示意图;

图2为本发明一实施例涉及的基于电量设置乘法器精度的功耗调整装置的示意图;

图3为本发明一实施例涉及的误差计算单元的电路结构图;

图4为本发明一实施例涉及的升级单元的电路结构图;

图5为本发明一实施例涉及的乘加器单元的电路结构图;

图6为本发明一实施例涉及的可重构神经网络矩阵的电路结构图;

图7为本发明一实施例涉及的乘法器精度调整的示意图;

图8为本发明另一实施例涉及的基于电量设置乘法器精度的功耗调整装置的示意图;

图9为本发明一实施例涉及的基于电量设置乘法器精度的功耗调整方法的流程图;

附图标记说明:

101、供电控制单元;

102、电量检测单元;

103、供电单元;1031、第一电源域;1032、第二电源域;

104、乘法计算单元;1041、第一乘法计算单元;1042、第二乘法计算单元;

105、缓存单元;1051、第一缓存单元;1052、第二缓存单元;

106、电池;

201、互联矩阵单元;202、升级单元;203、激活函数单元;204、计算缓存单元;205、乘加器单元。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1,为本发明一实施例涉及的卷积神经网络的示意图。从图1中可以看出,神经网络包括卷积层、采样层和全连接层,在神经网络计算时,运算量最大的为卷积层和激活层。本发明涉及的乘法器应用于神经网络识别计算,在神经网络的诸多计算类型中,乘法计算又占据了其中的主要部分。乘法计算需要相应的硬件电路资源来完成,硬件电路资源又取决于进行乘法计算的精度大小,因而如果能够动态调整乘法器精度,使之可以根据电子设备的电池电量动态进行调整,对于节省电子设备的功耗将是十分有意义的。

如图2所示,为本发明一实施例涉及的基于电量设置乘法器精度的功耗调整装置的示意图。所述装置设置于电子设备中,所述电子设备可以为手机、平板、个人计算机等。所述装置包括供电单元103、电量检测单元102、供电控制单元101;所述供电单元包括多个电源域,每一电源域与至少一个缓存单元105连接,每一缓存单元用于存储乘数中预设位数的数据;不同电源域内的缓存单元所存储的乘数的预设位数各不相同;

所述电量检测单元102用于检测电子设备的电池106电量。在电子设备中,电池是作为总的供电电源,其电池电压(即电量)会随着电路功耗而逐渐降低,直至进行再次进行充电。供电单元是为乘法计算的电路提供电源,供电单元与电子设备的电池相连接,通过稳压电路将电池传输的电压转换为稳压输出给乘法计算电路,而稳压输出又是以电源域为单位进行多路输出的,因而通过控制不同电源域的开启或关闭,就可以实现对不同电源域内乘法计算电路的开启或关闭。

所述供电控制单元101用于根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况。电池电量与乘法器精度的对应关系可以事先进行设置,并根据实际需要进行调整。由于每一电源域与至少一个缓存单元连接,每一缓存单元用于存储乘数中预设位数的数据,不同电源域内的缓存单元所存储的乘数的预设位数各不相同,因而通过控制不同电源域内乘法计算电路的开启或关闭,就可以实现当前装置进行神经网络计算的乘法器精度的调整。

在某些实施例中,所述装置包括乘法计算单元104,电源域包括第一电源域1031,第一电源域13031与乘法计算单元104连接,每一电源域内的缓存单元105均与乘法计算单元104连接。第一电源域为主电源域,其他电源域为从电源域,当电池电量较高时,可以保持所有电源域均处于开启状态,以保证当前装置可以进行高精度的神经网络计算(因为乘法器的精度较高);当电池电量较低时,为了节省功耗,可以关闭其他所有电源域,仅保持第一电源域开启,从而使得装置仍然可以采用较低精度的乘法器进行神经网络计算,达到降低功耗又不影响电子设备正常功能使用的目的。

在某些实施例中,所述电源域包括第一电源域1031和第二电源域1032,相对应地,乘法计算单元104包括第一乘法计算单元1041和第二乘法计算单元1042,缓存单元105包括第一缓存单元1051和第二缓存单元1052,第一乘法计算单元1041与第一缓存单元1051连接,第二乘法计算单元1042与第二缓存单元1052连接;第一乘法计算单元1041与第一缓存单元1051通过第一电源域进行供电,第二乘法计算单元1042与第二缓存单元1052通过第二电源域进行供电。

供电控制单元用于根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况包括:当电池电量高于第一预设阈值时,供电控制单元用于控制第一电源域和第二电源域开启;当电池电量小于第一预设阈值时,供电控制单元用于控制第一电源域开启,第二电源域关闭。例如第一预设阈值为电池总电量的50%,当电量检测单元检测到电池电量大于50%时,供电控制单元开启第一电源域和第二电源域,使得第一乘法计算单元和第二乘法计算单元处于工作状态,进而使得装置采用第一精度进行神经网络计算;当电量检测单元检测到电池电量小于50%时,供电控制单元开启第一电源域,并关闭第二电源域,使得第一乘法计算单元处于工作状态,第二乘法计算单元处于不工作状态,进而使得装置采用第二精度进行神经网络计算,第二精度小于第一精度,因此当电子设备电量小于50%时,可以采用较低精度的乘法器进行神经网络计算,达到节省功耗的效果。

在某些实施例中,所述装置包括神经网络电路(乘法计算单元为神经网络电路的一部分)、误差计算单元、配置信息存储单元。神经网络计算可以通过神经网络电路来完成,具体地,在进行神经网络计算时,神经网络电路接收待测数据,并进行神经网络识别计算,误差计算单元通过判断本次计算结果与真实信息的匹配度是否大于预设匹配度,若是则判定为训练完成,记录此时神经网络对应的各个参数配置信息,并将包含有更新后的参数配置信息写入配置信息存储单元中;否则神经网络电路根据本次训练结果的匹配度与上一次训练结果的匹配度的差异,调整参数配置信息,以及根据调整后的参数配置信息再次进行神经网络计算,直至训练完成。上述参数配置信息包括神经网络各层对应的神经元数量、权重信息、卷积核值、卷积偏置值等。

所述真实信息是指输入至可重构网络矩阵单元的特征信息,可以是指纹特征信息、人脸特征信息,也可以是包含有指纹特征信息、人脸特征信息的图片等。例如可重构神经网络矩阵进行的是基于指纹识别功能的训练,则输入的特征信息为指纹特征信息,误差计算单元所比较的对象是本次计算结果得到的识别结果与输入的真实指纹特征信息之间的匹配度,如果匹配度越高说明误差越小,当误差小于预设误差时,则判定为训练完成。神经网络训练计算过程,现有多种算法已有公开,此处不再赘述。误差计算单元的电路结构如图3所示。

如图6所示,所述可重构神经网络矩阵还包括互联矩阵单元201、升级单元202、激活函数单元203、乘加器单元205、计算缓存单元204。所述升级单元202、激活函数单元203分别与互联矩阵单元201连接,所述互联矩阵单元201用于根据参数配置信息对乘加器(即乘加器单元)、升级单元、激活函数单元进行互联,从而形成对应的神经网络结构。升级单元的电路结构如图4所示、乘加器单元的电路结构如图5所示。

如图7所述,在本实施方式中,乘法计算是采用基4编码算法进行,具体地,所述乘法计算单元包括低位补零单元、基4编码单元、位移单元和累加单元。缓存单元包括中间缓存单元、补零缓存单元、编码缓存单元。每一电源域还与至少一个编码缓存单元、至少一个编码查表运算单元、位移单元连接;每一电源域的缓存单元还都与低位补零单元连接,所述低位补零单元与基4编码单元连接,每一电源域内的编码缓存单元还都与基4编码单元连接,每一电源域内的编码缓存单元还通过同一电源域内的编码查表运算单元与该电源域内的位移单元连接;每一电源域的位移单元还都与累加单元连接。

为了便于说明,对本发明涉及的乘法器的精度提升方式做进一步说明,以乘法器的最大精度为32bitx32bit为例,对于一个32bitx32bit的乘法器而言,其既可以划分为4个8bit子乘法器,也可以划分为2个16bit子乘法器。乘法计算电路实现乘法器的精度提升的具体流程如下:

(1)根据精度等级将32bit乘数a和b分别拆分为4个8bit,并将乘数暂存于中间缓存单元。在乘法器的精度全开32bit的情况下,拆分方法为缓存1存放32t到25bit,缓存2存放24到17bit,缓存3存放16到9bit,缓存4存放8到1bit;在精度等级为16bit精度的情况下,拆分方法为缓存1存放32到25bit,缓存2存放24到17bit,缓存3存放8个零,缓存4存放8个零;在功耗等级为最小精度8bit的情况下,拆分方法为缓存1存放32到25bit。

(2)读取中间缓存单元的值对低位进行1bit补零后再存入补零缓存单元中;

(3)基4编码单元负责对每个9bit补零后的乘数进行基4编码,然后将编码结果存到编码缓存单元,booth乘法器基4编码为经典算法,此处不再赘述。

(4)根据a的4个编码值和b的8bit值进行查表运算,得到查表结果送往位移单元;

(5)位移单元负责根据原拆分乘数的位置对运算结果进行位移,位移单元1将结果向左位移48bit,位移单元2将结果向左位移32bit,位移单元3将结果向左位移16bit,位移单元4将结果向左位移0bit,然后将位移后的结果送往累加单元;

(6)累加单元负责将4个位移单元的结果进行累加后输出为乘法结果。

如图8所示,供电单元包括电源域1、电源域2和电源域3,电源域1包括1个8bit缓存单元(即缓存1),电源域2包括1个8bit缓存单元(即缓存2),电源域3包括2个8bit缓存单元(即缓存3和缓存4)。以乘法器精度全开情况下位数为32bit为例,拆分方法为缓存1存放32t到25bit,缓存2存放24到17bit,缓存3存放16到9bit,缓存4存放8到1bit;在精度等级为16bit精度的情况下,拆分方法为缓存1存放32到25bit,缓存2存放24到17bit,缓存3存放8个零,缓存4存放8个零;在功耗等级为最小精度8bit的情况下,拆分方法为缓存1存放32到25bit,缓存2、3、4均存放0。

假设用户设置的第一预设阈值和第二预设阈值分别为电池总电量的80%和50%,即电子设备的电池电量为80%以上时,采用32bit精度乘法器进行工作,此时电源域1、2、3均处于开启状态;当电子设备的电池电量剩余50%至80%之间时,采用16bit精度乘法器进行工作,此时电源域1、2均处于开启状态,电源域3处于关闭状态,即在进行乘法计算时只取高位部分的16位进行计算,低位16位进行补零,并采用基4编码算法得到计算结果;当电子设备的电池电量小于50%时,采用8bit精度乘法器进行工作,此时电源域1处于开启状态,电源域2、3均处于关闭状态,即在进行乘法计算时只取高位部分的8位进行计算,低位24位进行补零,并采用基4编码算法得到计算结果。基4编码的具体过程前文图7的描述,此处不再赘述。

在另一些实施例中,供电单元还可以划分为其他任意数量的电源域,如2个、4个、10个等。每一电源域内所包含的缓存单元的数量也可以根据实际需要进行确定,例如图8中的缓存单元划分,也可以调整为电源域1包括缓存1和缓存2,电源域2包括缓存3,电源域3包括缓存4。这样,当电量充足(如大于80%)时,电源域1、2、3全开乘法器以全精度32bit进行工作;当电量较为充足(如大于50%小于80%)时,电源域1、2开启,电源域3关闭,乘法器以高位24bit精度进行工作;当电量较少时(如小于50%)时,电源域1开启,电源域2、3关闭,乘法器以高位16bit精度进行工作。此外,乘法器的全精度还可能为64bit、128bit等,划分的方式与32bit类似,并且可以以16bit为单位进行划分(即每一缓存单元中存储的预设位数为16位),也可以以4bit为单位进行划分(即每一缓存单元中存储的预设位数为4位),计算方法均与预设位数为8bit的情况类似,此处不再赘述。

请参阅图9,为本发明一实施例涉及的基于电量设置乘法器精度的功耗调整方法的流程图,。所述方法应用于基于电量设置乘法器精度的功耗调整的装置,所述装置设置于电子设备中,所述装置包括供电单元、电量检测单元、供电控制单元;所述供电单元包括多个电源域,每一电源域与至少一个缓存单元连接,每一缓存单元用于存储乘数中预设位数的数据;不同电源域内的缓存单元所存储的乘数的预设位数各不相同;所述方法包括以下步骤:

首先进入步骤s901电量检测单元检测电子设备的电池电量;

而后进入步骤s902供电控制单元根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况。

在某些实施例中,所述装置包括乘法计算单元,电源域包括第一电源域,第一电源域与乘法计算单元连接,每一电源域内的缓存单元均与乘法计算单元连接。所述电源域包括第一电源域和第二电源域;步骤供电控制单元根据电池电量与乘法器精度的对应关系,确定当前乘法器精度,并根据乘法器精度调整对不同电源域的供电情况包括:当电池电量高于第一预设阈值时,供电控制单元用于控制第一电源域和第二电源域开启;当电池电量小于第一预设阈值时,供电控制单元用于控制第一电源域开启,第二电源域关闭。

在某些实施例中,所述乘法计算单元包括低位补零单元、基4编码单元和累加单元;每一电源域还与至少一个编码缓存单元、至少一个编码查表运算单元、位移单元连接;每一电源域的缓存单元还都与低位补零单元连接,所述低位补零单元与基4编码单元连接,每一电源域内的编码缓存单元还都与基4编码单元连接,每一电源域内的编码缓存单元还通过同一电源域内的编码查表运算单元与该电源域内的位移单元连接;每一电源域的位移单元还都与累加单元连接。

上述技术方案所述的基于电量设置乘法器精度的功耗调整方法和装置,所述装置设置于电子设备中,所述方法可以根据当前电子设备的电量调整各个电源域的供电情况,进而调整当前进行神经网络计算的乘法器精度,具体则是在电子设备的电量充足时,尽可能开启更多地电源域,使得与这些电源域连接的乘加器均处于工作状态,以便采用更高精度的乘加器进行神经网络的乘法计算;反之,在电子设备的电量较低时,关闭部分电源域,以使得与关闭的电源域连接的乘加器处于不工作状态,以便采用相对较低精度的乘加器进行神经网络计算,从而达到节省功耗的目的。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1