用于掩码张量转换的方法、计算设备和存储介质与流程

文档序号:37231648发布日期:2024-03-05 15:43阅读:34来源:国知局
用于掩码张量转换的方法、计算设备和存储介质与流程

本发明的实施例总体涉及数据计算领域,并且更具体地涉及一种用于掩码张量转换的方法,计算设备和存储介质。


背景技术:

1、在针对transformer模型(诸如语言模型、文生图模型)进行训练的过程中,基于注意力(attention)机制,需要多次基于masked_fill函数进行数据计算。现有的基于masked_fill函数进行数据计算的方法包括:接收输入张量、掩码张量和填充值;以及基于输入张量、掩码张量和填充值,经由masked_fill函数确定输出张量。然而,在上述现有技术中,接收并加载输入张量和掩码张量、以及输出并存储输出张量在数据计算过程中的性能占比很大,而确定输出张量中的元素的值在数据计算过程中的性能占比很小,使得对执行数据计算的板卡的带宽构成比较严重的压力,从而导致数据计算的执行性能不佳。

2、综上,传统的基于masked_fill函数进行数据计算的方法对执行数据计算的板卡的带宽构成比较严重的压力,致使数据计算的执行性能不佳。


技术实现思路

1、针对上述问题,本发明提供了一种用于掩码张量转换的方法、计算设备和存储介质,使得能够对要进行数据计算的掩码张量的大小进行压缩,从而减小数据计算过程中对板卡带宽的压力,并提高数据计算的执行性能。

2、根据本发明的第一方面,提供了一种用于掩码张量转换的方法,包括:基于预定转换规则,将原始掩码张量转换成第一中间掩码张量,其中第一中间掩码张量中的数据为比特型数据;在第一维度上,对第一中间掩码张量的数据进行分组,以获取多个初始数据块;以及对多个初始数据块中的数据进行重排,以得到第二中间掩码张量,其中第二中间掩码张量包括多个重排后的数据块,其中每个重排后的数据块包括每个初始数据块中的一部分数据。

3、在一些实施例中,原始掩码张量中的数据为布尔型数据。在这些实施例中,基于预定转换规则将原始掩码张量转换成第一中间掩码张量包括:将原始掩码张量中取值为“真”的布尔型数据转换为具有第一数值的比特型数据;以及将原始掩码张量中取值为“假”的布尔型数据转换为具有第二数值的比特型数据。。

4、在一些实施例中,在第一维度上对第一中间掩码张量的数据进行分组以获取多个初始数据块包括:确定用于分组的数据长度;以及基于所确定的用于分组的数据长度,在第一维度上对第一中间掩码张量的数据进行分组,以便经分组后得到的多个初始数据块的大小相同。

5、在一些实施例中,用于分组的数据长度与所要得到的结果掩码张量中的数据的类型有关。

6、在一些实施例中,在第一维度上对第一中间掩码张量的数据进行分组以获取多个初始数据块还包括:响应于第一中间掩码张量在第一维度上的数据长度不能被用于分组的数据长度整除,在第一维度上对第一中间掩码张量的数据进行补位,以使得第一维度上经补位后的第一中间掩码张量的数据长度能被用于分组的数据长度整除。

7、在一些实施例中,对多个初始数据块中的数据进行重排以得到第二中间掩码张量包括:针对每个初始数据块,确定初始数据块在第一维度上的第一索引值和在第二维度上的第二索引值;针对初始数据块中的每个数据,确定数据在初始数据块中的第三索引值;以及至少基于初始数据块的第一索引值和第二索引值,以及数据在初始数据块中的第三索引值,确定数据在第二中间掩码张量中的位置,以便将数据搬移至相应的重排后的数据块的相应位置处。

8、在一些实施例中,确定数据在第二中间掩码张量中的位置包括:基于数据在初始数据块中的第三索引值以及初始数据块的第二索引值,确定与数据对应的重排后的数据块;以及基于初始数据块的第一索引值和第二索引值,确定数据在所确定的重排后的数据块的位置。

9、在一些实施例中,用于掩码张量转换的方法还包括:对第二中间掩码张量进行压缩,以使得第二中间掩码张量中的数据转换成整数型数据或浮点型数据,以便得到结果掩码张量。

10、根据本发明的第二方面,提供了一种用于数据计算的方法,包括:接收输入参数,输入参数包括:输入张量、原始掩码张量和填充值;根据本发明的第一方面的方法对原始掩码张量进行转换,以得到结果掩码张量;以及基于输入张量、结果掩码张量和填充值,确定输出张量。

11、根据本发明的第三方面,提供了一种计算设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本发明的第一方面的方法。

12、根据本发明的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中计算机指令用于使计算机执行本发明的第一方面的方法。

13、根据本发明的第五方面,提供了一种计算机程序产品,其中计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行本发明的第一方面的方法中的步骤。

14、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。



技术特征:

1.一种用于掩码张量转换的方法,其特征在于,包括:

2. 根据权利要求1所述的方法,其特征在于,所述原始掩码张量中的数据为布尔型数据,基于所述预定转换规则将所述原始掩码张量转换成所述第一中间掩码张量包括:

3. 根据权利要求1所述的方法,其特征在于,在所述第一维度上对所述第一中间掩码张量的数据进行分组以获取多个初始数据块包括:

4.根据权利要求3所述的方法,其特征在于,所述用于分组的数据长度与所要得到的结果掩码张量中的数据的类型有关。

5.根据权利要求3所述的方法,其特征在于,在所述第一维度上对所述第一中间掩码张量的数据进行分组以获取多个初始数据块还包括:

6.根据权利要求1所述的方法,其特征在于,对所述多个初始数据块中的数据进行重排以得到所述第二中间掩码张量包括:

7. 根据权利要求6所述的方法,其特征在于,确定所述数据在所述第二中间掩码张量中的位置包括:

8.根据权利要求1所述的方法,其特征在于,还包括:

9.一种用于数据计算的方法,其特征在于,包括:

10. 一种计算设备,其特征在于,包括:

11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1-9中任一项所述的方法。

12.一种计算机程序产品,其特征在于,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-9中任一项所述的方法中的步骤。


技术总结
本发明的实施例涉及一种用于掩码张量转换的方法、计算设备和存储介质。该方法包括:基于预定转换规则,将原始掩码张量转换成第一中间掩码张量,其中第一中间掩码张量中的数据为比特型数据;在第一维度上,对第一中间掩码张量的数据进行分组,以获取多个初始数据块;以及对多个初始数据块中的数据进行重排,以得到第二中间掩码张量,其中第二中间掩码张量包括多个重排后的数据块,其中每个重排后的数据块包括每个初始数据块中的一部分数据。本发明的实施例能够对原始掩码张量的大小进行压缩,减小数据计算过程中对板卡带宽的压力,并且避免数据堵塞在数据加载阶段,极大提高板卡上数据计算的执行性能。

技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名
受保护的技术使用者:北京壁仞科技开发有限公司
技术研发日:
技术公布日:2024/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1