一种基于隐式GEMM卷积的数据加载方法、装置、设备及介质制造方法及图纸

技术编号:37549347 阅读:19 留言:0更新日期:2023-05-12 16:27
本发明专利技术公开了一种基于隐式GEMM卷积的数据加载方法、装置、设备及介质。包括:接收用户输入的隐式GEMM卷积计算模式,并通过编译器生成与计算模式匹配的指令序列;当确定计算模式为第一模式时,根据指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中;将块数据按照指定规则在目标寄存器中进行拼接获取拼接数据;根据块数据和拼接数据构成指定分块。从全局内存中分次读取指定分块的块数据加载到匹配寄存器中,基于所加载的块数据进行拼接获取拼接数据,基于所加载的块数据和拼接数据构成指定分块,通过分次读取再拼接的方式显著降低寄存器的数据加载量,减轻寄存器的带宽压力,加快矩阵乘法的计算。的计算。的计算。

【技术实现步骤摘要】
一种基于隐式GEMM卷积的数据加载方法、装置、设备及介质


[0001]本专利技术涉及人工智能芯片技术,尤其涉及一种基于隐式GEMM卷积的数据加载方法、装置、设备及介质。

技术介绍

[0002]卷积神经网络中的卷积算子属于计算密集型,它的运算量占据整个神经网络计算量的绝大部分。因此卷积计算优化成为了一项非常重要也非常有意义的工作。
[0003]传统的隐式GEMM卷积计算在进行数据加载时,需要额外的空间保存预计算的索引值,以便将张量数据转换为矩阵形式加载至功共享内存中,但是这种方式并没有减少共享内存至寄存器的数据传输量,从而导致内存带宽压力大,降低了整体执行效率。

技术实现思路

