用于神经网络加速器的数据处理方法、芯片及电子设备技术

技术编号:37665667 阅读:14 留言:0更新日期:2023-05-26 04:23
本发明专利技术涉及计算芯片领域,公开了一种用于神经网络加速器的数据处理方法、芯片及电子设备,其中,神经网络加速器包括前处理模块、存内计算矩阵、向量处理模块、共享存储器和芯片控制器;前处理模块从共享存储器获取输入特征图数据,将输入特征图数据处理为矩阵数据;存内计算矩阵获取权重数据,根据矩阵数据和权重数据进行卷积计算得到计算结果;向量处理模块对计算结果进行网络层计算,得到输出特征图数据,将输出特征图数据写入共享存储器;芯片控制器控制共享存储器与外部存储器之间的数据交互。本发明专利技术提供的神经网络加速器可以减少数据搬运,降低神经网络加速器的功耗,进而提高神经网络加速器对应的芯片的能效比和面效比。神经网络加速器对应的芯片的能效比和面效比。神经网络加速器对应的芯片的能效比和面效比。

【技术实现步骤摘要】
用于神经网络加速器的数据处理方法、芯片及电子设备


[0001]本专利技术涉及芯片领域,尤其涉及一种用于神经网络加速器的数据处理方法、芯片及电子设备。

技术介绍

