System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及数据处理领域,特别是涉及一种注意力运算处理方法和装置。
技术介绍
1、注意力机制是神经网络模型中常用的技术,如transformer模型中,自注意力机制就是该模型的核心。这些神经网络模型往往先将输入的向量或序列转换成相应的查询矩阵、键矩阵和值矩阵,再将查询矩阵、键矩阵和值矩阵输入到注意力机制模块中,注意力机制模块通过对查询矩阵、键矩阵和值矩阵进行多次矩阵运算和指数归一化处理,得到注意力权重矩阵,从而确定向量或序列中各个元素的注意力权重。
2、在现有技术中,查询矩阵、键矩阵和值矩阵一般是存放在gpu等计算组件的全局内存里,全局内存允许计算组件的所有线程访问,线程从全局内存中读取矩阵的数据,线程再将数据传输至张量处理器或指数归一化模块进行相应的矩阵运算。而由于线程是由计算单元(compute unit)执行的,全局内存则是独立于计算单元外部的,位于执行单元内部的线程访问全局内存的速度相对较慢,这使得注意力机制的运算效率不高,而且访存开销较大。
技术实现思路
1、本公开实施例提供了一种注意力运算处理方法和装置,它能提高注意力机制的运算效率,降低访存开销。
2、根据本公开的一方面,提供了一种注意力运算处理方法,用于注意力运算处理装置,所述注意力运算处理装置包括张量处理器和计算单元,所述计算单元包括寄存器和指数化处理单元,所述注意力运算处理方法包括:将用于目标注意力运算的查询矩阵、键矩阵和值矩阵分别分成查询矩阵块、键矩阵块和值矩阵块,调度到寄存器中;通过张量
3、根据本公开的另一方面,提供一种注意力运算处理装置,包括张量处理器和计算单元,所述计算单元包括寄存器和指数化处理单元,其中,所述寄存器用于存储用于目标注意力运算的查询矩阵块、键矩阵块和值矩阵块;所述张量处理器用于从所述寄存器中读取所述查询矩阵块和所述键矩阵块,并基于所述查询矩阵块和所述键矩阵块进行矩阵乘运算,得到子乘积矩阵,并将所述子乘积矩阵写回所述寄存器;所述指数化处理单元用于对所述寄存器中的所述子乘积矩阵进行指数化处理,得到子指数矩阵,并将所述子指数矩阵写回所述寄存器;所述张量处理器还用于从所述寄存器中读取所述子指数归一化矩阵和所述值矩阵块,并基于所述子指数矩阵和所述值矩阵块进行矩阵乘运算,得到注意力运算结果子块。
4、可选地,注意力运算处理装置还包括分块单元,分块单元具体用于:将用于目标注意力运算的查询矩阵、键矩阵和值矩阵按同一划分规则分别分成查询矩阵块、键矩阵块和值矩阵块;将分成的多个查询矩阵块按第一周期依次放入所述寄存器,其中,每个第一周期包括第一数目个第二周期,第一数目为需要与一个查询矩阵块相乘的键矩阵块数目;在所述第一周期的各个第二周期,在所述寄存器中依次放入需要与放入的所述查询矩阵块相乘的各个键矩阵块,并在所述寄存器中依次放入与所述子指数矩阵对应的各个值矩阵块。
5、可选地,计算单元为多个,分块单元还用于:在每个所述第一周期,将多个所述查询矩阵块分别放入多个所述计算单元的寄存器中,其中每个所述计算单元的寄存器放入一个所述查询矩阵块,且同一所述查询矩阵块只在一个所述第一周期放入一个所述计算单元的寄存器中;在所述第一周期的各个所述第二周期,在每个所述计算单元的寄存器中依次放入各个所述键矩阵块,以及与所述键矩阵块对应的所述值矩阵块。
6、可选地,张量处理器包括矩阵乘法单元和累加缓存器,张量处理器还用于:通过矩阵乘法运算单元,在第一周期的每个第二周期,从寄存器中读取查询矩阵块和键矩阵块,并对查询矩阵块和键矩阵块进行矩阵乘运算,得到子乘积矩阵,并将子乘积写回寄存器。
7、可选地,计算单元还用于:在第一周期的第一个第二周期,对子指数矩阵的各个矩阵行求和,得到各个矩阵行的第一和,并基于各个第一和确定归一化系数矩阵,将归一化系数矩阵写入寄存器;在第一周期的各个第二周期,将对应的子指数矩阵的各个矩阵行求和,得到各个矩阵行的第一和,将各个矩阵行的第一和分别累加到归一化系数矩阵中对应的矩阵行,以更新归一化系数矩阵,其中,子指数矩阵通过将对应的子乘积矩阵的各个元素作为预设底数的指数得到。
8、可选地,张量处理器还用于:在各个第一周期,初始化累加缓存器,得到初始化后的注意力中间结果子矩阵;在第一周期的各个第二周期,将当前第二周期对应的注意力运算结果子块累加到累加缓存器中的注意力中间结果子矩阵,其中,注意力运算结果子块通过将当前第二周期对应的子指数矩阵和值矩阵块相乘得到;在将第一周期的最后一个第二周期对应的注意力运算结果子块累加到注意力中间结果子矩阵后,基于归一化系数矩阵修正注意力中间结果子矩阵,得到第一周期对应的注意力结果子矩阵;将各个第一周期对应的注意力结果子矩阵拼接,得到注意力运算结果矩阵。
9、可选地,计算单元还用于:在各个第一周期,初始化行最大值向量;在第一周期的第m个第二周期,确定对应的子乘积矩阵中各个矩阵行的元素最大值,并在元素最大值大于行最大值向量中对应矩阵行的行最大值时,基于元素最大值更新对应的行最大值,得到第m个第二周期对应的行最大值,其中,1≤m≤n,n是第一数目;指数化处理单元还用于:在第一周期的第m个第二周期,通过指数化处理单元,从寄存器中读取各个矩阵行的行最大值,基于对应的子乘积矩阵的各个元素与对应的行最大值确定子乘积矩阵的各个元素对应的第一差,并将各个第一差作为预设指数的指数,得到子乘积矩阵对应的子指数矩阵。
10、可选地,张量处理器还用于:在第m个第二周期,基于第m个第二周期对应的行最大值和第m-1个第二周期对应的行最大值,确定修正系数,基于修正系数修正累加缓存器的注意力中间结果子矩阵,并将第m个第二周期对应的注意力运算结果子块累加到修正后的注意力中间结果子矩阵;指数化处理单元还用于:在第一周期中的第m个第二周期,基于修正系数修正第m-1个第二周期对应的归一化系数矩阵,并将第m个第二周期对应的子指数矩阵的各个矩阵行的第一和累加到修正后的归一化系数矩阵中对应的矩阵行,得到第m个第二周期对应的归一化系数矩阵。
11、可选地,指数化处理单元还用于:并行执行多个线程束,其中,每个线程束通过指数化处理单元,从归一化系数矩阵中获取与第二数目个矩阵行对应的第二数目个归一化系数,并基于第二数目个归一化系数分别修正第二数目个矩阵行,得到第二数目个归一化注意力结果矩阵行,其中,每个矩阵行对应一个归一化系数;将多个线程束对应的归一化注意力结果矩阵行拼接合并,得到第一周期对应的注意力结果子矩阵。
<本文档来自技高网...【技术保护点】
1.一种注意力运算处理方法,其特征在于,用于注意力运算处理装置,所述注意力运算处理装置包括张量处理器和计算单元,所述计算单元包括寄存器和指数化处理单元,所述注意力运算处理方法包括:
2.根据权利要求1所述的注意力运算处理方法,其特征在于,所述将用于目标注意力运算的查询矩阵、键矩阵和值矩阵分别分成查询矩阵块、键矩阵块和值矩阵块,调度到所述寄存器中,包括:
3.根据权利要求2所述的注意力运算处理方法,其特征在于,所述计算单元为多个计算单元,所述将分成的多个查询矩阵块按第一周期依次放入所述寄存器,包括:
4.根据权利要求2所述的注意力运算处理方法,其特征在于,所述张量处理器包括矩阵乘法运算单元和累加缓存器;
5.根据权利要求4所述的注意力运算处理方法,其特征在于, 所述基于各个所述注意力运算结果子块,得到注意力运算结果矩阵,包括:
6.根据权利要求5所述的注意力运算处理方法,其特征在于,所述寄存器中存储有行最大值向量,所述行最大值向量中的各个元素分别作为所述子乘积矩阵中的各个矩阵行对应的行最大值,在通过所述指数化处理单元,对所
7.根据权利要求6所述的注意力运算处理方法,其特征在于,所述将当前第二周期对应的所述注意力运算结果子块累加到所述累加缓存器中的所述注意力中间结果子矩阵,包括:
8.根据权利要求5所述的注意力运算处理方法,其特征在于,所述计算单元还包括多个线程束,每个所述线程束对应于所述注意力中间结果子矩阵中的第二数目个矩阵行,所述基于所述归一化系数矩阵修正所述注意力中间结果子矩阵,包括:
9.根据权利要求2所述的注意力运算处理方法,其特征在于,所述张量处理器包括矩阵乘法运算单元和累加缓存器;
10.根据权利要求9所述的注意力运算处理方法,其特征在于,在所述通过所述指数化处理单元,对所述寄存器中的所述子乘积矩阵进行指数化处理,得到子指数矩阵之后,包括:
11.根据权利要求10所述的注意力运算处理方法,其特征在于,所述基于所述子指数矩阵和所述值矩阵块进行矩阵乘运算,生成注意力运算结果子块,包括:
12.根据权利要求10所述的注意力运算处理方法,其特征在于,在将所述级联指数矩阵和所述子指数矩阵级联并进行归一化处理,得到级联指数归一化矩阵之后,所述方法还包括:
13.根据权利要求9所述的注意力运算处理方法,其特征在于,所述基于各个所述注意力运算结果子块,得到注意力运算结果矩阵,包括:
14.根据权利要求1所述的注意力运算处理方法,其特征在于,所述计算单元还包括多个线程束,每个所述线程束对应于所述子乘积矩阵中的第二数目个矩阵行;
15.根据权利要求14所述的注意力运算处理方法,其特征在于,所述计算单元包括多个执行单元,每个所述执行单元包括一个寄存器,每个所述执行单元包括至少一个所述线程束;
16.一种注意力运算处理装置,其特征在于,包括张量处理器和计算单元,所述计算单元包括寄存器和指数化处理单元,其中,
...【技术特征摘要】
1.一种注意力运算处理方法,其特征在于,用于注意力运算处理装置,所述注意力运算处理装置包括张量处理器和计算单元,所述计算单元包括寄存器和指数化处理单元,所述注意力运算处理方法包括:
2.根据权利要求1所述的注意力运算处理方法,其特征在于,所述将用于目标注意力运算的查询矩阵、键矩阵和值矩阵分别分成查询矩阵块、键矩阵块和值矩阵块,调度到所述寄存器中,包括:
3.根据权利要求2所述的注意力运算处理方法,其特征在于,所述计算单元为多个计算单元,所述将分成的多个查询矩阵块按第一周期依次放入所述寄存器,包括:
4.根据权利要求2所述的注意力运算处理方法,其特征在于,所述张量处理器包括矩阵乘法运算单元和累加缓存器;
5.根据权利要求4所述的注意力运算处理方法,其特征在于, 所述基于各个所述注意力运算结果子块,得到注意力运算结果矩阵,包括:
6.根据权利要求5所述的注意力运算处理方法,其特征在于,所述寄存器中存储有行最大值向量,所述行最大值向量中的各个元素分别作为所述子乘积矩阵中的各个矩阵行对应的行最大值,在通过所述指数化处理单元,对所述寄存器中的所述子乘积矩阵进行指数化处理,得到子指数矩阵之前,所述方法还包括:
7.根据权利要求6所述的注意力运算处理方法,其特征在于,所述将当前第二周期对应的所述注意力运算结果子块累加到所述累加缓存器中的所述注意力中间结果子矩阵,包括:
8.根据权利要求5所述的注意力运算处理方法,其特征在于,所述计算单元还包括多个线程束,每个...
【专利技术属性】
技术研发人员:徐璐,请求不公布姓名,
申请(专利权)人:苏州亿铸智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。