一种兼容N:M稀疏的Transformer加速器的架构及加速方法

文档序号:34268592发布日期:2023-05-26 21:33阅读:218来源:国知局
一种兼容N:M稀疏的Transformer加速器的架构及加速方法

本技术涉及人工智能算法硬件加速,尤其涉及一种兼容n:m稀疏的transformer加速器的架构及加速方法。


背景技术:

1、目前,基于transformer的深度神经网络模型(以下简称transformer模型)已被广泛应用在机器翻译、语音识别、价格预测、自然语言处理或图像处理等技术领域,由于transformer模型计算能力强,能够适用于计算量大、运算复杂的应用场景。

2、但是,transformer模型会产生庞大的计算量以及参数量,故transformer模型在运行过程中需要占用大量内存,需要消耗超高算力,从而导致transformer模型无法直接部署在嵌入式设备上,极大的限制了transformer模型的应用场景。

3、为了实现transformer模型的高效部署,现有技术中提出一种加速transformer模型中多头注意力模块以及前馈网络模块的计算架构,提升了transformer的推理效率,但是该计算架构并不支持稀疏的transformer模型推理,因此阻碍了性能的进一步提升,又或者,现有技术中还提出一种针对transformer的模型进行压缩方案,并达到了较高的模型压缩率。但是,以上两种方案的架构并没有解决因稀疏而带来的负载不均衡的问题,导致计算架构实际的计算利用率相对较低。


技术实现思路

1、为了实现transformer模型的高效部署,且解决因稀疏而带来的负载不均衡的问题,导致计算架构实际的计算利用率相对较低的问题,本技术实施例提供一种兼容n:m稀疏的transformer加速器的架构及加速方法。

2、本技术实施例第一方面提供一种兼容n:m稀疏的transformer加速器的架构;

3、所述transformer加速器的架构包括控制单元、储存单元和计算单元;

4、控制单元,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;

5、计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、softmax计算模块;

6、储存单元,包括权重存储器、激活函数存储器和中间数据存储器;

7、所述多模兼容矩阵乘法计算模块,用于根据控制信号动态配置,执行两个稠密矩阵的矩阵乘法计算,或者,执行单个n:m结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算

8、softmax计算模块,用于计算transformer模型中的softmax算子;

9、矢量计算模块,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;

10、重排模块,用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器;

11、权重存储器,用于获取外部存储器上存储的权重,并将权重输入至所述多模兼容矩阵乘法计算模块;

12、激活函数存储器,用于获取外部存储器上存储的激活函数;以及存储计算单元输出的计算结果,并将所述计算结果传输到外部存储器上;

13、中间数据存储器,存储计算单元产生的中间数据。

14、在一种实现方式中,所述控制单元包括总控制器、softmax控制器、地址生成器和矩阵乘法控制器;

15、总控制器,用于获取外部软件端的配置信息,以及外部软件端的运算任务,并将运算任务分配至softmax控制器、地址生成器和矩阵乘法控制器;

16、矩阵乘法控制器,用于控制所述多模兼容矩阵乘法计算模块进行矩阵运算任务;

17、softmax控制器,用于控制softmax模块进行softmax算子运算任务;

18、地址生成器,用于生成访存/写入数据的存储地址。

19、在一种实现方式中,所述多模兼容矩阵乘法计算模块包括8个并行的8×8的二维计算阵列,单个二维计算阵列包括累加器和非零元素选择器,以及设置在输出端的多个多路选择器和寄存器;

20、非零元素选择器,用于选择非零权重对应的激活元素;

21、所述累加器用于对输入的16比特权重和16比特激活函数执行乘法运算后,并将运算获得的结果与存储在计算单元内部的局部结果进行累加。

22、在一种实现方式中,所述softmax计算模块包括ex指数函数运算器、数据缓冲器、累加树模块和除法单元模块;

23、所述数据缓冲器和累加树模块均设置在所述ex指数函数运算器和除法单元模块之间;

24、ex指数函数运算器,用于对输入数据进行分割;

