System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机技术、深度学习、异构加速,更具体地,涉及一种面向国产异构处理器的多头注意力机制算子的优化方法和系统。
技术介绍
1、近年来,基于transformer的大模型快速发展,模型参数不断增加,导致模型对训练和推理的性能要求更为苛刻。多头注意力机制算子是transformer模型的核心组件之一,它通过并行计算多个注意力头(attention head)来捕捉输入序列中的不同特征;在处理序列数据时,多头注意力机制算子具有显著的优势,它能够动态地关注输入序列中不同位置的信息,从而捕捉长距离依赖关系。并且多头注意力机制算子执行时间往往占据模型执行总时间的70%以上,因此,充分利用硬件运算资源,对多头注意力机制算子进行优化加速是模型训练和推理性能提升的关键。
2、异构处理器是一种集成多种不同类型处理核心的计算设备,旨在通过协同工作来优化特定任务的性能。目前,面向异构处理器的多头注意力机制算子运算的优化方法已经广泛用于提升transformer模型的训练和推理性能,该优化方法是面向cpu(中央处理器central processing unit,简称cpu)+gpu(图形处理器graphics processing unit,简称gpu)异构处理器体系,其在实现层面的优化策略主要在并行化(多头并行、矩阵乘法并行)、内存优化(内存访问模式优化、数据重用)、算法优化(softmax优化、量化)、硬件加速(tensor cores、专用处理器)四个方面。
3、然而,现有面向异构处理器的多头注意力机制算子的优化
4、第一、该优化方法仅仅适用于cpu+gpu异构处理器,而完全无法适用于cpu+dsp异构处理器。
5、第二、由于该优化方法的批处理矩阵乘和softmax过程之间未使用算子融合技术,导致不同算子间存在大量昂贵的访存开销。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本专利技术提供了一种面向国产异构处理器的多头注意力机制算子的优化方法和系统,其目的在于,解决现有面向异构处理器的多头注意力机制算子的优化方法仅仅适用于cpu+gpu异构处理器,而完全无法适用于cpu+dsp异构处理器的技术问题,以及由于该优化方法的批处理矩阵乘和softmax过程之间未使用算子融合技术,导致不同算子间存在大量昂贵的访存开销的技术问题。
2、为实现上述目的,按照本专利技术的一个方面,提供了一种面向国产异构处理器的多头注意力机制算子的优化方法,包括以下步骤:
3、(1)cpu获取多头注意力机制算子的计算参数,根据多头注意力机制算子的计算参数分配dsp存储空间,初始化dsp执行线程以获取dsp执行线程的线程号,根据dsp执行线程的线程号将多头注意力机制算子的计算参数输入dsp线程执行函数并运行,以启动dsp中的所有计算核心。
4、(2)dsp中的每个计算核心根据多头注意力机制算子的计算参数获取dsp中所有计算核心的总计算任务数,并根据得到的总计算任务数和dsp中计算核心的总数获取其自身待执行的计算任务。
5、(3)dsp中的每个计算核心设置计数器j=0;
6、(4)dsp中的每个计算核心判断j是否小于步骤(2)得到的dsp中所有计算核心的总计算任务数cal_num,如果是则转入步骤(5),否则转入步骤(16);
7、(5)dsp中的每个计算核心根据多头注意力机制算子的计算参数获取步骤(2)得到的该计算核心待执行的计算任务对应的查询矩阵指针my_qu eries、键值矩阵指针my_keys、值矩阵指针my_values、以及输出矩阵指针my_o;根据键值矩阵指针获取键值矩阵,并对该键值矩阵进行转置操作,以得到键值矩阵的转置矩阵,分别根据查询矩阵指针和值矩阵指针获取查询矩阵和值矩阵(其大小均为seq_len行head_size列),根据输入矩阵的指针的类型设置分块参数block_seq_len,并根据分块参数对查询矩阵和值矩阵分别进行分块,以分别得到多个第一子矩阵和多个第二子矩阵,并根据分块参数获取该计算核心待执行的计算任务对应的总分块数。
8、(6)dsp中的每个计算核心设置计数器i=0;
9、(7)dsp中的每个计算核心判断i是否小于总分块数sr,如果是则转入步骤(9),否则转入步骤(16);
10、(8)dsp中的每个计算核心根据步骤(5)得到的分块参数将键值矩阵的转置矩阵划分为多个head_size行、block_seq_len列的第三子矩阵,根据输出矩阵的指针获取大小为block_seq_len行、head_size列的第四子矩阵,并将该第四子矩阵中的所有元素初始化为0。
11、(9)dsp中的每个计算核心设置计数器k=0;
12、(10)dsp中的每个计算核心创建并初始化四个长度为block_seq_len的数组gmax、gmax_temp为-inf,gl、gl_temp为0。
13、(11)dsp中的每个计算核心判断k是否小于等于i,如果是转入步骤(12),否则转入步骤(16);
14、(12)dsp中的每个计算核心对步骤(8)获取的第i个第一子矩阵和步骤(10)获取的第k个第三子矩阵进行矩阵乘运算,得到的结果为第五子矩阵:
15、(13)dsp中的每个计算核心判断k是否等于i,如果是,则生成掩码矩阵,其是大小为block_seq_len行、block_seq_len列,上三角全为-inf,下三角为0的矩阵,并对步骤(12)得到的第五子矩阵和该掩码矩阵进行矩阵加法运算,以得到掩码运算后的第五子矩阵,然后转入步骤(14),否则转入步骤(14);
16、(14)dsp中的每个计算核心对步骤(13)得到的掩码运算后的第五子矩阵进行softmax计算,以得到第六子矩阵,利用softmax计算过程中的中间结果对第四子矩阵进行更新,以得到更新后的第四子矩阵,计算第六子矩阵和第二子矩阵之间的矩阵乘结果作为第四子矩阵的切片o_new,并将获得的切片o_new与更新后的第四子矩阵相加,从而得到最终更新后的第四子矩阵。
17、(15)dsp中的每个计算核心设置计数器k=k+1,并返回步骤(11);
18、(16)dsp中的每个计算核心设置计数器i=i+1,并返回步骤(7);
19、(17)dsp中的每个计算核心设置计数器j=j+n_threads,并返回步骤(3);
20、(18)dsp中的每个计算核心将步骤(14)获得的第四子矩阵作为dsp多头注意力机制算子的计算结果返回cpu;
21、(19)cpu将来自dsp中的每个计算核心的多头注意力机制算子的计算结果传入到多头注意力机制算子的计算参数中。
22、优选地,步骤(1)中的多头注意力机制算子的计算参数包括:多头注意力机制算子的函数名、输入数据批数batch_size、头的数本文档来自技高网...
【技术保护点】
1.一种面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(1)中的多头注意力机制算子的计算参数包括:多头注意力机制算子的函数名、输入数据批数batch_size、头的数量n_heads、输入序列的长度SEQ_LEN、头的大小HEAD_SIZE、输入矩阵的指针(其包括查询矩阵指针queries、键值矩阵指针keys、值矩阵指针value s)、以及输出矩阵的指针o。
3.根据权利要求1或2所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,
4.根据权利要求1至3中任意一项所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(2)中DSP中的每个计算核心都根据输入数据批数batch_size和头的数量n_heads来确定DSP中所有计算核心的总计算任务数cal_num,具体为:
5.根据权利要求4所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,
6.
7.根据权利要求6所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(14)具体包括以下子步骤:
8.根据权利要求7所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(14-1)具体包括以下子步骤:
9.根据权利要求8所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(14-2)具体包括以下步骤:
10.一种面向国产异构处理器的多头注意力机制算子的优化系统,其特征在于,包括:
...【技术特征摘要】
1.一种面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(1)中的多头注意力机制算子的计算参数包括:多头注意力机制算子的函数名、输入数据批数batch_size、头的数量n_heads、输入序列的长度seq_len、头的大小head_size、输入矩阵的指针(其包括查询矩阵指针queries、键值矩阵指针keys、值矩阵指针value s)、以及输出矩阵的指针o。
3.根据权利要求1或2所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,
4.根据权利要求1至3中任意一项所述的面向国产异构处理器的多头注意力机制算子的优化方法,其特征在于,步骤(2)中dsp中的每个计算核心都根据输入数据批数batch_size和头的数量n...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。