System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于执行计算的方法、计算装置、介质和程序产品制造方法及图纸_技高网

用于执行计算的方法、计算装置、介质和程序产品制造方法及图纸

技术编号:40874097 阅读:12 留言:0更新日期:2024-04-08 16:42
本发明专利技术涉及一种用于执行计算的方法、计算装置、介质和程序产品。该方法包括:计算第一矩阵乘算子的计算结果中的位置不连续的两个块计算结果,所述位置不连续的两个块计算结果分别位于第一矩阵乘算子的计算结果的不同半区的对应位置;将所述位置不连续的两个块计算结果输出至连续的寄存器中,以便形成连续的两个块计算结果;以及激活运算算子按照块的粒度,从寄存器中获取所述连续的两个块计算结果进行计算、以便生成关于第一矩阵乘和激活运算的融合算子的对应块计算结果。本发明专利技术能够在有效减少中间张量的吞吐的同时,提高执行计算的效率,进而有效地提升整个算子性能。

【技术实现步骤摘要】

本专利技术的实施例总体上涉及人工智能领域,更具体地涉及一种用于执行计算的方法、计算装置、计算机可读存储介质和计算机程序产品。


技术介绍

1、传统的用于执行计算的方案主要包括两种。例如而不限于以多层感知机(multilayer perceptron,mlp)算子为例,第一种执行计算的方法例如包括:将mlp算子拆成三个独立的单算子,其中,三个独立的单算子分别是第一矩阵乘算子、激活运算算子以及第二矩阵乘算子;以及逐个调用所拆分的三个独立的单算子。第二种执行计算的方法例如包括:将第一个矩阵乘法运算例如拆成两个矩阵乘子算子;同时将激活运算拆成两个普通的逐元素算子(即,激活函数算子和乘法算子);以及将一个矩阵乘子算子和乘法算子组成一个融合算子;另一个矩阵乘子算子和激活函数算子组成另一个融合算子。

2、第一种执行计算的方法虽然具有简单的优势,但是其计算效率较低,难以进行性能提升。第二种执行计算的方法虽然一定程度上减少了中间张量的吞吐,但是存在额外的开销,以及增加了输入张量的加载交互,因而导致计算效率不高。

3、综上,传统的执行计算的方法存在的不足之处在于:难以在减少中间张量的吞吐的同时,提高执行计算的效率,进而难以有效提升算子的性能。


技术实现思路

1、本专利技术提供了一种用于执行计算的方法、计算设备、计算机可读存储介质和计算机程序产品,不仅能够在有效减少中间张量的吞吐的同时,提高执行计算的效率,而且能够有效提升整个算子性能。

2、根据本专利技术的第一方面,提供了一种用于执行计算的方法。该方法包括:计算第一矩阵乘算子的计算结果中的位置不连续的两个块计算结果,所述位置不连续的两个块计算结果分别位于第一矩阵乘算子的计算结果的不同半区的对应位置;将所述位置不连续的两个块计算结果输出至连续的寄存器中,以便形成连续的两个块计算结果;以及激活运算算子按照块的粒度,从寄存器中获取所述连续的两个块计算结果进行计算、以便生成关于第一矩阵乘和激活运算的融合算子的对应块计算结果。

3、在一些实施例中,用于执行计算的方法还包括:将寄存器文件划分成多个缓冲区,所述多个缓冲区用于第一矩阵乘算子和激活运算算子以流水线操作的方式执行并行计算,多个缓冲区中的每个缓冲区被配置有多个连续的寄存器。

4、在一些实施例中,第一矩阵乘算子和激活运算算子以流水线操作的方式执行并行计算包括:确定多个缓冲区中的当前缓冲区中的多个连续的寄存器在当前组不连续的两个块计算结果输出之后已被放满,将下一组不连续的两个块计算结果输出至下一缓冲区中的连续的寄存器中;以及在不连续的两个块计算结果被输出至下一缓冲区中的连续的寄存器的同时,激活运算算子从当前缓冲区中的寄存器中获取连续的两个块计算结果以进行激活运算。

5、在一些实施例中,用于执行计算的方法还包括:经由片上共享存储器,将所生成的关于第一矩阵乘和激活运算的融合算子的多个对应块计算结果传递给第二矩阵乘算子,以用于第二矩阵乘运算。