[0004]本专利技术提供一种基于隐式GEMM卷积的数据加载方法、装置、设备及介质,以实现高效的数据加载。
[0005]第一方面,本专利技术提供了一种基于隐式GEMM卷积的数据加载方法,包括:接收用户输入的隐式GEMM卷积计算模式,并通过编译器生成与所述计算模式匹配的指令序列,其中,所述计算模式包括第一模式或第二模式;
[0006]当确定所述计算模式为第一模式时,根据所述指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中;
[0007]将所述块数据按照指定规则在目标寄存器中进行拼接获取拼接数据;
[0008]根据所述块数据和所述拼接数据构成所述指定分块。
[0009]第二方面,本专利技术提供了一种基于隐式GEMM卷积的数据加载转置,包括:指令序列生成模块,用于接收用户输入的隐式GEMM卷积计算模式,并通过编译器生成与所述计算模式匹配的指令序列,其中,所述计算模式包括第一模式或第二模式;
[0010]数据加载模块,用于当确定所述计算模式为第一模式时,根据所述指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中;
[0011]拼接模块,用于将所述块数据按照指定规则在目标寄存器中进行拼接获取拼接数据;
[0012]指定分块获取模块,用于根据所述块数据和所述拼接数据构成所述指定分块。
[0013]第三方面,本专利技术提供了计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法。
[0014]第四方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
[0015]通过从全局内存中分次读取指定分块的块数据加载到匹配寄存器中,基于所加载的块数据进行拼接获取拼接数据,并基于所加载的块数据和拼接数据构成指定分块,通过分次读取再拼接的方式可以显著降低寄存器的数据加载量,从而减轻寄存器的带宽压力,
加快矩阵乘法计算。
附图说明
[0016]图1是本专利技术实施例一提供的一种基于隐式GEMM卷积的数据加载方法的流程图;
[0017]图2是本专利技术实施例一提供的进行加载的全部寄存器的示意图;
[0018]图3是本专利技术实施例一提供的第一模式下的数据拼接示意图;
[0019]图4是本专利技术实施例二提供的一种基于隐式GEMM卷积的数据加载方法的流程图;
[0020]图5是本专利技术实施例二提供的第一分块和第二分块的水平方向数据复用示意图;
[0021]图6是本专利技术实施例二提供的第一分块和第二分块的竖直方向数据复用示意图;
[0022]图7是本专利技术实施例三提供的一种基于隐式GEMM卷积的数据加载装置的结构示意图;
[0023]图8是本专利技术实施例四提供的一种计算机设备的结构示意图。
具体实施方式
[0024]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。
[0025]实施例一
[0026]图1为本专利技术实施例一提供的一种基于隐式GEMM卷积的数据加载方法的流程图,本实施例可适用于卷积计算时高效的数据加载的情况,该方法可以由基于隐式GEMM卷积的数据加载装置来执行,该装置可以由软件和/或硬件的方式实现,方法包括:
[0027]步骤S101,接收用户输入的隐式GEMM卷积计算模式,并通过编译器生成与计算模式匹配的指令序列。
[0028]具体的说,计算模式包括第一模式或第二模式,而第一模式具体可是axe模式,第二模式具体可以是spear模式,并且spear模式所对应的卷积输出通道为32的倍数,axe模式所对应的卷积输出通道不是32的倍数。因此当用户根据特征图和卷积核确定出卷积输出通道后,可以根据卷积输出通道确定所对应的计算模式,并将所确定的计算模式进行输入。因此当用户输入的是axe模式时,编译器可以根据用户所输入的计算模式生成与axe模式匹配的指令序列。其中,指令序列中包括用于加载特征图的特征加载指令,例如LDM指令,当然本实施方式中仅是举例说明,而并不对指令序列中所包含的指令数量和指令类型进行限定。并且本实施方式中通过LDM指令可以直接从全局内存中获取分块,而无需对特征图进行展开的操作,从而减少了大量的计算量,并且避免了共享内存的使用。本实施方式中会将展开后的特征图划分为32*32的分块,因此在读取每个分块时,具体是按照LDM指令从全局内存中分次读取特征图中指定分块的块数据,并将各块数据按照加载列表加载到匹配寄存器中。
[0029]步骤S102,当确定计算模式为第一模式时,根据指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中。
[0030]可选的,根据指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中,包括:将指令序列中的特征加载指令发送给GPU的纹理单元
加载模块;通过纹理单元加载模块按照特征加载指令从全局内存中分次读取特征图中指定分块的块数据;将各块数据按照加载列表加载到匹配寄存器中,其中,加载列表中包含各块数据与所加载的寄存器的对应关系。
[0031]具体的说,在进行常规的GEMM卷积计算的过程中,当特征图和卷积核中每个分块的大小都为32*32时,在使用im2col的方式展开的情况下会占用大量内存,并且每个分块会存在的大量的重复数据。而在本申请中所采用的隐式GEMM不会将特征图进行上述的展开操作,而是已知各分块和原始特征数据,以及各分块和原始卷积核的映射关系,并通过指令将所需要的块直接加载到寄存器中。
[0032]其中,当在第一模式下进行矩阵运算时,即axe模式下的矩阵运算,在C=B*A的运算过程中,A是特征图,B是卷积核,C是矩阵相乘的结果,A的大小为(H*W) * (R*S*Cin)。axe模式一般适用于卷积输出通道非32倍数的情况,此时对应的GEMM算法卷积核的数据广播率高于特征图。
[0033]在一个具体实现中,如图2所示为进行加载的全部寄存器的示意图,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于隐式GEMM卷积的数据加载方法,其特征在于,包括:接收用户输入的隐式GEMM卷积计算模式,并通过编译器生成与所述计算模式匹配的指令序列,其中,所述计算模式包括第一模式或第二模式;当确定所述计算模式为第一模式时,根据所述指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中;将所述块数据按照指定规则在目标寄存器中进行拼接获取拼接数据;根据所述块数据和所述拼接数据构成所述指定分块。2.根据权利要求1所述的方法,其特征在于,所述第一模式所对应的卷积输出通道不是32的倍数,所述根据所述指令序列从全局内存中分次读取特征图中指定分块的块数据,并将各块数据加载到匹配寄存器中,包括:将所述指令序列中的特征加载指令发送给GPU的纹理单元加载模块;通过所述纹理单元加载模块按照所述特征加载指令从所述全局内存中分次读取特征图中指定分块的块数据;将各所述块数据按照加载列表加载到所述匹配寄存器中,其中,所述加载列表中包含各块数据与所加载的寄存器的对应关系。3.根据权利要求1所述的方法,其特征在于,所述将所述块数据按照指定规则在目标寄存器中进行拼接获取拼接数据,包括:获取特征图中所述指定分块进行完全加载所需的全部寄存器;将所述全部寄存器中删除所述匹配寄存器后的剩余寄存器作为所述目标寄存器;从各所述块数据中确定出目标数据,将各所述目标数据按照指定规则在所述目标寄存器中进行拼接获取所述拼接数据,其中,所述指定规则包括按照指定顺序或者按照指定类型。4.根据权利要求3所述的方法,其特征在于,所述从各所述块数据中确定出目标数据,包括:确定各匹配寄存器与所述目标寄存器的共享数据;将所述匹配寄存器中所包含的共享数据作为所述目标数据。5.根据权利要求1所述的方法,其特征在于,所述根据所述块数据和所述拼接数据构成所述指定分块之后,还包括:判断在所述匹配寄存器和所述目标寄存器中是否涵盖了所述指定分块的全部数据,若是,则...

【专利技术属性】
技术研发人员:商秋阙恒王斐戴一飞
申请(专利权)人:砺算科技上海有限公司
类型:发明
国别省市:

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

1