基于神经网络的芯片设计能效优化方法转让专利

申请号 : CN202310056009.3

文献号 : CN115809693B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李辉范佳欣

申请人 : 南京集成电路产业服务中心有限公司

摘要 :

本发明提供一种基于神经网络的芯片设计能效优化方法,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息;确定神经网络中输入连接线的数量、输出连接线的数量得到各神经网络的连接线信息;根据节点比例信息、连接线信息对所有的神经网络进行计算得到各神经网络的计算比例系数并填入神经网络比例槽位内,基于神经网络比例槽位对计算单元进行分配,使得每个神经网络具有相对应的计算单元;根据每个神经网络的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表。

权利要求 :

1.基于神经网络的芯片设计能效优化方法,其特征在于,包括:

确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位;

提取每个神经网络中输入层的输入节点数量、隐藏层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息;

确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息;

根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元;

根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表。

2.根据权利要求1所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位,包括:获取用户为不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,统计神经网络集合内神经网络的数量得到每个神经网络集合的神经网络数量;

提取每个神经网络所对应的网络标签,根据所述神经网络数量构建相对应的神经网络比例槽位,所述神经网络比例槽位中的每个槽位对应一个网络标签。

3.根据权利要求2所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述提取每个神经网络中输入层的输入节点数量、隐层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息,包括:将每个神经网络的输入节点数量与多个神经网络的输入节点数量之和作比,得到多个神经网络之间的输入节点比例,所述输入节点比例中包括每个神经网络对应的第一输入节点系数;

将每个神经网络的隐藏节点数量与多个神经网络的隐藏节点数量之和作比,得到多个神经网络之间的隐藏节点比例,所述隐藏节点比例中包括每个神经网络对应的第一隐藏节点系数;

将每个神经网络的输出节点数量与多个神经网络的输出节点数量之和作比,得到多个神经网络之间的输出节点比例,所述输出节点比例中包括每个神经网络对应的第一输出节点系数;

统计多个神经网络之间的输入节点比例、隐藏节点比例以及输出节点比例得到相对应的节点比例信息。

4.根据权利要求3所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息,包括:确定神经网络中每个输入节点与隐藏节点的连接数量,将所有输入节点与所有隐藏节点的总连接数量作为输入连接线的数量;

确定神经网络中每个输出节点与隐藏节点的连接数量,将所有输出节点与所有隐藏节点的总连接数量作为输出连接线的数量。

5.根据权利要求4所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:将每个神经网络的输入连接线与多个神经网络的输入连接线之和的数量作比得到输入连接线比例,根据所述输入连接线比例得到每个神经网络所对应输入节点数量的输入节点权重、隐藏节点的第一隐藏节点权重;

将每个神经网络的输出连接线与多个神经网络的输出连接线之和的数量作比得到输出连接线比例,根据所述输出连接线比例得到每个神经网络所对应输出节点数量的输出节点权重、隐藏节点的第二隐藏节点权重;

基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元。

6.根据权利要求5所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数并填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:根据每个神经网络所对应的输入节点权重对输入节点比例中相应的系数进行修正,得到修正后的输入节点比例,修正后的输入节点比例中包括每个神经网络对应的第二输入节点系数;

根据每个神经网络所对应的第一隐藏节点权重、第二隐藏节点权重对输入节点比例中相应的系数进行修正,得到修正后的隐藏节点比例,修正后的隐藏节点比例中包括每个神经网络对应的第二隐藏节点系数;

根据每个神经网络所对应的输出节点权重对输出节点比例中相应的节点系数进行修正,得到修正后的输出节点比例,修正后的输出节点比例中包括每个神经网络对应的第二输出节点系数;

根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内。

7.根据权利要求6所述的基于神经网络的芯片设计能效优化方法,其特征在于,通过以下公式得到第二输入节点系数、第二隐藏节点系数以及第二输出节点系数,其中, 为第 个神经网络在输入节点比例中所对应的第二输入节点系数, 为第个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在计算时神经网络的上限值, 为第 个神经网络所对应的输入节点数量, 为第个神经网络所对应的输入节点数量, 为在 计算时神经网络的上限值;

为第 个神经网络在隐藏节点比例中所对应的第二隐藏节点系数, 为第 个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在计算时神经网络的上限值, 为第一输入常数值, 为第 个神经网络的输出连接线的数量, 为第 个神经网络的输出连接线的数量,为在 计算时神经网络的上限值, 为第一输出常数值, 为第 个神经网络所对应的隐藏节点数量, 为第 个神经网络所对应的隐藏节点数量,为在 计算时神经网络的上限值;

为第 个神经网络在输出节点比例中所对应的第二输出节点系数, 为第 个神经网络的输出连接线的数量, 为第 个神经网络的输出连接线的数量,为在 计算时神经网络的上限值, 为第 个神经网络所对应的输出节点数量, 为第 个神经网络所对应的输出节点数量,为 计算时神经网络的上限值。

