一种基于多张量核心处理器的卷积计算数据重用方法技术

技术编号:37404929 阅读:16 留言:0更新日期:2023-04-30 09:31
本发明专利技术的一种基于多张量核心处理器的卷积计算数据重用方法,控制核心通过DMA将多个不同的输入特征图分别分配给多个张量核心的片上高速缓存SPM;控制核心通过DMA将卷积核广播到前述多个张量核心的片上高速缓存SPM;前述多个张量核心依据各自的片上高速缓存SPM的输入特征图、卷积核进行计算;前述多个张量核心完成计算后,将计算结果写回内存,之后广播更新卷积核重复步骤s2,直到将所有卷积核广播一遍,得到不同输出特征图的最终结果,写回内存。通过显著降低卷积计算在多张量核心处理器上的内存访存需求,充分发挥众核计算能力,提升多张量核心处理器的计算性能。升多张量核心处理器的计算性能。升多张量核心处理器的计算性能。

【技术实现步骤摘要】
一种基于多张量核心处理器的卷积计算数据重用方法


[0001]本专利技术涉及一种

技术介绍

[0002]深度神经网络中的绝大部分计算为卷积计算,卷积神经网络的训练和推理过程中,卷积操作占据了绝大部份的计算量,因此神经网络硬件加速器通常会设计专门的计算部件以实现卷积运算的加速。卷积加速部件一般采用的张量处理器(Tensor Processing Unit,TPU),可以高效地集成大量乘法部件,以实现很高的芯片面积利用率和芯片效能比。
[0003]对于计算密集型的函数,比如深度学习中的卷积,如何及时地给强大的张量计算核心提供足够多的数据,是当前需要解决的问题。
[0004]深度学习中的卷积算子如图1所示:
[0005]上述卷积运算也可以描述为以下的7层循环:
[0006]for n in N://第6层:输入特征图数量
[0007]for m in M://第5层:输出通道
[0008]for h in E://第4层:输出特征图高度
[0009]for w in F://第3层:输出特征图宽度
[0010]for r in R://第2层:卷积核高度
[0011]for s in S://第1层:卷积核宽度
[0012]for c in C://第0层:输入通道
[0013]f_out[n][e][f][m]+=ker[m][r][s][c]*f_in[n][e+r][f+s][c]//加法在R、S、C上累加,合并成1个数
[0014]其中f_in代表输入特征图数据,ker代码卷积核数据,f_out代表输出特征图数据。
[0015]这7层循环的顺序在数学上是可以互换的。
[0016]上述示例,将7层循环按顺序遍历完成即可得到卷积计算的最终结果。另外一种实现方式,就是将该7层循环进行数据格式转换,变成通用的矩阵乘计算,从而达到快速计算的目的。
[0017]不论是7重循环遍历,还是转变成矩阵乘运算,均存在着较高的数据重复访存,会显著增加访存的压力,降低张量核心获取数据的速度,从而影响最终的运算速度。

技术实现思路

