用于优化片上系统的矩阵乘操作的方法和相关产品技术方案

技术编号:35279907 阅读:17 留言:0更新日期:2022-10-22 12:22
本披露公开了用于优化片上系统的矩阵乘操作的方法和相关产品。该片上系统可以包括在组合处理装置的计算处理装置中,该计算处理装置可以包括一个或多个集成电路装置。前述的组合处理装置还可以包括接口装置和其他处理装置。所述计算处理装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。本披露的方案可以降低内部设备与外部存储装置之间的数据传输量,由此最大程度地减少了由于带宽限制而导致的I/O瓶颈问题,从而可以提高集成电路装置的整体性能。从而可以提高集成电路装置的整体性能。从而可以提高集成电路装置的整体性能。

【技术实现步骤摘要】
用于优化片上系统的矩阵乘操作的方法和相关产品


[0001]本披露一般地涉及数据计算领域。更具体地,本披露涉及一种用于优化片上系统的矩阵乘操作的方法、设备和计算机可读存储介质。

技术介绍

[0002]矩阵乘操作是科学计算和数据处理领域中非常常见的一种数据运算操作。以当下高速发展的人工智能领域来说,其通常涉及大量的数据计算,其中就包括各种类型数据的矩阵乘操作。在人工智能领域的研究热点——深度学习中,例如深度神经网络(Deep Neural Networks,“DNN”)、循环神经网络(Recurrent Neural Network,“RNN”),以及大规模应用于自然语言处理(Natural Language Processing,“NLP”)领域的变换(“transformer”)网络等,许多计算任务都涉及到大规模的矩阵乘运算,特别是两个大矩阵的相乘操作。众所周知,当涉及的矩阵乘运算数据量和数据尺度越大,则对计算平台(特别是对片上系统)的计算能力和访存性能要求就越高。
[0003]在现有的矩阵乘运算中,通常会利用中央处理器(“CPU”)或者图像处理单元(“GPU”)等处理器进行运算。然而,由于受处理器内部存储器资源的容量限制,大规模矩阵乘操作带来的庞大数据运算量会导致处理器的片上系统与外部存储设备之间产生频繁的、大量的数据交互。由于处理器与外部存储器之间的输入/输出(“I/O”)总线的带宽有限,这就会导致严重的I/O瓶颈问题,由此造成的数据传输延迟也会极大地降低并行运算时的运算效率。进一步,不仅I/O总线的带宽限制会成为系统性能的瓶颈,而且处理器与外部存储设备间大量的I/O访存量也会对计算和功耗开销带来非常不利的影响。因此,如何优化矩阵的访存成了提高通用矩阵乘性能的一个非常重要的手段。

技术实现思路