8.根据权利要求7所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,包括:将每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数分别与相应的梯度参数相乘后相加得到每个神经网络的计算比例系数,通过以下公式计算每个神经网络的计算比例系数,其中, 为第 个神经网络的计算比例系数, 为第 个神经网络的第二输入节点系数, 为输入节点的梯度参数, 为第 个神经网络的第二隐藏节点系数, 为隐藏节点的梯度参数, 为第 个神经网络的第二输出节点系数, 为输出节点的梯度参数;

根据每个神经网络的计算比例系数所对应的网络标签,将相应的计算比例系数填入至神经网络比例槽位内。

9.根据权利要求8所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:确定所有计算单元的总数量,将每个神经网络的节点比例信息与所有的神经网络的节点比例信息之和作比得到单元比例系数,根据单元比例系数、计算单元的总数量得到每个神经网络对应的计算单元数量;

其中, 为第 个神经网络对应的计算单元数量, 为第 个神经网络对应的计算比例系数, 为第 个神经网络对应的计算比例系数, 为 计算时神经网络的上限值, 为所有计算单元的总数量。

10.根据权利要求9所述的基于神经网络的芯片设计能效优化方法,其特征在于,所述根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表,包括:根据每个神经网络所对应的计算单元数量,每个神经网络所对应的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行计算,得到输入节点、隐藏节点以及输出节点分别对应的计算单元数量,通过以下公式进行计算,其中, 为第 个神经网络的输入节点所对应的计算单元数量, 为第 个神经网络的第二输入节点系数, 为第 个神经网络的计算比例系数, 为第 个神经网络对应的计算单元数量, 为第 个神经网络的隐藏节点所对应的计算单元数量, 为第 个神经网络的第二隐藏节点系数, 为第 个神经网络的输出节点所对应的计算单元数量,为第 个神经网络的第二输出节点系数;

对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表,以使在相应场景下进行数据处理时为每个神经网络、输入节点、隐藏节点以及输出节点分配相对应数量的计算单元。

说明书 :

基于神经网络的芯片设计能效优化方法

技术领域

[0001] 本发明涉及数据处理技术,尤其涉及一种基于神经网络的芯片设计能效优化方法。

背景技术

[0002] 芯片是以半导体为原材料,对集成电路进行设计、制造、封测后所得到的实体产品,海量数据处理和各种数字化应用都离不开芯片进行加工和计算。神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型;这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。因此,现实中将芯片与神经网络相结合,基于芯片运行相关的神经网络进行数据的处理,相比普通芯片而言,使得每个处理单元都有自己的内存,而且直接与相邻的处理单元进行交流提升处理效率。
[0003] 现有技术中,针对不同场景下的数据处理,芯片无法对参与运算的神经网络进行适应性的能效优化,从而导致一些场景下的数据处理能效较低且不稳定。因此,如何结合不同场景下的数据处理,来对参与运算的神经网络进行适应性的能效优化成为了急需解决的问题。

发明内容

