技术新讯 > 计算推算,计数设备的制造及其应用技术 > 并行计算硬件中矩阵运算的数据处理方法及相关设备与流程  >  正文

并行计算硬件中矩阵运算的数据处理方法及相关设备与流程

  • 国知局
  • 2025-01-10 13:16:30

本技术涉及网络安全,尤其涉及并行计算硬件中矩阵运算的数据处理方法及相关设备。

背景技术:

1、伴随着神经网络、科学计算和人工智能领域的不断发展,这些学科近年来已经逐渐应用到生活和工作中,随着这些领域使用的输入特征图越来越大,使用的模型的层数和耦合关系越来越复杂,计算的性能已经成为了这些领域重点关注的指标之一,其中矩阵乘法运算在这些学科中被大量的使用,因此,矩阵乘法运算的性能提升就显得至关重要。

2、在相关技术中,针对于单精度矩阵的乘法运算中,通常采用可以支持单精度计算的计算芯片来继续计算,但支持单精度计算的计算芯片其成本较高。除此之外,通常在使用仅支持半精度计算的计算芯片中,将待乘的单精度矩阵转换为半精度矩阵,然后再将半精度进行乘法运算,但是通过这种方案得到的结果的精准度较低。

技术实现思路

1、本技术实施例的提供了一种并行计算硬件中矩阵运算的数据处理方法及相关设备,能够在使用支持半精度计算的计算芯片中提高单精度矩阵乘法运算的精准度。

2、为实现上述目的,本技术实施例的第一方面提出了一种并行计算硬件中矩阵运算的数据处理方法,所述方法包括:

3、获取第一单精度矩阵的第一半精度矩阵和第二单精度矩阵的第二半精度矩阵;

4、获取所述第二单精度矩阵与所述第二半精度矩阵之间的第二误差矩阵,获取所述第二误差矩阵中的多个第二分块误差矩阵,并存储至所述并行计算硬件的l1缓冲区中,所述第二误差矩阵为半精度矩阵;

5、逐一获取所述第一半精度矩阵中第一分块矩阵,存储至所述l1缓冲区中,将所述l1缓冲区中的所述第一分块矩阵和所述第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵,并基于所述第一分块结果矩阵得到所述第一半精度矩阵和所述第二误差矩阵的第一结果矩阵;

6、获取所述第一单精度矩阵与所述第一半精度矩阵之间的第一误差矩阵,第一误差矩阵为半精度矩阵;

7、获取所述第一误差矩阵和所述第二半精度矩阵进行矩阵相乘得到的第二结果矩阵,获取所述第一半精度矩阵和所述第二半精度矩阵进行矩阵相乘得到的第三结果矩阵,累加所述第一结果矩阵、所述第二结果矩阵以及所述第三结果矩阵得到单精度目标矩阵,并将所述单精度目标矩阵作为所述第一单精度矩阵和所述第二单精度矩阵进行矩阵乘法运算的结果。

8、在一些实施例,所述获取所述第二误差矩阵中的多个第二分块误差矩阵,并存储至所述并行计算硬件的l1缓冲区中,包括:

9、基于所述第一分块矩阵的第一分块大小和所述第二分块误差矩阵的第二分块大小,确定第一存储数量;

10、将对应于所述第一存储数量的所述第二分块误差矩阵存储至所述l1缓冲区。

11、在一些实施例,所述基于所述第一分块矩阵的第一分块大小和所述第二分块误差矩阵的第二分块大小,确定第一存储数量,包括:

12、基于所述l1缓冲区的缓存容量与两倍数量的所述第一分块大小的差值,得到误差矩阵存储容量;

13、基于所述误差矩阵存储容量和所述第二分块大小的比值,得到所述第一存储数量。

14、在一些实施例,所述l1缓冲区设置有用于存储所述第一分块矩阵的第一存储位置和第二存储位置,所述逐一获取所述第一半精度矩阵中第一分块矩阵,存储至所述l1缓冲区中,将所述l1缓冲区中的所述第一分块矩阵和所述第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵,包括:

15、根据所述第一半精度矩阵中多个所述第一分块矩阵的排列顺序,获取第二个所述第一分块矩阵并存储至所述第一存储位置;

16、将所述第二存储位置的第一个所述第一分块矩阵和所述l1缓冲区中的与第一个所述第一分块矩阵对应的所述第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵。

17、在一些实施例,所述将所述l1缓冲区中的所述第一分块矩阵和所述第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵,包括:

18、在所述l1缓冲区中,对多个所述第二分块误差矩阵一并乘以放大因子,得到放大第二分块误差矩阵;

19、将所述l1缓冲区中的所述第一分块矩阵对应的所述放大第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到所述第一分块结果矩阵。

20、在一些实施例,所述获取第一单精度矩阵的第一半精度矩阵和第二单精度矩阵的第二半精度矩阵之前,所述方法还包括:

21、将分块误差模块进行流水线加锁,所述分块误差模块包括所述第二分块误差矩阵的生成和存储至所述l1缓冲区过程;

22、所述获取所述第二误差矩阵中的多个第二分块误差矩阵,并存储至所述并行计算硬件的l1缓冲区中之后,所述方法还包括:

23、将所述分块误差模块进行流水线解锁。

24、在一些实施例,所述逐一获取所述第一半精度矩阵中第一分块矩阵,存储至所述l1缓冲区中之前,所述方法还包括:

