一种矩阵运算方法、运算装置以及处理器制造方法及图纸

技术编号:27564418 阅读:24 留言:0更新日期:2021-03-09 22:08
本申请实施例公开了一种矩阵运算方法、运算装置以及处理器,用于在矩阵运算过程中,提高其运算效率,降低其运算功耗,节约其运算资源。该方法应用于运算装置中,该运算装置包括至少一个运算模块,每一个运算模块中包括(M*N)个运算单元,并且每一个运算模块中的(M*N)个运算单元排列成M行N列的二维矩阵阵列,M和N分别为大于或等于2的整数,矩阵运算方法包括:根据矩阵运算指令中携带的待运算矩阵的地址得到子矩阵的地址,子矩阵为切分待运算矩阵得到的M行N列的二维矩阵;根据子矩阵的地址读取子矩阵的矩阵元素至运算模块中,一个运算模块对应一个子矩阵;根据矩阵运算指令控制运算模块对子矩阵进行矩阵运算,得到矩阵运算结果。得到矩阵运算结果。得到矩阵运算结果。

【技术实现步骤摘要】
一种矩阵运算方法、运算装置以及处理器


[0001]本申请实施例涉及通信
,尤其涉及一种矩阵运算方法、运算装置以及处理器。

技术介绍

[0002]随着通信技术的发展,尤其是5G技术的发展和应用,矩阵运算在所有运算和处理的算法类型中的占比越来越大。矩阵运算在人工智能、数字图像处理以及雷达信号及数据处理中也存在着广泛的应用。
[0003]除上述的矩阵运算之外,较为常见的运算类型还包括:标量运算和矢量运算。在算法实现上,现有的通用技术是在数字信号处理器(digital signal processor,DSP)和中央处理单元(center process unit,CPU)中处理无线通信的各种算法和数据运算处理。
[0004]DSP和CPU能够高效地处理标量运算以及矢量运算,但由于矩阵运算数据量大,DSP和CPU在处理矩阵运算过程中效率极低并且功耗较大。具体来说,DSP和CPU中的每个指令只能完成对一个标量或矢量的运算,从而矩阵运算中需要被拆解为对多个标量或矢量的运算,从而需要读取大量的指令并译码后执行相应的计算。容易理解,在读取指令并译码过程中需要占用大量的资源,浪费时间的同时增加了功耗。

技术实现思路