[0004] 本发明实施例提供一种基于神经网络的芯片设计能效优化方法,可以依据场景的不同针对不同的神经网络进行适应性的能效优化,使得不同神经网络拥有相对应的计算单元提升计算效率。
[0005] 本发明实施例的第一方面,提供一种基于神经网络的芯片设计能效优化方法,包括:
[0006] 确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位;
[0007] 提取每个神经网络中输入层的输入节点数量、隐藏层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息;
[0008] 确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息;
[0009] 根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元;
[0010] 根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表。
[0011] 可选地,在第一方面的一种可能实现方式中,所述确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位,包括:
[0012] 获取用户为不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,统计神经网络集合内神经网络的数量得到每个神经网络集合的神经网络数量;
[0013] 提取每个神经网络所对应的网络标签,根据所述神经网络数量构建相对应的神经网络比例槽位,所述神经网络比例槽位中的每个槽位对应一个网络标签。
[0014] 可选地,在第一方面的一种可能实现方式中,所述提取每个神经网络中输入层的输入节点数量、隐层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息,包括:
[0015] 将每个神经网络的输入节点数量与多个神经网络的输入节点数量之和作比,得到多个神经网络之间的输入节点比例,所述输入节点比例中包括每个神经网络对应的第一输入节点系数;
[0016] 将每个神经网络的隐藏节点数量与多个神经网络的隐藏节点数量之和作比,得到多个神经网络之间的隐藏节点比例,所述隐藏节点比例中包括每个神经网络对应的第一隐藏节点系数;
[0017] 将每个神经网络的输出节点数量与多个神经网络的输出节点数量之和作比,得到多个神经网络之间的输出节点比例,所述输出节点比例中包括每个神经网络对应的第一输出节点系数;
[0018] 统计多个神经网络之间的输入节点比例、隐藏节点比例以及输出节点比例得到相对应的节点比例信息。
[0019] 可选地,在第一方面的一种可能实现方式中,所述确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息,包括:
[0020] 确定神经网络中每个输入节点与隐藏节点的连接数量,将所有输入节点与所有隐藏节点的总连接数量作为输入连接线的数量;
[0021] 确定神经网络中每个输出节点与隐藏节点的连接数量,将所有输出节点与所有隐藏节点的总连接数量作为输出连接线的数量。
[0022] 可选地,在第一方面的一种可能实现方式中,所述根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:
[0023] 将每个神经网络的输入连接线与多个神经网络的输入连接线之和的数量作比得到输入连接线比例,根据所述输入连接线比例得到每个神经网络所对应输入节点数量的输入节点权重、隐藏节点的第一隐藏节点权重;
[0024] 将每个神经网络的输出连接线与多个神经网络的输出连接线之和的数量作比得到输出连接线比例,根据所述输出连接线比例得到每个神经网络所对应输出节点数量的输出节点权重、隐藏节点的第二隐藏节点权重;
[0025] 基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元。
[0026] 可选地,在第一方面的一种可能实现方式中,所述基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数并填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:
[0027] 根据每个神经网络所对应的输入节点权重对输入节点比例中相应的系数进行修正,得到修正后的输入节点比例,修正后的输入节点比例中包括每个神经网络对应的第二输入节点系数;
[0028] 根据每个神经网络所对应的第一隐藏节点权重、第二隐藏节点权重对输入节点比例中相应的系数进行修正,得到修正后的隐藏节点比例,修正后的隐藏节点比例中包括每个神经网络对应的第二隐藏节点系数;
[0029] 根据每个神经网络所对应的输出节点权重对输出节点比例中相应的节点系数进行修正,得到修正后的输出节点比例,修正后的输出节点比例中包括每个神经网络对应的第二输出节点系数;
[0030] 根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内。
[0031] 可选地,在第一方面的一种可能实现方式中,通过以下公式得到第二输入节点系数、第二隐藏节点系数以及第二输出节点系数,
[0032]
[0033] 其中, 为第 个神经网络在输入节点比例中所对应的第二输入节点系数,为第 个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在 计算时神经网络的上限值, 为第 个神经网络所对应的输入节点数量, 为
第 个神经网络所对应的输入节点数量, 为在 计算时神经网络的上限值;
[0034] 为第 个神经网络在隐藏节点比例中所对应的第二隐藏节点系数, 为第个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在
计算时神经网络的上限值, 为第一输入常数值, 为第 个神经网络的输出连
接线的数量, 为第 个神经网络的输出连接线的数量,为在 计算时神经网络的
上限值, 为第一输出常数值, 为第 个神经网络所对应的隐藏节点数量, 为第
个神经网络所对应的隐藏节点数量,为在 计算时神经网络的上限值;
[0035] 为第 个神经网络在输出节点比例中所对应的第二输出节点系数, 为第个神经网络的输出连接线的数量, 为第 个神经网络的输出连接线的数量,为在
计算时神经网络的上限值, 为第 个神经网络所对应的输出节点数量, 为第
个神经网络所对应的输出节点数量,为 计算时神经网络的上限值。
[0036] 可选地,在第一方面的一种可能实现方式中,所述根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,包括:
[0037] 将每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数分别与相应的梯度参数相乘后相加得到每个神经网络的计算比例系数,通过以下公式计算每个神经网络的计算比例系数,
[0038]
[0039] 其中, 为第 个神经网络的计算比例系数, 为第 个神经网络的第二输入节点系数, 为输入节点的梯度参数, 为第 个神经网络的第二隐藏节点系数, 为隐藏节点的梯度参数, 为第 个神经网络的第二输出节点系数, 为输出节点的梯
度参数;
[0040] 根据每个神经网络的计算比例系数所对应的网络标签,将相应的计算比例系数填入至神经网络比例槽位内。
[0041] 可选地,在第一方面的一种可能实现方式中,所述根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元,包括:
[0042] 确定所有计算单元的总数量,将每个神经网络的节点比例信息与所有的神经网络的节点比例信息之和作比得到单元比例系数,根据单元比例系数、计算单元的总数量得到每个神经网络对应的计算单元数量;
[0043]
[0044] 其中, 为第 个神经网络对应的计算单元数量, 为第 个神经网络对应的计算比例系数, 为第 个神经网络对应的计算比例系数,为 计算时神经网络的上限值, 为所有计算单元的总数量。
[0045] 可选地,在第一方面的一种可能实现方式中,所述根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表,包括:
[0046] 根据每个神经网络所对应的计算单元数量,每个神经网络所对应的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行计算,得到输入节点、隐藏节点以及输出节点分别对应的计算单元数量,通过以下公式进行计算,
[0047]
[0048] 其中, 为第 个神经网络的输入节点所对应的计算单元数量, 为第 个神经网络的第二输入节点系数, 为第 个神经网络的计算比例系数, 为第 个神经网络对应的计算单元数量, 为第 个神经网络的隐藏节点所对应的计算单元数量, 为第个神经网络的第二隐藏节点系数, 为第 个神经网络的输出节点所对应的计算单元数量, 为第 个神经网络的第二输出节点系数;
[0049] 对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表,以使在相应场景下进行数据处理时为每个神经网络、输入节点、隐藏节点以及输出节点分配相对应数量的计算单元。
[0050] 本发明实施例的第二方面,提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法。
[0051] 本发明提供的一种基于神经网络的芯片设计能效优化方法,依据场景不同对应参与运算的神经网络的种类和数量不同,比如对不同的图像的不同部分进行图像处理,使用的神经网络不同;依据不同神经网络的输入层的输入节点数量、隐层的隐藏节点数量、输出层的输出节点数量、输入连接线的数量和输出连接线可以得到神经网络的计算比例系数(复杂程度),神经网络的复杂程度越高相应的需求的计算单元相对较多,根据神经网络的复杂程度不同进行计算单元的分配,并且再对神经网络的不同节点进行计算单元的分配,使得可以结合不同场景下的数据处理,来对参与运算的神经网络进行适应性的能效优化,提升计算效率。
[0052] 本发明提供的技术方案, 综合考虑了每个神经网络输入层、隐藏层以及输出层的节点数量占比得到相应的第一输入节点系数、第一隐藏节点系数和第一输出节点系数,以及输入层中每个输入节点和输出层中每个输出节点分别与隐藏层的连接线数量得到相应的输入节点权重、输出节点权重、隐藏节点的第一隐藏节点权重和第二隐藏节点权重,使得本发明可以依据神经网络节点以及连接线确定不同神经网络的复杂程度,从而计算出的节点系数可以得到每个神经网络比例槽位中的计算比例系数;依据计算比例系数进行能效的优化,使得本发明可以依据不同场景下所需的不同神经网络进行能效的优化,依据每个神经网络中所对应的输入层的第二输入节点系数、隐藏层的第二隐藏节点系数和输出层的第二输出节点系数再次对神经网络的计算单元数量进行分配,使得每个计算单元对应多个神经网络节点,避免了计算单元的重复分配引起的算力冲突。