25、将分块计算模块进行流水线加锁,所述分块计算模块包括所述第一分块矩阵存储至所述l1缓冲区,以及所述第一分块矩阵和所述第二分块误差矩阵的矩阵计算过程;

26、所述基于所述第一分块结果矩阵得到所述第一半精度矩阵和所述第二误差矩阵的第一结果矩阵之后,所述方法还包括:

27、将所述分块计算模块进行流水线解锁。

28、在一些实施例,所述基于所述第一分块结果矩阵得到所述第一半精度矩阵和所述第二误差矩阵的第一结果矩阵,包括:

29、累加每个所述第一分块矩阵对应的所述第一分块结果矩阵,得到所述第一半精度矩阵和所述第二误差矩阵的第一结果矩阵。

30、在一些实施例,所述获取所述第一误差矩阵和所述第二半精度矩阵进行矩阵相乘得到的第二结果矩阵,包括:

31、根据所述第一分块大小得到第三分块大小,以及根据所述第二分块大小得到第四分块大小;

32、根据所述第三分块大小对所述第二半精度矩阵进行拆分,得到多个第二分块矩阵;

33、根据所述第四分块大小对所述第一误差矩阵进行拆分,得到多个第一分块误差矩阵;

34、逐一获取每个所述第二分块矩阵和所述第一分块误差矩阵通过所述l1缓冲区和所述矩阵计算模块进行矩阵相乘得到的第二分块结果矩阵,并基于所有所述第二分块结果矩阵得到所述第二结果矩阵。

35、为实现上述目的,本技术实施例的第二方面提出了一种并行计算硬件中矩阵运算的数据处理装置,装置包括:

36、矩阵获取模块,用于获取第一单精度矩阵的第一半精度矩阵和第二单精度矩阵的第二半精度矩阵;

37、第一误差矩阵模块,用于获取所述第二单精度矩阵与所述第二半精度矩阵之间的第二误差矩阵,获取所述第二误差矩阵中的多个第二分块误差矩阵,并存储至所述并行计算硬件的l1缓冲区中,所述第二误差矩阵为半精度矩阵;

38、矩阵计算模块,用于逐一获取所述第一半精度矩阵中第一分块矩阵,存储至所述l1缓冲区中,将所述l1缓冲区中的所述第一分块矩阵和所述第二分块误差矩阵传输至所述并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵,并基于所述第一分块结果矩阵得到所述第一半精度矩阵和所述第二误差矩阵的第一结果矩阵;

39、第二误差矩阵模块,获取所述第一单精度矩阵与所述第一半精度矩阵之间的第一误差矩阵,第一误差矩阵为半精度矩阵;

40、结果计算模块,用于获取所述第一误差矩阵和所述第二半精度矩阵进行矩阵相乘得到的第二结果矩阵,获取所述第一半精度矩阵和所述第二半精度矩阵进行矩阵相乘得到的第三结果矩阵,累加所述第一结果矩阵、所述第二结果矩阵以及所述第三结果矩阵得到单精度目标矩阵,并将所述单精度目标矩阵作为所述第一单精度矩阵和所述第二单精度矩阵进行矩阵乘法运算的结果。

41、为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的并行计算硬件中矩阵运算的数据处理方法。

42、为实现上述目的,本技术实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的并行计算硬件中矩阵运算的数据处理方法。

43、本技术实施例提出的并行计算硬件中矩阵运算的数据处理方法及相关设备,方法包括:首先,获取第一单精度矩阵的第一半精度矩阵和第二单精度矩阵的第二半精度矩阵;然后,获取第二单精度矩阵与第二半精度矩阵之间的第二误差矩阵,获取第二误差矩阵中的多个第二分块误差矩阵,并存储至并行计算硬件的l1缓冲区中,第二误差矩阵为半精度矩阵;之后,逐一获取第一半精度矩阵中第一分块矩阵,存储至l1缓冲区中,将l1缓冲区中的第一分块矩阵和第二分块误差矩阵传输至并行计算硬件的矩阵计算模块进行矩阵相乘,得到第一分块结果矩阵,并基于第一分块结果矩阵得到第一半精度矩阵和第二误差矩阵的第一结果矩阵;以及,获取第一单精度矩阵与第一半精度矩阵之间的第一误差矩阵,第一误差矩阵为半精度矩阵;最后,获取第一误差矩阵和第二半精度矩阵进行矩阵相乘得到的第二结果矩阵,获取第一半精度矩阵和第二半精度矩阵进行矩阵相乘得到的第三结果矩阵,累加第一结果矩阵、第二结果矩阵以及第三结果矩阵得到单精度目标矩阵,并将单精度目标矩阵作为第一单精度矩阵和第二单精度矩阵进行矩阵乘法运算的结果。本技术实施例利用并行计算硬件中预先得到单精度矩阵在转换到半精度矩阵后产生的误差矩阵,然后利用误差矩阵和半精度矩阵的乘积结果以补偿进行单精度矩阵的乘法运算过程中的精度,从而有效地提高了在使用支持半精度计算的并行计算硬件中进行单精度矩阵乘法的精准度;此外,将并行计算硬件中的l1缓冲区作为中间缓存区,结合l1缓冲区的高容量和较低的实时传输速率,以预先将大量的分块矩阵传输至l1缓冲区中,使得在实际的计算过程中,有效地减少矩阵数据在l1缓冲区中的实时数据交换传输,进而有效地提高了在并行计算硬件中进行矩阵运算的计算速率。

44、本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

本文地址:https://www.jishuxx.com/zhuanli/20250110/352068.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。