[0002]人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。
[0003]随着人工智能技术的发展,诸如人工神经网络和卷积神经网络处理的数据量成倍增长,对包含神经网络加速器(NPU,也称神经网络处理器)的芯片的性能需求越来越高。
[0004]现有技术在相关芯片中,为了实现对至少两种特征图(feature map)的拼接,通常设置有拼接层专用电路模块。然而,拼接层专用电路模块一方面会占用芯片的有限空间,另一方面则增加了拼接层专用电路模块与其他模块之间的数据搬运,产生较高的功耗。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种用于神经网络加速器的数据处理方法、芯片及电子设备,以减少数据搬运,降低神经网络加速器的功耗且减少芯片的面积。
[0006]一种用于神经网络加速器芯片的数据处理方法,所述神经网络加速器包括:依次电连接的前处理模块、存内计算矩阵和向量处理模块;以及分别与所述前处理模块、所述存内计算矩阵和所述向量处理模块电连接的共享存储器;与所述共享存储器电连接的芯片控制器;所述数据处理方法包括:通过所述前处理模块从所述共享存储器获取输入特征图数据及将所述输入特征图数据处理为存内计算矩阵格式的矩阵数据,将所述矩阵数据输入所述存内计算矩阵;其中,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以跳地址方式存储在所述共享存储器上,则所述前处理模块以按地址顺序读取的方式从所述共享存储器获取所述至少两个输入特征图;或,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以连续存储方式存储在所述共享存储器上,则所述前处理模块以跳地址读取的方式从所述共享存储器获取所述至少两个输入特征图;通过所述存内计算矩阵获取权重数据,通过所述存内计算矩阵根据所述矩阵数据和所述权重数据进行卷积计算得到计算结果,将所述计算结果输入所述向量处理模块;通过所述向量处理模块处理所述计算结果,得到输出特征图数据,将得到的所述输出特征图数据写入所述共享存储器和/或所述外部存储器;其中,若所述输出特征图数据
为中间计算结果,则所述输出特征图数据用作下一层级计算结果的输入数据;在所述前处理模块获取所述输入特征图数据之前,和/或,在所述向量处理模块处理所述计算结果,得到输出特征图数据之后,通过所述芯片控制器控制所述共享存储器与所述外部存储器之间的数据交互,其中,进行交互的数据包括所述输入特征图数据和/或所述输出特征图数据。
[0007]一种芯片,包括:依次电连接的前处理模块、存内计算矩阵和向量处理模块;以及,分别与所述前处理模块、所述存内计算矩阵和所述向量处理模块电连接的共享存储器;与所述共享存储器电连接的芯片控制器;其中,所述前处理模块,用于从所述共享存储器获取输入特征图数据,将所述输入特征图数据处理为存内计算矩阵格式的矩阵数据,将所述矩阵数据输入所述存内计算矩阵;其中,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以跳地址方式存储在所述共享存储器上,则所述前处理模块以按地址顺序读取的方式从所述共享存储器获取所述至少两个输入特征图;或,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以连续存储方式存储在所述共享存储器上,则所述前处理模块以跳地址读取的方式从所述共享存储器获取所述至少两个输入特征图;所述存内计算矩阵,用于获取权重数据,根据所述矩阵数据和所述权重数据进行卷积计算得到计算结果,将所述计算结果输入所述向量处理模块;所述向量处理模块,用于对所述计算结果进行处理,得到输出特征图数据,将得到的所述输出特征图数据写入所述共享存储器和/或外部存储器,其中,若所述输出特征图数据为中间计算结果,则所述输出特征图数据用作下一层级计算结果的输入数据;所述芯片控制器,用于在所述前处理模块获取所述输入特征图数据之前,和/或,在所述向量处理模块处理所述计算结果,得到输出特征图数据之后,控制所述共享存储器与所述外部存储器之间的数据交互,其中,进行交互的数据包括所述输入特征图数据和/或所述输出特征图数据。
[0008]一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述用于神经网络加速器的数据处理方法。
[0009]上述用于神经网络加速器的数据处理方法、芯片及电子设备,通过所述前处理模块从所述共享存储器获取输入特征图数据,将所述输入特征图数据处理为存内计算矩阵格式的矩阵数据,将所述矩阵数据输入所述存内计算矩阵;其中,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以跳地址方式存储在所述共享存储器上,则所述前处理模块以按地址顺序读取的方式从所述共享存储器获取所述至少两个输入特征图;或,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以连续存储方式存储在所述共享存储器上,则所述前处理模块以跳地址读取的方式从所述共享存储器获取所述至少两个输入特征图,以提高前处理模块的读取效率和读取灵活度,减少数据的搬运次数。通过所述存内计算矩阵获取权重数据,通过所述存内计算矩阵根据所述矩阵数据和所述权重数据进行卷积计算得到计算结果,将所述计算结果输入所述向量
处理模块,以减少数据的搬运次数,提高数据处理效率。通过所述向量处理模块处理所述计算结果,得到输出特征图数据,将得到的所述输出特征图数据写入所述共享存储器和/或所述外部存储器;其中,若所述输出特征图数据为中间计算结果,则所述输出特征图数据用作下一层级计算结果的输入数据,以实现输出特征图数据的输出。在所述前处理模块获取所述输入特征图数据之前,和/或,在所述通过所述向量处理模块处理所述计算结果,得到输出特征图数据之后,通过所述芯片控制器控制所述共享存储器与所述外部存储器之间的数据交互,其中,进行交互的数据包括所述输入特征图数据和/或所述输出特征图数据,以确保共享存储器中输入特征图数据和/或输出特征图数据的可用性。本专利技术实现拼接功能时不用设置拼接层专用电路模块,减少了拼接层专用电路模块的面积占用和功耗占用,可以减少数据搬运,降低神经网络加速器的功耗,进而提高神经网络加速器对应的芯片的能效比和面效比。
附图说明
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于神经网络加速器的数据处理方法,其特征在于,所述神经网络加速器包括:依次电连接的前处理模块、存内计算矩阵和向量处理模块;以及分别与所述前处理模块、所述存内计算矩阵和所述向量处理模块电连接的共享存储器;与所述共享存储器电连接的芯片控制器;所述数据处理方法包括:通过所述前处理模块从所述共享存储器获取输入特征图数据,将所述输入特征图数据处理为存内计算矩阵格式的矩阵数据,将所述矩阵数据输入所述存内计算矩阵;其中,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以跳地址方式存储在所述共享存储器上,则所述前处理模块以按地址顺序读取的方式从所述共享存储器获取所述至少两个输入特征图;或,若所述输入特征图数据包括至少两个输入特征图,且所述至少两个输入特征图以连续存储方式存储在所述共享存储器上,则所述前处理模块以跳地址读取的方式从所述共享存储器获取所述至少两个输入特征图;通过所述存内计算矩阵获取权重数据,通过所述存内计算矩阵根据所述矩阵数据和所述权重数据进行卷积计算得到计算结果,将所述计算结果输入所述向量处理模块;通过所述向量处理模块对所述计算结果进行向量处理,得到输出特征图数据,将得到的所述输出特征图数据写入所述共享存储器和/或外部存储器;其中,若所述输出特征图数据为中间计算结果,则所述输出特征图数据用作下一层级计算结果的输入数据;在所述前处理模块获取所述输入特征图数据之前,和/或,在所述通过所述向量处理模块处理所述计算结果,得到输出特征图数据之后,通过所述芯片控制器控制所述共享存储器与所述外部存储器之间的数据交互,其中,进行交互的数据包括所述输入特征图数据和/或所述输出特征图数据。2.如权利要求1所述的用于神经网络加速器的数据处理方法,其特征在于,所述至少两个输入特征图包括第一输入特征图和第二输入特征图;所述第一输入特征图包括多个第一单元数据块,所述第二输入特征图包括多个第二单元数据块;所述至少两个输入特征图以跳地址方式存储在所述共享存储器,包括:相邻的两个所述第一单元数据块的存储地址不连续;相邻的两个所述第一单元数据块之间的中间存储地址,用于存储一个所述第二单元数据块。3.如权利要求1所述的用于神经网络加速器的数据处理方法,其特征在于,所述至少两个输入特征图包括第一输入特征图和第二输入特征图;所述第一输入特征图包括多个第一单元数据块,所述第二输入特征图包括多个第二单元数据块;所述前处理模块以跳地址读取的方式从所述共享存储器获取所述至少两个输入特征图,包括:所述前处理模块先从所述第一输入特征图的存储地址读取第一个第一单元数据块,从所述第二输入特征图的存储地址读取第一个第二单元数据块;接着,从所述第一输入特征图的存储地址读取第二个第一单元数据块,从所述第二输入特征图的存储地址读取第二个第二单元数据块;依此类推,直至读取完所述第一输入特征图和所述第二输入特征图。4.如权利要求2所述的用于神经网络加速器的数据处理方法,其特征在于,所述第一输
入特征图和所述第二输入特征图用于进行拼接操作;所述通过所述前处理模块从所述共享存储器获取输入特征图数据之前,包括:在进行拼接操作时,若待处理的所述第一输入特征图和待处理的所述第二输入特征图的数量之和小于所述共享存储器的容量,按跳地址规则将所述第一输入特征图和所述第二输入特征图写入所述共享存储器。5.如权利要求2或3所述的用于神经网络加速器的数据处理方法,其特征在于,所述第一输入特征图和所述第二输入特征图用于进行拼接操作;所述通过所述芯片控制器控制所述共享存储器与所述外部存储器之间的数据交互,包括:在进行拼接操作时,若待处理的所述第一输入特征图和待处理的所述第二输入特征图的数量之和大于所述共享存储器的容量,分批次从所述外部存储器获取所述第一单元数据块和所述第二单元数据块,并加载到所述共享存储器中。6.如权利要求1所述的用于神经网络加速器的数据处理方法,其特征在于,生成的所述输出特征图数据包括第一输出特征图和第二输出特征图;所述第一输出特征图和所述第二输出特征图用于进行拼接操作;所述将得到的所述输出特征图数据写入所述共享存储器和/或所述外部存储器,包括:若得到的所述第一输出特征图和得到的所述第二输出特征图的数量之和小于所述共享存储器的容量,按跳地址规则将所述第一输出特征图和所述第二输出特征图写入所述共享存储器。7.如权利要求1所述的用于神经网络加速器的数据处理方法,其特征在于,生成的所述输出特征图数据包括第一输出特征图和第二输出特征图;所述第一输出特征图和所述第二输出特征图用于进行拼接操作;所述通过所述芯片控制器控制所述共享存储器与外部存储器之间的数据交互,包括:生成所述第一输出特征图;若生成的所述第一输出特征图大于所述共享存储器的容量,将生成的所述第一输出特征图的至少一部分连续写入所述共享存储器;若所述共享存储器中的所述第一输出特征图达到第一预设数量阈值,通过所述芯...

【专利技术属性】
技术研发人员:李兆钫姜宇奇陈乔乔
申请(专利权)人:深圳市九天睿芯科技有限公司
类型:发明
国别省市:

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

1