附图说明

[0053] 图1为本发明所提供的一种基于神经网络的芯片设计能效优化方法的流程图。

具体实施方式

[0054] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
[0056] 应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0057] 应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0058] 应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
[0059] 应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
[0060] 取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
[0061] 下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0062] 本发明提供一种基于神经网络的芯片设计能效优化方法,如图1所示,包括步骤S1至步骤S5,具体如下:
[0063] S1,确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位。
[0064] 其中,神经网络比例槽位为每个神经网络用于填充计算比例系数的槽位。
[0065] 可以理解的是,芯片在不同的计算场景或数据处理场景下对应使用神经网络的数量不同、神经网络的类型不同,每个神经网络都具有相应的神经网络比例槽位,方便后续根据神经网络比例槽位内的系数进行计算单元分配。
[0066] 例如:手机、摄像机、无人机的GPU图像处理芯片在不同场景下对图像进行处理所需的神经网络不同,对图像不同部分进行处理的时候所需的神经网络数量和类型也不相同,依据芯片的处理场景不同获取所需的神经网络集合,依据神经网络集合中神经网络的数量确定相应数量的神经网络比例槽位。
[0067] 在一些实施例中,步骤S1中的(确定芯片在不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,以及每个神经网络集合的神经网络数量,根据所述神经网络数量生成神经网络比例槽位)包括S11‑S12:
[0068] S11,获取用户为不同场景下的数据处理时所需要参与运算的神经网络,得到相应场景的神经网络集合,统计神经网络集合内神经网络的数量得到每个神经网络集合的神经网络数量。
[0069] 可以理解的是,服务器会依据对不同场景进行数据处理时的需求确定相应所需的神经网络集合,统计神经网络集合内神经网络的数量得到每个神经网络集合的神经网络数量,方便后续依据神经网络数量确定相应数量的槽位。
[0070] S12,提取每个神经网络所对应的网络标签,根据所述神经网络数量构建相对应的神经网络比例槽位,所述神经网络比例槽位中的每个槽位对应一个网络标签。
[0071] 其中,网络标签为每个神经网络对应的标签,例如:BP神经网络的网络标签可以是标签A、离散Hopfield网络的网络标签可以是标签B。
[0072] 可以理解的是,依据神经网络数量构建相对应数量的神经网络比例槽位,每个槽位都与相应的网络标签的神经网络相对应,通过网络标签将神经网络比例槽位与神经网络一一对应。
[0073] S2,提取每个神经网络中输入层的输入节点数量、隐藏层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息。
[0074] 其中,节点比例信息为每个神经网络中输入层、隐藏层和输出层中节点数量占所有神经网络相应层的节点数量之和的比值。
[0075] 可以理解的是,分别提取每个神经网络中输入层、隐藏层和输出层中相应的输入节点数量、隐藏节点数量和输出节点数量,将每个神经网络的输入节点数量与所有神经网络的输入节点数量的比值得到输入节点比例,将每个神经网络的隐藏节点数量与所有神经网络的隐藏节点数量的比值得到隐藏节点比例,将每个神经网络的输出节点数量与所有神经网络的输出节点数量的比值得到输出节点比例,输入节点比例、隐藏节点比例和输出节点比例均为节点比例信息。
[0076] 在一些实施例中,步骤S2中的(提取每个神经网络中输入层的输入节点数量、隐层的隐藏节点数量以及输出层的输出节点数量,将多个神经网络的输入节点数量、隐藏节点数量以及输出节点数量进行比例计算得到节点比例信息)包括S21‑S24:
[0077] S21,将每个神经网络的输入节点数量与多个神经网络的输入节点数量之和作比,得到多个神经网络之间的输入节点比例,所述输入节点比例中包括每个神经网络对应的第一输入节点系数。
[0078] 其中,输入节点比例为每个神经网络的输入节点数量与神经网络集合中所有神经网络的输入节点数量的比值。
[0079] 可以理解的是,每个神经网络都具有与其对应的第一输入节点系数。
[0080] S22,将每个神经网络的隐藏节点数量与多个神经网络的隐藏节点数量之和作比,得到多个神经网络之间的隐藏节点比例,所述隐藏节点比例中包括每个神经网络对应的第一隐藏节点系数。
[0081] 其中,隐藏节点比例为每个神经网络的隐藏节点数量与神经网络集合中所有神经网络的隐藏节点数量的比值。
[0082] 可以理解的是,每个神经网络都具有与其对应的第一隐藏节点系数。
[0083] S23,将每个神经网络的输出节点数量与多个神经网络的输出节点数量之和作比,得到多个神经网络之间的输出节点比例,所述输出节点比例中包括每个神经网络对应的第一输出节点系数。
[0084] 其中,输出节点比例为每个神经网络的输出节点数量与神经网络集合中所有神经网络的输出节点数量的比值。
[0085] 可以理解的是,每个神经网络都具有与其对应的第一输出节点系数。
[0086] S24,统计多个神经网络之间的输入节点比例、隐藏节点比例以及输出节点比例得到相对应的节点比例信息。
[0087] 可以理解的是,统计神经网络集合中多个神经网络之间的输入节点比例、隐藏节点比例以及输出节点比例得到相对应的节点比例信息,方便后续依据节点比例信息确定神经网络的复杂程度从而分配相应的计算单元。
[0088] S3,确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息。
[0089] 需要说明的是,每个神经网络都具有输入层、隐藏层和输出层,输入层中的输入节点可以连接一个隐藏层中的隐层节点也可以连接多个,输出层中的输出节点可以连接一个隐藏层中的隐层节点也可以连接多个。
[0090] 因此对每个神经网络中输入连接线的数量、输出连接线的数量进行统计可以得到连接线信息,方便后续依据连接线信息确定神经网络的复杂程度,神经网络越复杂进行运算的算力相对较多。
[0091] 在一些实施例中,步骤S3中的(确定神经网络中输入连接线的数量、输出连接线的数量得到每一个神经网络的连接线信息)包括S31‑S32:
[0092] S31,确定神经网络中每个输入节点与隐藏节点的连接数量,将所有输入节点与所有隐藏节点的总连接数量作为输入连接线的数量。
[0093] 可以理解的是,神经网络中每个输入节点可以与一个或多个隐藏节点相连接,每个输入节点的连接线数量与连接的隐藏节点数量相同,统计所有输入节点连接的所有隐藏节点的数量为输入连接线的数量。
[0094] S32,确定神经网络中每个输出节点与隐藏节点的连接数量,将所有输出节点与所有隐藏节点的总连接数量作为输出连接线的数量。
[0095] 可以理解的是,神经网络中每个输出节点可以与一个或多个隐藏节点相连接,每个输出节点的连接线数量与连接的隐藏节点数量相同,统计所有输出节点连接的所有隐藏节点的数量为输出连接线的数量。
[0096] 本发明考虑了输入、输出连接线的数量,连接线的数量越多相应的神经网络连接越复杂,神经网络越复杂相应的需要的算力越多,方便后续依据连接线的进行分配相应的计算单元。
[0097] S4,根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元。
[0098] 其中,节点比例信息为每个神经网络中各输入层、隐藏层、输出层中的输入节点、隐藏节点、输出节点占神经网络集合中相应的所有输入层、隐藏层、输出层中节点的比例信息,连接线信息为每个神经网络中所有输入节点、输出节点分别与隐藏节点的连接数量信息。
[0099] 可以理解的是,根据每个神经网络中的节点比例信息、连接线信息进行计算得到每个神经网络的计算比例系数,并将计算比例系数填充至神经网络比例槽位内,并基于神经网络比例槽位内的计算比例系数对所有计算单元进行分配,使得每个神经网络具有相对应数量的计算单元。
[0100] 需要说明的是,计算单元可以是硬件芯片中核心(Core);也可以是虚拟划分的,例如:一个芯片的计算力分为10个计算单元,每个计算单元拥有10%的计算力。
[0101] 现有技术中均采用数据量的形式进行计算单元的分配,当处理数据量较大时,计算单元会出现重复分配的情况,导致计算效率较低的同时存在计算有所冲突的问题,容易出现错误;而本发明则是依据处理场景不同获取所需的不同神经网络,依据神经网络的复杂程度为其分配相应的计算单元,对计算单元进行合理的分配,使得计算效率较高。
[0102] 在一些实施例中,步骤S4中的(根据所述节点比例信息、连接线信息对所有的神经网络进行计算得到每个神经网络的计算比例系数并填入至神经网络比例槽位内,基于神经网络比例槽位对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元)包括S41‑S43:
[0103] S41,将每个神经网络的输入连接线与多个神经网络的输入连接线之和的数量作比得到输入连接线比例,根据所述输入连接线比例得到每个神经网络所对应输入节点数量的输入节点权重、隐藏节点的第一隐藏节点权重。
[0104] 其中,输入连接线比例为每个神经网络的输入连接线与神经网络集合中所有神经网络的输入连接线之和的数量的比值。
[0105] 可以理解的是,输入连接线比例决定了输入节点数量的输入节点权重、隐藏节点的第一隐藏节点权重,输入连接线比例越大相应的神经网络的输入连接线越多,则输入节点数量的输入节点权重、隐藏节点的第一隐藏节点权重相对较大,方便后续依据相应的权重值计算得到计算比例系数。
[0106] S42,将每个神经网络的输出连接线与多个神经网络的输出连接线之和的数量作比得到输出连接线比例,根据所述输出连接线比例得到每个神经网络所对应输出节点数量的输出节点权重、隐藏节点的第二隐藏节点权重。
[0107] 其中,输出连接线比例为每个神经网络的输出连接线与神经网络集合中所有神经网络的输出连接线之和的数量的比值。
[0108] 需要说明的是,因为隐藏层中的隐藏节点同时与输入层的输入节点连接又与输出层的输出节点连接,因此隐藏节点拥有2个权重值;输出连接线比例决定了输出节点数量的输出节点权重、隐藏节点的第二隐藏节点权重,输出连接线比例越大相应的神经网络的输出连接线越多,则输入节点数量的输出节点权重、隐藏节点的第二隐藏节点权重相对较大,方便后续依据权重值计算得到计算比例系数。
[0109] S43,基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元。
[0110] 可以理解的是,综合考虑了输入节点权重、第一隐藏节点权重、第二隐藏节点权重和输出节点权重也就是连接线的复杂程度,以及节点比例信息也就是节点的复杂程度从而得到每个神经网络的计算比例系数,并将计算比例系数填入至神经网络比例槽位内,方便后续依据每个神经网络的计算比例系数对计算单元进行分配。
[0111] 需要说明的是,现有技术中的计算单元分配多是依据任务量大小进行分配相应的算力,任务多且任务量大时分配的计算单元较多,任务少且任务量小时分配的计算单元较少,但计算单元分配过程中同一个计算单元经常会被多次分配到不同任务中,因此会导致算力冲突,严重时会导致芯片占用率过高,计算效率较低导致顿卡等。而本发明则是为每个神经网络配置相应的计算单元,避免了算力的冲突。
[0112] 在一些实施例中,步骤S43中的(基于所述输入节点权重、第一隐藏节点权重、第二隐藏节点权重以及输出节点权重对节点比例信息进行加权处理得到每个神经网络的计算比例系数,将每个神经网络的计算比例系数填入至神经网络比例槽位内,根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元)包括S431‑S434:
[0113] S431,根据每个神经网络所对应的输入节点权重对输入节点比例中相应的系数进行修正,得到修正后的输入节点比例,修正后的输入节点比例中包括每个神经网络对应的第二输入节点系数。
[0114] 可以理解的是,通过每个神经网络所对应的输入节点权重对输入节点比例中相应的系数进行修正,使得修正后的输入节点比例综合考虑了相应输入层连接线的复杂程度;
[0115] 需要说明的是,每个神经网络的输入层都具有与其对应的第二输入节点系数。
[0116] S432,根据每个神经网络所对应的第一隐藏节点权重、第二隐藏节点权重对输入节点比例中相应的系数进行修正,得到修正后的隐藏节点比例,修正后的隐藏节点比例中包括每个神经网络对应的第二隐藏节点系数。
[0117] 可以理解的是,通过每个神经网络所对应的第一隐藏节点权重、第二隐藏节点权重对输入节点比例中相应的系数进行修正,使得修正后的隐藏节点比例同时考虑了隐藏层分别与输入层和输出层之间连接线的复杂程度。
[0118] 需要说明的是,每个神经网络的隐藏层都具有与其对应的第二隐藏节点系数。
[0119] S433,根据每个神经网络所对应的输出节点权重对输出节点比例中相应的节点系数进行修正,得到修正后的输出节点比例,修正后的输出节点比例中包括每个神经网络对应的第二输出节点系数。
[0120] 可以理解的是,通过每个神经网络所对应的输出节点权重对输出节点比例中相应的节点系数进行修正,使得修正后的输出节点比例同时考虑了相应输出层连线的复杂程度。
[0121] 需要说明的是,每个神经网络的输出都具有与其对应的第二输出节点系数。
[0122] 通过上述实施方式,每个神经网络中的输入层、隐藏层和输出层均综合考虑相应层的节点数量以及连线的复杂程度,方便后续根据输入层、隐藏层和输出层中相应的节点系数(复杂程度)综合得到每个神经网络的计算比例系数,方便后续进行计算单元的分配。
[0123] 在上述实施例的基础上,通过以下公式得到第二输入节点系数、第二隐藏节点系数以及第二输出节点系数,包括:
[0124] 通过以下公式得到第二输入节点系数、第二隐藏节点系数以及第二输出节点系数,
[0125]
[0126] 其中, 为第 个神经网络在输入节点比例中所对应的第二输入节点系数,为第 个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在 计算时神经网络的上限值, 为第 个神经网络所对应的输入节点数量, 为
第 个神经网络所对应的输入节点数量, 为在 计算时神经网络的上限值,可以理解的是,第 个神经网络在输入节点比例中所对应的第二输入节点系数 与第 个神经网络的输入连接线的数量 成正比,第 个神经网络在输入节点比例中所对应的第二输入节点系数 与第 个神经网络所对应的输入节点数量 成正比, 为第一输入常数值,可
以是人为提前设置的。
[0127] 为第 个神经网络在隐藏节点比例中所对应的第二隐藏节点系数, 为第个神经网络的输入连接线的数量, 为第 个神经网络的输入连接线的数量,为在
计算时神经网络的上限值, 为第一输入常数值, 为第 个神经网络的输出连
接线的数量, 为第 个神经网络的输出连接线的数量,为在 计算时神经网络的
上限值, 为第一输出常数值, 为第 个神经网络所对应的隐藏节点数量, 为第
个神经网络所对应的隐藏节点数量,为在 计算时神经网络的上限值,可以理解的
是,第 个神经网络在隐藏节点比例中所对应的第二隐藏节点系数 与第 个神经网络所对应的隐藏节点数量 成正比。
[0128] 为第 个神经网络在输出节点比例中所对应的第二输出节点系数, 为第个神经网络的输出连接线的数量, 为第 个神经网络的输出连接线的数量,为在
计算时神经网络的上限值, 为第 个神经网络所对应的输出节点数量, 为第
个神经网络所对应的输出节点数量,为 计算时神经网络的上限值,可以理解的是,第 个神经网络在输出节点比例中所对应的第二输出节点系数 与第 个神经网络的输出连接线的数量 成正比,第 个神经网络在输出节点比例中所对应的第二输出节点系数 与第 个神经网络所对应的输出节点数量 成正比, 为第一输出常数值,可以
是人为提前设置的。
[0129] S434,根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内。
[0130] 可以理解的是,对每个神经网络的输入层、隐藏层和输出层的复杂程度进行综合考虑可以得到相应的计算比例系数,也就是对每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算得到每个神经网络的计算比例系数。并将计算比例系数填入至神经网络比例槽位内,方便后续根据神经网络比例槽位内的计算比例系数进行计算单元的分配。
[0131] 在一些实施例中,步骤S434中的(根据每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行综合计算,得到每个神经网络的计算比例系数并填入至神经网络比例槽位内)包括S4341‑S4342:
[0132] S4341,将每个神经网络的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数分别与相应的梯度参数相乘后相加得到每个神经网络的计算比例系数,通过以下公式计算每个神经网络的计算比例系数,
[0133]
[0134] 其中, 为第 个神经网络的计算比例系数, 为第 个神经网络的第二输入节点系数, 为输入节点的梯度参数, 为第 个神经网络的第二隐藏节点系数, 为隐藏节点的梯度参数, 为第 个神经网络的第二输出节点系数, 为输出节点的梯
度参数,可以理解的是,第 个神经网络的计算比例系数 与第 个神经网络的第二输入节点系数 成正比,第 个神经网络的计算比例系数 与第 个神经网络的第二隐藏节
点系数 成正比,第 个神经网络的计算比例系数 与第 个神经网络的第二输出节点
系数 成正比,神经网络中通过输入层激活信号,在通过隐藏层进行分析提取特征,通过输出层输出结果,因此,隐藏节点的梯度参数 大于输入节点的梯度参数 ,输入节点的梯度参数 大于输出节点的梯度参数 。
[0135] S4342,根据每个神经网络的计算比例系数所对应的网络标签,将相应的计算比例系数填入至神经网络比例槽位内。
[0136] 可以理解的是,当计算出每个神经网络的计算比例系数后,则基于每个神经网络的网络标签将相应的计算比例系数填入至神经网络比例槽位内,使得计算比例系数与相应的神经网络一一对应。
[0137] 在一些实施例中,步骤S43中的(根据神经网络比例槽位中的计算比例系数对芯片的计算单元进行分配,使得每个神经网络具有相对应的计算单元)包括:
[0138] 确定所有计算单元的总数量,将每个神经网络的节点比例信息与所有的神经网络的节点比例信息之和作比得到单元比例系数,根据单元比例系数、计算单元的总数量得到每个神经网络对应的计算单元数量;
[0139]
[0140] 其中, 为第 个神经网络对应的计算单元数量, 为第 个神经网络对应的计算比例系数, 为第 个神经网络对应的计算比例系数,为 计算时神经网络的上限值, 为所有计算单元的总数量,可以理解的是,第 个神经网络对应的计算单元数量与第 个神经网络对应的计算比例系数 成正比,第 个神经网络对应的计算比例系数越大相应的第 个神经网络的复杂程度较高,所需的算力较多,第 个神经网络对应的计算单元数量 若不为整数,则通过四舍五入的方式进行整数化处理。
[0141] S5,根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表。
[0142] 其中,芯片能效优化表为每个神经网络的计算单元分配数量和每个神经网络中输入层、隐藏层和输出层中输入节点、隐藏节点和输出节点对相应计算单元再分配得到的计算单元分配表。
[0143] 可以理解的是,通过每个神经网络的计算比例系数对计算单元进行分配后,再对进行分配后的每个神经网络的计算单元按照输出层、隐藏层和输出层的复杂程度进行再次分配相应的计算单元,使得不同场景下的数据处理,来对参与运算的神经网络进行适应性的能效优化。
[0144] 在一些实施例中,步骤S5中的(根据每个神经网络所对应的计算单元的数量,将输入节点、隐藏节点以及输出节点与相应的计算单元对应设置,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表)包括S51‑S52:
[0145] S51,根据每个神经网络所对应的计算单元数量,每个神经网络所对应的第二输入节点系数、第二隐藏节点系数以及第二输出节点系数进行计算,得到输入节点、隐藏节点以及输出节点分别对应的计算单元数量,通过以下公式进行计算,
[0146]
[0147] 其中, 为第 个神经网络的输入节点所对应的计算单元数量, 为第 个神经网络的第二输入节点系数, 为第 个神经网络的计算比例系数, 为第 个神经网络对应的计算单元数量, 为第 个神经网络的隐藏节点所对应的计算单元数量, 为第个神经网络的第二隐藏节点系数, 为第 个神经网络的输出节点所对应的计算单元数量, 为第 个神经网络的第二输出节点系数,可以理解的是,第 个神经网络的输入节点所对应的计算单元数量与第 个神经网络的第二输入节点系数 成正比,第 个神经网络的隐藏节点所对应的计算单元数量 与第 个神经网络的第二隐藏节点系数 成
正比,第 个神经网络的输出节点所对应的计算单元数量 与第 个神经网络的第二输出节点系数 成正比。
[0148] S52,对每个神经网络、输入节点、隐藏节点以及输出节点与计算单元的对应关系进行统计得到每个场景下的芯片能效优化表,以使在相应场景下进行数据处理时为每个神经网络、输入节点、隐藏节点以及输出节点分配相对应数量的计算单元。
[0149] 可以理解的是,在对每个神经网络进行计算单元分配后,再针对每个神经网络的输入节点、隐藏节点以及输出节点进行相应计算单元的再分配,避免了计算单元出现重复分配的情况,较好的提升了计算效率。
[0150] 通过上述实施方式,本发明会针对不同场景下所需的神经网络不同,依据神经网络的复杂程度不同进行计算单元的针对性分配,使得每个输入节点、隐藏节点、输出节点都具有相应计算单元,相比现有技术中通过任务量大小进行计算单元分配,多任务情况下计算单元会出现重复分配,导致芯片占用率高使得出现服务器卡顿等情况。
[0151] 本发明还提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
[0152] 其中,存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD‑ROM、磁带、软盘和光数据存储设备等。
[0153] 本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在存储介质中。设备的至少一个处理器可以从存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
[0154] 在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:
Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0155] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。