[0005]为了解决上述的技术问题,本申请实施例中提供了一种矩阵运算方法、运算装置以及处理器,用于在矩阵运算过程中,提高其运算效率,降低其运算功耗,节约其运算资源。
[0006]第一方面,本申请实施例中提供了一种矩阵运算方法,该方法应用于运算装置中,该运算装置包括至少一个运算模块,每一个运算模块中包括(M*N)个运算单元,并且每一个运算模块中的(M*N)个运算单元排列成M行N列的二维矩阵阵列,M和N分别为大于或等于2的整数,该方法包括:运算装置获取矩阵运算指令,所述矩阵运算指令中携带有待运算矩阵的地址;根据所述待运算矩阵的地址得到子矩阵的地址,所述子矩阵为切分所述待运算矩阵得到的M行N列的二维矩阵;根据所述子矩阵的地址读取所述子矩阵的矩阵元素至所述运算模块中,一个运算模块对应一个子矩阵;根据所述矩阵运算指令控制所述运算模块对所述子矩阵进行矩阵运算,得到矩阵运算结果。
[0007]在上述第一方面的矩阵运算方法中,可以直接根据矩阵运算指令直接获取待运算矩阵,然后基于矩阵运算粒度对待运算矩阵进行拆分,从而分别对划分后的多个子矩阵进行矩阵运算,在上述的整个矩阵运算过程中,只需要一个矩阵运算指令即可完成对待运算矩阵的运算,并且将待运算矩阵拆分为多个子矩阵进行运算,可以减少矩阵运算过程中的指令节约运算资源同时提高运算效率,降低运算功耗。
[0008]在第一方面的一种可能的实现方式中,所述根据所述子矩阵的地址读取至所述子矩阵的矩阵元素至所述运算模块中,包括:从所述子矩阵的地址中取出所述子矩阵的矩阵元素;将所述子矩阵中第m行、第n列的矩阵元素存入所述运算模块中第m行、第n列的运算单
元中,所述m的取值为小于或等于M的正整数,所述n的取值为小于或等于N的正整数。
[0009]在第一方面的一种可能的实现方式中,所述根据所述矩阵运算指令控制所述运算模块对所述子矩阵进行矩阵运算,包括:根据所述矩阵运算指令控制所述运算模块中的每一个运算单元对所述子矩阵执行乘累加运算或复数乘累加运算,所述运算单元包括以下至少一项:乘累加运算单元和复数乘累加运算单元。
[0010]在第一方面的一种可能的实现方式中,所述矩阵运算指令中还包括以下至少一项:范例标识、循环运算指示和目的地址。
[0011]在第一方面的一种可能的实现方式中,若所述矩阵运算指令中包括所述范例标识,所述方法还包括:通过所述范例标识对预先存储的范例表进行查询得到目标范例,所述目标范例用于指示所述待运算矩阵的矩阵元素的数据存储形式。
[0012]在第一方面的一种可能的实现方式中,若所述矩阵运算指令中包括第一指示,所述第一指示用于指示所述矩阵运算指令对应的循环次数。其中所述第一指示也可以称之为循环次数指示。
[0013]在第一方面的一种可能的实现方式中,所述矩阵运算指令中还包括第二指示,所述第二指示用于指示预处理和矩阵转置,所述预处理包括:矩阵的取反和/或共轭。
[0014]在第一方面的一种可能的实现方式中,若所述矩阵运算指令中还包括所述目的地址,所述方法还包括:将所述矩阵运算结果存储到所述目的地址中,所述目的地址为内存地址。
[0015]在第一方面的一种可能的实现方式中,所述待运算矩阵的地址为内存地址。
[0016]在第一方面的一种可能的实现方式中,上述的M和N的取值相等。
[0017]第二方面,本申请实施例中提供了一种运算装置,包括:所述运算装置包括至少一个运算模块,每一个运算模块中包括(M*N)个运算单元,每一个运算模块中的所述(M*N)个运算单元排列成M行N列的二维矩阵阵列,所述M和N分别为大于或等于2的整数,所述运算装置用于执行上述第一方面以及第一方面中任意一种实现方式中所述的矩阵运算方法。
[0018]第三方面,本申请实施例中提供了一种处理器,包括:运算装置,所述运算装置用于执行上述第一方面以及第一方面中任一种可能的实现方式中所述的方法。
[0019]在第三方面的一种可能的实现方式中,所述处理器还包括:中央处理单元和数字信号处理单元中的至少一项,所述中央处理单元和数字信号处理单元用于:向所述运算装置发送矩阵运算指令。
附图说明
[0020]图1为本申请实施例中提供的一个异构处理器的架构示意图;
[0021]图2为本申请实施例中提供的一个运算装置的结构示意图;
[0022]图3为本申请实施例中提供的一个运算装置中每个运算模块的结构示意图;
[0023]图4为本申请实施例中提供的一个由处理单元PE组成的运算模块的结构示意图;
[0024]图5为本申请实施例中提供的一个矩阵运算方法的实施例示意图。
具体实施方式
[0025]本申请实施例中提供了一种矩阵运算方法、运算装置以及处理器,用于在矩阵运
算过程中,提高其运算效率,降低其运算功耗,节约其运算资源。
[0026]下面结合附图,对本申请的实施例进行描述。
[0027]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0028]本申请实施例中的矩阵运算方法可以使用于各种矩阵运算系统中,尤其适用于一种基于矩阵加速的异构处理器架构中,可以使得该异构处理器既有较好的灵活性和编程性,又能提升其矩阵运算能力。
[0029]图1中示出了本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种矩阵运算方法,其特征在于,所述方法应用于运算装置中,所述运算装置包括至少一个运算模块,每一个运算模块中包括(M*N)个运算单元,每一个运算模块中的所述(M*N)个运算单元排列成M行N列的二维矩阵阵列,所述M和N分别为大于或等于2的整数,所述方法包括:获取矩阵运算指令,所述矩阵运算指令中携带有待运算矩阵的地址;根据所述待运算矩阵的地址得到子矩阵的地址,所述子矩阵为切分所述待运算矩阵得到的M行N列的二维矩阵;根据所述子矩阵的地址读取所述子矩阵的矩阵元素至所述运算模块中,一个运算模块对应一个子矩阵;根据所述矩阵运算指令控制所述运算模块对所述子矩阵进行矩阵运算,得到矩阵运算结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述子矩阵的地址读取至所述子矩阵的矩阵元素至所述运算模块中,包括:从所述子矩阵的地址中取出所述子矩阵的矩阵元素;将所述子矩阵中第m行、第n列的矩阵元素存入所述运算模块中第m行、第n列的运算单元中,所述m的取值为小于或等于M的正整数,所述n的取值为小于或等于N的正整数。3.根据权利要求2所述的方法,其特征在于,所述根据所述矩阵运算指令控制所述运算模块对所述子矩阵进行矩阵运算,包括:根据所述矩阵运算指令控制所述运算模块中的每一个运算单元对所述子矩阵执行乘累加运算或复数乘累加运算,所述运算单元包括以下至少一项:乘累加运算单元和复数乘累加运算单元。4.根据权利要求1-3所述的方法,其特征在于,若所述矩阵运算指令中还包括所述范例标识,所述方法还包括:通过所述范例标识对预先存储的范例表进行查询得到目标范例,所述目标范例用于指示所述待运算矩阵的矩阵元素的数据存储形式。5.根据权利要求4所述的方法,其特征在于,若所述矩阵运算指令中还包括第一指示,所述第一指示用于指示所述矩阵运算指令对应的循环次数。6.根据权利要求1-3所述的方法,其特征在于,所述矩阵运算指令中还包括第二指示,所述第二指示用于指示预处理和矩阵的转置,所述预处理包括:矩阵的取反和/或共轭。7.根据权利要求1-3所述的方法,其特征在于,若所述矩阵运算指令中还包括所述目的地址,所述方法还包括:将所述矩阵运算结果存储到所述目的地址中,所述目的地址为内存地址。8.根据权利要求1或2所述的方法,其特征在于,所述M的取值等于所述N的取值。9.一种运算装置,所述运算装置包括至少一个运算模块,每一个运算模块中包括(M*N)个运算单元,每一个运算模...

【专利技术属性】
技术研发人员:肖聪张争争陈铁王平吴正成
申请(专利权)人:上海华为技术有限公司
类型:发明
国别省市:

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

1