当前位置: 首页 > 专利查询>山东大学专利>正文

基于超级计算机的多头注意力机制的前向计算方法及系统技术方案

技术编号:37292756 阅读:28 留言:0更新日期:2023-04-21 03:23
本发明专利技术涉及深度学习技术领域,提供了基于超级计算机的多头注意力机制的前向计算方法及系统,包括:从核在主核中读取权重和数据集中的数据,利用向量化并配合循环展开的方式将数据和权重转置相乘,计算得到查询矩阵、键矩阵和值矩阵,并变成多头表示;从核利用向量化并配合循环展开的方式,得到第一结果,并通过转变除法为乘法后,采取向量化配合并循环展开的方式,对第一结果的最低维度执行归一化操作,得到第二结果;从核利用向量化并配合循环展开的方式,得到第三结果,并在将第三结果传输回主核时,对主存带跨步写回,改变数据存储位置,完成转置。极大的加速了前向计算过程,达到了超线性加速比,接近了理论加速比。接近了理论加速比。接近了理论加速比。

【技术实现步骤摘要】
基于超级计算机的多头注意力机制的前向计算方法及系统


[0001]本专利技术属于深度学习
,尤其涉及基于超级计算机的多头注意力机制的前向计算方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]自然语言处理,向来是深度学习领域极其重要的研究方向,近些年定制化的AI加速芯片出现和发展极大地提升了计算深度学习框架的能力,自然语言相关的学习框架规模也在不断地扩大,出现了基于变换器的双向编码器表示技术(Bidirectional Encoder Representation from Transformers,BERT)、生成式预训练变换模型2(Generative Pre

trained Transformer 2,GPT

2)、生成型预训练变换模型3(Generative Pre

trained Transformer 3,GPT

3)等超大规模框架,在机器翻译、语言生成等方面取得了不俗的表现。这些模型大多基于Transformer框架,该框架核心是多头注意力(Multi

Head Attention)机制,Multi

Head Attention计算量极大,往往需要庞大的计算资源和极长的计算时间,对其进行深度地优化可以极大缩短训练时间或减少所使用的计算资源。
[0004]基于深度神经网络的算法,相比于各领域传统算法有更大运算量和参数存储量,因此有更长的计算时延和需要更大的内存空间。针对深度神经网络的参数量和计算量较大的问题,在超级计算机(如神威太湖之光)上,通过异构体组内主从并行可以很好的解决。
[0005]然而,神威平台上单个核的运行速度并不快,还要低于本地计算机运行速度,但多个核,核组协同计算起来速度会大大提升。如何使多个核进行协同计算,得到优异的效果,是优化的关键;与此同时,在神威太湖之光上对Multihead

Attention的前向计算过程进行优化,需要在制定并行策略时,进行合理的数据划分,有效提高数据重用率,充分利用从核的局部数据存储(Local Device Memory,LDM);以及进行访存优化,保持写回结果连续性,提高直接内存访问(Direct Memory Access,DMA)的带宽;并且在计算上需要尝试计算的通用优化,减少计算量;并且在优化后还需要使误差不能过大,保证结果的准确性,才能说明优化算法的有效性。

技术实现思路