[0004]为了至少解决在上文中所提到的技术问题,本披露提供了一种能够优化片上系统的矩阵乘操作的解决方案。具体来说,本披露提出了用于确定矩阵乘操作中矩阵拆分的一种最优方式。通过利用最优的拆分方式对矩阵进行拆分,本披露的矩阵乘操作显著减少与外部存储设备的数据传输量,从而最大程度地降低总线带宽限制带来的I/O瓶颈问题,进而提高了矩阵乘的运算效率。鉴于此,本披露在如下的多个方面中提供前述的解决方案。
[0005]在第一方面中,本披露公开了一种用于优化片上系统的矩阵乘操作的方法,所述方法由一个或多个处理器实现,并且包括:接收待拆分以便执行矩阵乘操作的第一矩阵和第二矩阵的矩阵信息,其中所述第一矩阵为M行
×
K列并且所述第二矩阵为K行
×
N列;以及通过最小化代价函数来确定用于拆分第一矩阵和第二矩阵的拆分系数,所述拆分系数包括用于拆分第一矩阵后获得的矩阵块的行数M
b
和列数K
b
以及拆分第二矩阵后获得的矩阵块的行数K
b
和列数N
b
,其中所述代价函数用于确定在所述片上系统和片外系统之间传递矩阵数据对在所述片上系统执行所述矩阵乘操作所产生的代价,其中所述代价函数至少基于所述第一矩阵的数据规模大小、所述第二矩阵的数据规模大小、所述第一矩阵的行数M、所述第
二矩阵的列数N和所述拆分系数。
[0006]在第二方面中,本披露公开了一种用于优化片上系统的矩阵乘操作的设备,包括:处理器;存储器,其存储有用于优化片上系统的矩阵乘操作的程序指令,当所述程序指令由所述处理器执行时,使得所述设备执行上述的方法。
[0007]在第三方面中,本披露公开了一种计算机可读存储介质,其上存储有用于优化片上系统的矩阵乘操作的程序指令,当所述程序指令由处理器执行时,实现上述的方法。
[0008]在第四方面中,本披露公开了一种用于执行矩阵乘操作的片上系统,包括:多个主处理单元,其中每个主处理单元包括多个处理子单元,其中每个处理子单元用于执行对应的矩阵乘操作;多个高速缓存,用于缓存待执行矩阵乘操作的矩阵数据和与矩阵乘操作相关联的结果,其中所述片上系统配置成执行矩阵块间的矩阵乘操作,并且所述矩阵块是根据前述方法的拆分系数来对矩阵进行拆分而获得的。
[0009]在第五方面中,本披露公开了一种集成电路装置,包括前述的片上系统。
[0010]在第六方面中,本披露公开了一种板卡,包括前述的集成电路装置。
[0011]通过利用本披露上述的方法、设备和计算机可读存储介质,可以确定对参与矩阵乘操作的矩阵的最优拆分方式,从而显著优化矩阵乘操作。具体而言,本披露的方案通过构建片上系统与片外系统间传递矩阵块数据所造成代价的代价函数,并且以最小化该代价函数为目标来选择拆分矩阵的最优拆分系数。由此,通过基于最优拆分系数执行的矩阵乘操作,本披露的方案可以充分利用片上系统的片内资源、减少与片外系统的外部存储器之间的I/O数据交互,从而实现数据传送和矩阵乘操作的高效并行执行。进一步,通过结合硬件架构来对大的矩阵进行多级的拆分,本披露的方案也简化了矩阵乘操作的复杂度并且支持对超大矩阵的矩阵乘操作。在一些实施例中,通过上述的代价函数,本披露的方案还可以从多个候选的矩阵乘算法中选择最优的矩阵乘算法,从而实现对矩阵乘操作的高效执行。
附图说明
[0012]通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0013]图1是示出根据本披露实施例的矩阵拆分操作的示意图;
[0014]图2是示出根据本披露实施例的用于优化片上系统的矩阵乘操作的方法的流程图;
[0015]图3是示出根据本披露实施例的用于执行矩阵访存操作的架构图;
[0016]图4是图3中所示L2高速缓存区的示意架构图;
[0017]图5是图3中所示L1高速缓存区的示意架构图;
[0018]图6a和图6b是示出根据本披露实施例的矩阵块拆分原理的示意图;
[0019]图7是示出根据本披露实施例的执行矩阵乘操作的片上系统的结构框图;
[0020]图8是示出根据本披露实施例的计算子单元执行矩阵乘操作的示意图;
[0021]图9是示出根据本披露实施例的用于选择最优矩阵乘算法的方法的流程图;
[0022]图10是示出根据本披露实施例的一种组合处理装置的结构图;以及
[0023]图11是示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
[0024]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述。显然,下文的描述旨在讨论本披露方案的多个示例性实施例,而并非意图对本披露方案的实施例进行穷举式的描述。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露公开的方案保护的范围。
[0025]本披露的专利技术人发现当以任意的形式来对两个矩阵进行拆分以便进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于优化片上系统的矩阵乘操作的方法,所述方法由一个或多个处理器实现,并且包括:接收待拆分以便执行矩阵乘操作的第一矩阵和第二矩阵的矩阵信息,其中所述第一矩阵为M行
×
K列并且所述第二矩阵为K行
×
N列;以及通过最小化代价函数来确定用于拆分第一矩阵和第二矩阵的拆分系数,所述拆分系数包括用于拆分第一矩阵后获得的矩阵块的行数M
b
和列数K
b
以及拆分第二矩阵后获得的矩阵块的行数K
b
和列数N
b
,其中所述代价函数用于确定在所述片上系统和片外系统之间传递矩阵数据对在所述片上系统执行所述矩阵乘操作所产生的代价,其中所述代价函数至少基于所述第一矩阵的数据规模大小、所述第二矩阵的数据规模大小、所述第一矩阵的行数M、所述第二矩阵的列数N和所述拆分系数。2.根据权利要求1所述的方法,其中所述代价函数还基于带宽利用率系数,其中所述带宽利用率系数等于按预定数据长度从所述片外系统加载矩阵块时的等效带宽与片上系统和片外系统之间的总带宽之间的比值。3.根据权利要求1或2所述的方法,其中在通过最小化代价函数来确定所述拆分系数中,所述方法包括建立用于最小化所述代价函数的搜索空间,以便利用所述搜索空间确定所述拆分系数。4.根据权利要求3所述的方法,其中建立用于最小化所述代价函数的搜索空间包括:对所述片上系统的高速缓冲区进行划分;以及根据划分结果建立所述搜索空间,其中所述高速缓冲区被布置用于存储拆分后的矩阵块和对所述拆分后的矩阵块执行矩阵乘操作所获得的矩阵乘结果。5.根据权利要求4所述的方法,其中所述片上系统包括多级高速缓存区,并且所述方法包括:根据用于执行矩阵乘操作的预定矩阵乘算法,建立与每一级高速缓存区关联的搜索子空间。6.根据权利要求5所述的方法,其中所述多级高速缓存区包括一级高速缓存区和二级高速缓存区,并且所述搜索空间包括第一搜索子空间和第二搜索子空间,所述方法包括:根据所述一级高速缓存区中的多个第一高速缓冲区的设置来建立所述第一搜索子空间,其中所述多个第一高速缓冲区用于存储拆分所述矩阵块所获得的矩阵子块和对所述矩阵子块执行矩阵乘操作所获得的中间运算结果;以及根据所述二级高速缓存区的多个第二高速缓冲区的设置来建立所述第二搜索子空间,其中所述多个第二高速缓冲区用于存储拆分所述矩阵子块所获得的原子矩阵和对所述原子矩阵执行矩阵乘操作所获得的中间运算结果。7.根据权利要求6所述的方法,其中通...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

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

1