[0018]本专利技术的目的是提供一种基于多张量核心处理器的卷积计算数据重用方法,通过显著降低卷积计算在多张量核心处理器上的内存访存需求,充分发挥众核计算能力,提升多张量核心处理器的计算性能。
[0019]本专利技术是基于多张量核心处理器的卷积计算数据重用方法,其中:
[0020]所述多张量核心处理器包括控制核心、多个张量核心阵列;
[0021]控制核心用于程序的初始化、I/O、通信以及对多个张量核心阵列分配任务;控制
核心对多个张量核心阵列分配任务是通过DMA(Direct Memory Access直接存储器访问)将需要的数据(输入特征图和卷积核)读取到每个张量核心的片上高速缓存SPM;
[0022]张量核心阵列包括多个张量核心,可以通过并行加速卷积整体计算过程,每个张量核心设有片上高速缓存SPM,可以单独完成复杂的卷积计算;
[0023]所述的卷积计算数据重用方法,包括:
[0024]s1、控制核心通过DMA将多个不同的输入特征图分别分配给多个张量核心的片上高速缓存SPM;
[0025]s2、控制核心通过DMA将卷积核广播到前述多个张量核心的片上高速缓存SPM;
[0026]s3、前述多个张量核心依据各自的片上高速缓存SPM的输入特征图、卷积核进行计算;
[0027]s4、前述多个张量核心完成计算后,将计算结果写回内存,之后广播更新卷积核重复步骤s2,直到将所有卷积核广播一遍,得到不同输出特征图的最终结果,写回内存。
[0028]于一实施例中,所述s2中,控制核心先对张量核心的片上高速缓存SPM是否可以存储卷积核进行判断,如果卷积核无法放置于一个张量核心的SPM,则对卷积核进行拆分,控制核心通过DMA将拆分后的卷积核广播到前述多个张量核心的片上高速缓存SPM。
[0029]如果一个输入特征图或者卷积核无法放置在一个张量核心的SPM,可以将一个输入特征图或者卷积核分布在不同张量核心的SPM,通过片上通信获取其他张量核心的局部存储数据,同样可以减少对内存的访问。
[0030]于一实施例中,所述s1中,控制核心先将输入特征图分成多个组,每组包括多个输入特征图;控制核心按输入特征图组的顺序,通过DMA将一组的多个不同的输入特征图分别分配给多个张量核心的片上高速缓存SPM;
[0031]所述s4中,所有卷积核广播一遍后,重复步骤s1,控制核心通过DMA将下一组的多个不同的输入特征图分别分配给多个张量核心的片上高速缓存SPM,直到将所有输入特征图组分配完,得到不同输出特征图的最终结果,再写回内存。
[0032]如图1所示的卷积算子,根据计算公式,每张输入特征图都需要跟所有的卷积核进行卷积操作,最终得到输出特征图。
[0033]通常输入特征图的数据量要远远大于卷积核,卷积核在局部存储中是可以不断重复使用的,通过广播卷积核数据可以明显减少访存的压力。
[0034]多张量核心处理器具有超强的计算能力和多级存储层次以及高效的片内通信方式,片上高速缓存SPM的访问速度快,延迟低,为实现高效的数据重用提供可能。通过DMA,将输入特征图和卷积核数据布局到片上高速缓存能达到最佳加速效果。
[0035]本专利技术分析了卷积核、输入特征图的读写数量及特性,将数据合理的分布到多个张量核心的SPM,使得大量数据能够复用,从而减少重复访存的数量,增加运算速度。
[0036]本专利技术的方法,将不同的输入特征图分布在不同张量核心的SPM,相同的卷积核逐轮广播到不同张量核心的SPM,完成不同的输出特征图的计算后,才输出到内存中。减少了输入特征图的重复访问,再加上将数据量较小的卷积核进行广播,可以极大地缓解访存的压力,加速张量核心获取数据的速度,从而减少总的运算时间。
附图说明
[0037]图1为深度学习中的卷积算子
[0038]图2为本专利技术的卷积计算数据重用方法一示例的结构图
[0039]图3为本专利技术的卷积计算数据重用方法一具体计算过程示例图
[0040]图4为本专利技术的卷积计算数据重用方法另一示例的结构图
[0041]图5为本专利技术的卷积计算数据重用方法一实施例的流程图
具体实施方式
[0042]为了清楚描述本专利技术的一种基于多张量核心处理器的卷积计算数据重用方法,现结合附图进一步说明。
[0043]如图2所示,基于多张量核心处理器的卷积计算数据重用方法,其中:多张量核心处理器包括1个用于程序的初始化、I/O、通信以及对多个张量核心阵列分配任务的控制核心,多个张量核心阵列包括多个张量核心;控制核心通过DMA将输入特征图及卷积核,布局到每个张量核心的片上高速缓存SPM;每个张量核心设有片上高速缓存SPM,可以单独完成复杂的卷积计算。
[0044]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多张量核心处理器的卷积计算数据重用方法,所述多张量核心处理器包括控制核心、多个张量核心阵列;控制核心用于程序的初始化、I/O、通信以及对多个张量核心阵列分配任务;控制核心对多个张量核心阵列分配任务是通过DMA将加速核心段的关键数据布局到每个张量核心的片上高速缓存SPM;张量核心阵列包括多个张量核心,用于程序热点区域的并行加速处理,每个张量核心设有片上高速缓存SPM,可以单独完成复杂的卷积计算;其特征在于,所述的卷积计算数据重用方法,包括:s1、控制核心通过DMA将多个不同的输入特征图分别分配给多个张量核心的片上高速缓存SPM;s2、控制核心通过DMA将卷积核广播到前述多个张量核心的片上高速缓存SPM;s3、前述多个张量核心依据各自的片上高速缓存SPM的输入特征图、卷积核进行计算;s4、前述多个张量核心完成计算后,将计算结果写回内存,之后广播更新卷积核重复步骤s2,直到将所有卷积核广播一遍,得到不同...

【专利技术属性】
技术研发人员:高伟叶楠王洪磊杨晋喆
申请(专利权)人:太初无锡电子科技有限公司
类型:发明
国别省市:

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

1