6、在一些实施例中,将所生成的关于第一矩阵乘和激活运算的融合算子的多个对应块计算结果传递给第二矩阵乘算子包括:

7、经由片上共享存储器,按组块粒度将所生成的关于第一矩阵乘和激活运算的融合算子的多个对应块计算结果传递给第二矩阵乘算子,以便输出关于第二矩阵乘算子的部分计算结果,所述组块的尺寸被配置为满足预定约束条件;以及利用l1缓存或l2 缓存的近存计算单元累加所输出的多个关于第二矩阵乘算子的部分计算结果,以便生成第二矩阵乘算子的输出结果。

8、在一些实施例中,预定约束条件包括以下各项:第一矩阵乘算子的第一输入矩阵的第一维度为所述组块的第一维度的整数倍或者倍数的向上取整;第一矩阵乘算子的第二输入矩阵的第二维度的一半为所述组块的第二维度的整数倍或者倍数的向上取整;以及所述组块的第一维度、第二维度与数据单元的尺寸标识的乘积小于片上共享存储器的尺寸。

9、在一些实施例中,计算第一矩阵乘算子的计算结果中的位置不连续的两个块计算结果包括:将第一矩阵乘算子的第一输入矩阵的选定行和第二输入矩阵的选定列相乘,以获得所述位置不连续的两个块计算结果中的第一块计算结果;以及将第一输入矩阵的所述选定行和第二输入矩阵的预定跨度列相乘,以获得所述位置不连续的两个块计算结果中的第二块计算结果,预定跨度列与选定列之间的跨度等于第二输入矩阵的第二维度的一半。

10、在一些实施例中,用于执行计算的方法还包括:确定第一矩阵乘算子的第一输入矩阵和第二输入矩阵中的需重复加载数据的次数相对较多的输入矩阵;在第二矩阵乘算子进行计算时,针对所确定的需重复加载数据的次数相对较多的输入矩阵进行预加载;以及在第一矩阵乘算子进行计算时,将第二矩阵乘算子的第三输入矩阵进行预加载。

11、在一些实施例中,用于执行计算的方法还包括:将第一矩阵乘算子的第二输入矩阵进行离线重排操作,以便经由离线重排操作的第二输入矩阵被配置为目标排列方式,在目标排列方式下,离线重排操作之前的第二输入矩阵的第一半区的分块与第二半区的分块间隔设置;以及针对被配置为目标排列方式的第二输入矩阵的第二维度进行多计算核的拆分,以用于第一矩阵乘算子的计算。

12、根据本专利技术的第二方面,还提供了一种计算装置。该计算装置包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使计算装置能够执行本专利技术的第一方面的方法。

13、根据本专利技术的第三方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被机器执行时执行本专利技术的第一方面的方法。

14、根据本专利技术的第四方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被机器执行时执行本专利技术的第一方面的方法。

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

本文档来自技高网...

【技术保护点】

1.一种用于执行计算的方法,其特征在于,所述方法包括:

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

3.根据权利要求2所述的方法,其特征在于,第一矩阵乘算子和激活运算算子以流水线操作的方式执行并行计算包括:

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

5.根据权利要求4所述的方法,其特征在于,将所生成的关于第一矩阵乘和激活运算的融合算子的多个对应块计算结果传递给第二矩阵乘算子包括:

6.根据权利要求5所述的方法,其特征在于,预定约束条件包括以下各项:

7.根据权利要求1所述的方法,其特征在于,计算第一矩阵乘算子的计算结果中的位置不连续的两个块计算结果包括:

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

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

10.一种计算装置,其特征在于,包括:

11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被机器执行时执行根据权利要求1-9中任一项所述的方法

12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被机器执行时执行根据权利要求1-9中任一项所述的方法。

...

【技术特征摘要】

1.一种用于执行计算的方法,其特征在于,所述方法包括:

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

3.根据权利要求2所述的方法,其特征在于,第一矩阵乘算子和激活运算算子以流水线操作的方式执行并行计算包括:

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

5.根据权利要求4所述的方法,其特征在于,将所生成的关于第一矩阵乘和激活运算的融合算子的多个对应块计算结果传递给第二矩阵乘算子包括:

6.根据权利要求5所述的方法,其特征在于,预定约束条件包括以下各项:

7.根据权利要求1所述...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京壁仞科技开发有限公司
类型:发明
国别省市:

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

1