[0006]为了解决上述
技术介绍
中存在的技术问题,本专利技术提供基于超级计算机的多头注意力机制的前向计算方法及系统,极大的加速了前向计算过程,达到了超线性加速比,接近了理论加速比。
[0007]为了实现上述目的,本专利技术采用如下技术方案:本专利技术的第一个方面提供基于超级计算机的多头注意力机制的前向计算方法,其包括:从核在主核中读取权重和数据集中的数据,并利用向量化并配合循环展开的方式
将数据和权重转置相乘,计算得到查询矩阵、键矩阵和值矩阵,并传输回主核,在传输回主核的过程中,将查询矩阵、键矩阵和值矩阵均变成多头表示;从核利用向量化并配合循环展开的方式,将多头表示的查询矩阵的低两维矩阵乘以多头表示的键矩阵低两维的转置,得到第一结果,并通过转变除法为乘法后,采取向量化配合并循环展开的方式,对第一结果的最低维度执行归一化操作,得到第二结果;从核利用向量化并配合循环展开的方式,将第二结果乘以多头表示的值矩阵,得到第三结果,并传输回主核,在将第三结果传输回主核时,对主存带跨步写回,改变数据存储位置,完成转置。
[0008]进一步地,对于数据量最小的数据集中的每个数据,每个从核在主核中读取一个批处理。
[0009]进一步地,对于数据量最大的数据集中的每个数据,在每个批处理下,采用数据分块的方式,得到若干个矩阵块,每个从核读取一个矩阵块。
[0010]进一步地,对于数据量居中的数据集中的每个数据,在每个批处理下,按照序列长度进行等分,得到若干份,每个从核在主核中读取一份。
[0011]进一步地,从核根据局部数据存储剩余空间读取多头表示的键矩阵或多头表示的值矩阵。
[0012]进一步地,从核将数据传输回主核时,采用直接内存访问通信。
[0013]进一步地,对于数据量居中的数据集和数据量最大的数据集,在进行乘法计算时,采用寄存器通信。
[0014]本专利技术的第二个方面提供基于超级计算机的多头注意力机制的前向计算系统,其包括:8、基于超级计算机的多头注意力机制的前向计算系统,其特征在于,包括:第一计算模块,其被配置为:从核在主核中读取权重和数据集中的数据,并利用向量化并配合循环展开的方式将数据和权重转置相乘,计算得到查询矩阵、键矩阵和值矩阵,并变成多头表示;第二计算模块,其被配置为:从核利用向量化并配合循环展开的方式,将多头表示的查询矩阵的低两维矩阵乘以多头表示的键矩阵低两维的转置,得到第一结果,并通过转变除法为乘法后,采取向量化配合并循环展开的方式,对第一结果的最低维度执行归一化操作,得到第二结果;第三计算模块,其被配置为:从核利用向量化并配合循环展开的方式,将第二结果乘以多头表示的值矩阵,得到第三结果,并传输回主核,在将第三结果传输回主核时,对主存带跨步写回,改变数据存储位置,完成转置。
[0015]本专利技术的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于超级计算机的多头注意力机制的前向计算方法中的步骤。
[0016]本专利技术的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于超级计算机的多头注意力机制的前向计算方法中的步骤。
[0017]与现有技术相比,本专利技术的有益效果是:
本专利技术提供了基于超级计算机的多头注意力机制的前向计算方法,其转变除法为乘法,减少计算的时钟周期,并采取向量化配合循环展开的方式,提高了计算速度,加速了前向计算过程。
[0018]本专利技术提供了基于超级计算机的多头注意力机制的前向计算方法,其在将第三结果传输回主核过程中,对主存带跨步写回,设置主存跨步和跨步向量块大小,对数据存储位置进行改变,从而在数据传输过程中达到了数据转置的目的,节省了数据转置,加速了前向计算过程。
[0019]本专利技术提供了基于超级计算机的多头注意力机制的前向计算方法,其利用寄存器通信,让核组内数据传输变快,以及良好的主从并行,达到了主从从核工作时间相互掩盖的效果,极大的加速了前向计算过程,达到了超线性加速比,接近了理论加速比。
附图说明
[0020]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0021]图1是本专利技术实施例一的计算查询本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于超级计算机的多头注意力机制的前向计算方法,其特征在于,包括:从核在主核中读取权重和数据集中的数据,并利用向量化并配合循环展开的方式将数据和权重转置相乘,计算得到查询矩阵、键矩阵和值矩阵,并传输回主核,在传输回主核的过程中,将查询矩阵、键矩阵和值矩阵均变成多头表示;从核利用向量化并配合循环展开的方式,将多头表示的查询矩阵的低两维矩阵乘以多头表示的键矩阵低两维的转置,得到第一结果,并通过转变除法为乘法后,采取向量化配合并循环展开的方式,对第一结果的最低维度执行归一化操作,得到第二结果;从核利用向量化并配合循环展开的方式,将第二结果乘以多头表示的值矩阵,得到第三结果,并传输回主核,在将第三结果传输回主核时,对主存带跨步写回,改变数据存储位置,完成转置。2.如权利要求1所述的基于超级计算机的多头注意力机制的前向计算方法,其特征在于,对于数据量最小的数据集中的每个数据,每个从核在主核中读取一个批处理。3.如权利要求1所述的基于超级计算机的多头注意力机制的前向计算方法,其特征在于,对于数据量最大的数据集中的每个数据,在每个批处理下,采用数据分块的方式,得到若干个矩阵块,每个从核读取一个矩阵块。4.如权利要求1所述的基于超级计算机的多头注意力机制的前向计算方法,其特征在于,对于数据量居中的数据集中的每个数据,在每个批处理下,按照序列长度进行等分,得到若干份,每个从核在主核中读取一份。5.如权利要求1所述的基于超级计算机的多头注意力机制的前向计算方法,其特征在于,从核根据局部数据存储剩余空间读取多头表示的键矩阵或多头表示的值矩阵。6.如权利要求1所述的基于超级计算机的多...

【专利技术属性】
技术研发人员:刘卫国周正浩段晓辉
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1