25、数据缓冲器,用于暂存ex指数函数运算器的分割结果;

26、累加树模块,用于对ex指数函数运算器的分割结果进行求和;

27、除法单元模块,用于对数据缓冲器暂存的ex指数函数的分割结果与累加树模块的求和结果进行除法运算。

28、在一种实现方式中,所述除法单元模块包括一个减法器、比较器以及移位器组成;多个除法单元模块通过流水线级联。

29、本技术第二方面还提供一种兼容n:m稀疏的transformer加速器的加速方法,所述一种兼容n:m稀疏的transformer加速器的加速方法采用本技术第一方面提供的兼容n:m稀疏的transformer加速器的架构,对于本技术实施例第二方面未公开的细节,请参见本技术第一方面的技术方案。

30、一种兼容n:m稀疏的transformer加速器的加速方法,包括:

31、s1,控制单元获取外部软件端加载的配置信息及运算任务,并根据运算任务生成控制信号动态配置,以及根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;

32、s2,若运算任务为多头注意力模块运算,则配置多头注意模块相关寄存器,则执行步骤s21至步骤s25;

33、s21,控制单元激活地址生成器,权重存储器从外部存储器存储获取wq权重数据,总控制器获取完成层归一化计算的输入数据x;

34、s22,权重存储器从外部存储器存储获取下个阶段计算所需的wk权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法x·wq;

35、s23,权重存储器从外部存储器存储获取下个阶段所需的wv权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法x·wk得到矩阵k,以及,执行稠密矩阵乘法s=q·kt;

36、s24,权重存储器从外部存储器存储获取下个阶段所需的wo权重数据,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法x·wv得到矩阵v,将矩阵v依次送进矢量计算模块,重排模块,然后重排后的结果写回到中间数据存储区,softmax计算模块对矩阵s进行softmax计算得到矩阵s′;

37、s25,多模兼容矩阵乘法计算模块执行稠密矩阵乘法s′·v得到矩阵z,以及,执行稀疏矩阵乘法z·wo;

38、s3,若运算任务为前馈网络模块运算,则配置前馈网络模块相关寄存器,则执行步骤s31至步骤s33;

39、s31,总控制器激活地址生成器,权重存储器从外部存储器存储获取wf1权重数据,总控制器获取完成层归一化计算的输入数据;

40、s32,权重存储器从外部存储器存储获取下个阶段计算所需的wf2权重数据,外部激活数据写入激活函数存储器相应的地址上,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法x·wf1,以及,矢量计算模块对x·wf2完成激活函数relu计算;

41、s33,多模兼容矩阵乘法计算模块执行稀疏矩阵乘法x·wf2,以及,矢量计算模块对x·wf2完成激活函数relu计算。

42、由以上技术方案可知,本技术提供一种兼容n:m稀疏的transformer加速器的架构及加速方法,所述transformer加速器的架构包括控制单元、储存单元和计算单元;控制单元用于获取外部软件端的配置信息,以及外部软件端的运算任务,并根据所述运算任务,生成控制信号动态配置,以及,根据控制信号动态配置对加速器的架构的寄存器进行配置,并控制计算单元和存储单元的运行;计算单元,包括多模兼容矩阵乘法计算模块、矢量计算模块、重排模块、softmax计算模块;储存单元包括权重存储器、激活函数存储器和中间数据存储器。

43、在实际应用过程中,所述多模兼容矩阵乘法计算模块负责transformer模型中运算量密集的矩阵乘法的计算,根据控制信号动态配置,既可执行两个稠密矩阵的矩阵乘法计算,也可执行单个n:m结构化稀疏矩阵与单个稠密矩阵的矩阵乘法计算;所述灵活的softmax计算模块负责计算transformer模型中的softmax算子,所述矢量计算模块负责累加、relu等激活函数的操作,用于累加所述多模兼容矩阵乘法计算模块的运算结果,并将累加的运算结果发送至重排模块;所述重排模块用于对所述累加的运算结果进行重排,并存储至中间数据存储器或激活存储器。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1