一种矩阵乘法加速装置及方法与流程

文档序号:33703811发布日期:2023-03-31 20:44阅读:69来源:国知局
一种矩阵乘法加速装置及方法与流程

1.本技术涉及计算机技术领域,特别涉及一种矩阵乘法加速装置及方法。


背景技术:

2.在深度神经网络的推理过程中,矩阵乘法是一个主要的运算类型,并且其他常见的算子类型也可以转换位矩阵乘法,例如,卷积运算,其可以通过img2col变换转换为矩阵乘法。从而矩阵乘法往往成为限制神经网络性能的瓶颈所在。
3.采用加速器辅助运算是当前常用的一种加速方式。现有的加速方式有完全舍弃矩阵乘法的方式和关闭部分乘累加树的方式;完全舍弃矩阵乘法的方式虽然可避免矩阵乘法的限制,但是需要设计专用的加法网络算法,无法部分现有的神经网络结构。关闭部分乘累加树的方式虽然在一定程度上节约了矩阵乘法的功耗,但是会降低矩阵乘法的处理速度,进而影响神经网络的处理速度。
4.因而现有技术还有待改进和提高。


技术实现要素:

5.本技术要解决的技术问题在于,针对现有技术的不足,提供一种矩阵乘法加速装置及方法,加速装置通过配置第一计算路径和第二计算路径,通过第一计算路径和第二计算路径可以直接进行矩阵计算也可以采用的低功耗方式进行矩阵计算,提高了矩阵乘法的灵活性,可以兼顾计算性能和计算功耗。
6.为了解决上述技术问题,本技术实施例第一方面提供了一种矩阵乘法加速装置,所述的装置包括:第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元;其中,所述第一控制开关、矩阵乘法单元以及第二控制开关依次连接形成第一计算路径;第一控制开关通过并行的左矩阵变换单元和右矩阵变换单元与矩阵乘法单元相连接,所述矩阵乘法单元通过第二控制开关与输出变换相连接以形成第二计算路径,所述第一计算路径用于直接进行矩阵乘法计算,所述第二计算路径用于采用预设计算方式进行矩阵乘法计算。
7.所述矩阵乘法加速装置,其中,所述预设计算方式包括strassen算法方式和/或winograd算法方式。
8.所述矩阵乘法加速装置,其中,所述左矩阵变换单元用于读取所述预设计算方式对应的左变换矩阵,并通过所述左变换矩阵对左矩阵进行矩阵变换,右矩阵变换单元用于读取所述预设计算方式对应的右变换矩阵,并通过所述右变换矩阵对右矩阵进行矩阵变换。
9.所述矩阵乘法加速装置,其中,所述左矩阵变换单元、所述右矩阵变换单元及所述输出矩阵变换单元均通过加法计算和移位计算进行矩阵变换。
10.所述矩阵乘法加速装置,其中,所述第一控制开关的工作状态与所述第二控制开关的工作状态相同,其中,当第一控制开关处于与左矩阵变换单元和右矩阵变换单元相连
通状态时,第二控制开关处于与输出矩阵变换单元相连通状态。
11.所述矩阵乘法加速装置,其中,所述第一控制开关和所述第二控制开关的工作状态均为基于矩阵乘法加速装置接收到的矩阵乘法对应的矩阵计算方式确定的。
12.本技术实施例第二方面提供了一种矩阵乘法加速方法,所述方法应用如上所述的矩阵乘法加速装置,所述方法包括:
13.获取待进行矩阵乘法的左矩阵和右矩阵以及矩阵计算方式;
14.根据所述矩阵计算方式配置所述第一控制开关和所述第二控制开关的工作状态,以启动所述矩阵计算模式对应的目标计算路径,其中,所述目标计算路径为第一计算路径或第二计算路径;
15.通过所述目标计算路径对所述左矩阵和右矩阵进行矩阵计算,以得到输出矩阵。
16.所述矩阵乘法加速方法,其中,所述通过所述目标计算路径对所述左矩阵和右矩阵进行矩阵计算,以得到输出矩阵具体包括:
17.当矩阵计算方式为直接计算方式时,通过第一计算路径对所述左矩阵和右矩阵进行矩阵计算,其中,所述第一计算路径的计算过程为:通过第一控制开关将左矩阵和右矩阵输入矩阵乘法单元,通过矩阵乘法单元计算得到输出矩阵;
18.当矩阵计算方式为预设计算方式时,通过第二计算路径对所述左矩阵和右矩阵进行矩阵计算,其中,所述第二计算路径的计算过程为:将左矩阵输入左矩阵变换单元以得到左变换矩阵,将右矩阵输入右矩阵变换单元以得到右变换矩阵;将左变换矩阵和右变换矩阵经过矩阵乘法单元进行计算后输入输出变换矩阵单元,通过输出矩阵变换单元转换得到输出矩阵。
19.本技术实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的矩阵乘法加速方法中的步骤。
20.本技术实施例第四方面提供了一种嵌入设备,其特征在于,所述嵌入设备配置有如上所述的矩阵乘法加速装置。
21.有益效果:与现有技术相比,本技术提供了一种矩阵乘法加速装置及方法,所述的装置包括:第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元;其中,所述第一控制开关、矩阵乘法单元以及第二控制开关依次连接形成第一计算路径;第一控制开关通过并行的左矩阵变换单元和右矩阵变换单元与矩阵乘法单元相连接,所述矩阵乘法单元通过第二控制开关与输出变换相连接以形成第二计算路径,所述第一计算路径用于直接进行矩阵乘法计算,所述第二计算路径用于采用预设计算方式进行矩阵乘法计算。本技术通过设置两路计算路径,可以根据矩阵乘法的计算方式对两路计算路径进行灵活切换,这样可以根据矩阵乘法的实际尺寸和部署神经网络模型的嵌入设备确定矩阵乘法的计算方法,然后根据计算方式自由切换矩阵乘法所采用的计算路径,这样可以根据待计算矩阵的矩阵尺寸灵活选取其对应的计算方法,兼顾了计算性能和计算功耗,提高了矩阵乘法加速器的灵活性。
附图说明
22.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的结构原理图。
23.图1为本技术提供的矩阵乘法加速装置的流程图。
24.图2为本技术提供的矩阵乘法加速方法的流程图。
具体实施方式
25.本技术提供一种矩阵乘法加速装置及方法,为使本技术的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
26.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
27.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
28.应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
29.经过研究发现,在深度神经网络的推理过程中,矩阵乘法是一个主要的运算类型,并且其他常见的算子类型也可以转换位矩阵乘法,例如,卷积运算,其可以通过img2col变换转换位矩阵乘法。从而矩阵乘法往往成为限制神经网络性能的瓶颈所在。
30.采用加速器辅助运算是当前常用的一种加速方式,其中,常见的加速器有完全舍弃矩阵乘法的方式和关闭部分乘累加树的方式;完全舍弃矩阵乘法的方式虽然可避免矩阵乘法的限制,但是需要设计专用的加法网络算法,无法部分现有的神经网络结构。关闭部分乘累加树的方式虽然在一定程度上节约了矩阵乘法的功耗,但是会降低矩阵乘法的处理速度,进而影响神经网络的处理速度。
31.为了解决上述问题,在本技术实施例提高了一种矩阵乘法加速装置,所述装置包括第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元;其中,所述第一控制开关、矩阵乘法单元以及第二控制开关依次连接形成第一计算路径;第一控制开关通过并行的左矩阵变换单元和右矩阵变换单元与矩阵乘法单元相连接,所述矩阵乘法单元通过第二控制开关与输出变换相连接以形成第二计算路径,所述第一计算路径用于直接进行矩阵乘法计算,所述第二计算路径用于采用预设计算方式进行矩阵乘法计算。本技术通过设置两路计算路径,可以根据矩阵乘法的计算方式对两路
计算路径进行灵活切换,这样可以根据矩阵乘法的实际尺寸和部署神经网络模型的嵌入设备确定矩阵乘法的计算方法,然后根据计算方式自由切换矩阵乘法所采用的计算路径,提高了矩阵乘法加速器的灵活性。由此,本实施例提供的矩阵乘法加速器可以适用不同矩阵乘法尺寸的深度神经网络,可以根据深度神经网络中的矩阵乘法的矩阵实际尺寸来动态控制矩阵乘法的计算模型,即可以选择直接进行矩阵计算,也可以采用strassen算法或winograd算法计算,兼顾了计算性能和计算功耗。
32.下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
33.本实施例提供了一种矩阵乘法加速装置,如图1所示,所述装置包括:第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元;左矩阵变换单元和右矩阵变换单元并联于第一控制快关和矩阵乘法单元之间,第二控制开关位于矩阵乘法单元和输出矩阵变换单元之间,其中,当第一控制开关处于未与左矩阵变换单元和右矩阵变换单元连通,第二控制开关处于未与矩阵变换单元连通时,第一控制开关、矩阵乘法单元以及第二控制开关形成第一计算路径。反之,当第一控制开关处于与左矩阵变换单元和右矩阵变换单元连通,第二控制开关处于与矩阵变换单元连通时,第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元形成第二计算路径。第一计算路径用于通过矩阵计算单元直接进行矩阵乘法,使得本实施例提供的加速装置可以适用于高性能要求的场景,第二计算路径用于通过左矩阵变换单元和右矩阵变换单元对待进行矩阵乘法的左矩阵和右矩阵进行矩阵变换,以减少矩阵计算过程中的乘法使用次数,从而可以降低矩阵乘法的功耗,使得本实施例提供的加速装置可以适用于低功耗要求的场景,提高了加速装置的灵活性,使得加速装置兼顾了性能和效率,对上层软件提供了更多的灵活性。
34.进一步,第一控制开关和第二控制开关用于切换第一计算路径和第二计算路径,其中,第一控制开关与左矩阵变换单元的连接状态、第一控制开关与右矩阵变换单元的连接状态以及第二控制开关与输出矩阵变换单元的连接状态相同。换句话说,当第一控制开关与左矩阵变换单元处于连接状态时,第一控制开关与右矩阵变换单元也处于连接状态,第二控制开关与输出矩阵变换单元也处于连接状态,本实施例提供的加速装置启动第二计算路径;反之,当第一控制开关与左矩阵变换单元处于未连接状态时,第一控制开关与右矩阵变换单元也处于未连接状态,第二控制开关与输出矩阵变换单元也处于未连接状态,本实施例提供的加速装置启动第一计算路径。
35.在一个实现方式中,所述第一控制开关和所述第二控制开关的工作状态均为基于矩阵乘法加速装置接收到的矩阵乘法对应的矩阵计算方式确定的。也就是说,在本实施例提供的加速装置进行矩阵乘法时,会有先确定矩阵乘法对应的矩阵计算方式,其中,矩阵计算方式包括直接进行矩阵计算和采用预设计算方式进行矩阵计算。在实际应用中,在基于矩阵乘法加速装置接收到的矩阵乘法对应的矩阵计算方式确定时,可以上层设备可以基于矩阵计算方式产生用于控制第一控制开关和第二控制开关的控制指令,并通过控制指令切换工作状态,以控制本实施例提供的加速装置处于第一计算路径和第二计算路径,当处于第一计算路径时,控制数据直接进入矩阵乘法单元,经过矩阵乘法单元后直接输出;当处于第二计算路径时,控制数据中的左矩阵进入左矩阵变换单元,右矩阵进入右矩阵变换单元,通过左矩阵变换单元和右矩阵变换单元后的数据进入矩阵乘法单元,经过矩阵乘法单元后
进入输出矩阵变换单元,通过输出矩阵变换单元进行矩阵变换后输出。
36.所述左矩阵变换单元用于读取所述预设计算方式对应的左变换矩阵,并通过所述左变换矩阵对左矩阵进行矩阵变换,右矩阵变换单元用于读取所述预设计算方式对应的右变换矩阵,并通过所述右变换矩阵对右矩阵进行矩阵变换。其中,所述左矩阵变换单元、所述右矩阵变换单元及所述输出矩阵变换单元均通过加法计算和移位计算进行矩阵变换。这是由于加法计算和位移计算先对于矩阵乘法计算而言,其功耗和面积开销均小于矩阵乘法,通过采用加法计算和移位计算的矩阵变换单元进行矩阵变换,将矩阵乘法中过的部分乘法转换为加法计算和位移计算,以减少需矩阵乘法单元执行的乘法数量,进而可以降低矩阵乘法计算的功耗。
37.进一步,预设计算方式对应的左变换矩阵、右变换矩阵和输出变换矩阵可以预先获取并存储在存储设备内,当需要获取左变换矩阵、右变换矩阵和输出变换矩阵时,直接从而存储设备中读取。此外,存储设备内可以预先存储多组变换矩阵,每组变换矩阵组均包括左变换矩阵、右变换矩阵和输出变换矩阵组,并且每组变换矩阵组均配置有计算方式和矩阵尺寸,在读取变换矩阵组时,可以通过计算方式和矩阵尺寸在多组变换矩阵组中选取所需要的变换矩阵组。
38.在一个实现方式中,预设计算方式可以为strassen算法方式、winograd算法方式,以及strassen算法方式和winograd算法方式,也就是说,第二计算路径可以仅用于strassen算法方式的矩阵计算,第二计算路径可以仅用于winograd算法方式的矩阵计算,或者第二计算路径既可以用于strassen算法方式的矩阵计算,可以用于winograd算法方式的矩阵计算。换句话说,存储设备中可以仅存储有winograd算法方式对应的变换矩阵组,也可以仅存储有strassen算法方式对应的变换矩阵组,还可以同时存储有winograd算法方式对应的变换矩阵组和strassen算法方式对应的变换矩阵组。此外,值得说明的是,预设计算方式还可以采用其他用于加速乘法矩阵的算法方法,只要该算法方式可以通过对数据进行矩阵变换,通过加法计算和位移计算替换部分乘法计算即可。本实施例预先设置了strassen算法方式和winograd算法方式的不同矩阵尺寸对应的变换矩阵,上层控制设备可以根据待计算矩阵的矩阵尺寸来确定所采用的矩阵计算方式,然后通过所采用过的矩阵计算方式控制加速装置启动相应的计算路径,这样使得加速装置可以使用不同矩阵尺寸的矩阵计算,从而提高了加速装置的灵活性。
39.对于矩阵a和矩阵b相乘得到矩阵c的正常过程为:
[0040][0041]
其中
[0042]
矩阵c可以通过下列公式求出:
[0043]c11
=a
11
·b1z
+a
12
·b21
[0044]c12
=a
11
·b12
+a
22
·b21
[0045]c21
=a
21
·b11
+a
22
·b21
[0046]c22
=a
21
·b12
+a
22
·b22
[0047]
对于上述矩阵a和矩阵b相乘得到矩阵c的过程,strassen算法方式的计算示例为:
[0048]
第一步计算:
[0049]
s1=b
12-b
22
[0050]
s2=a
11
+a
12
[0051]
s3=a
21
+a
22
[0052]
s4=b
21-b
11
[0053]
s5=a
11
+a
22
[0054]
s6=b
11
+b
22
[0055]
s7=a
12-a
22
[0056]
s8=b
21
+b
22
[0057]
s9=a
11-a
21
[0058]s10
=b
11
+b
12
[0059]
第二步计算:
[0060]
p1=a
11
·
s1=a
11
·b12-a
11
·b22
[0061]
p2=s2·b22
=a
11
·b22
+a
12
·b22
[0062]
p3=s3·b11
=a
21
·b11
+a
22
·b11
[0063]
p4=a
22
·
s4=a
22
·b21-a
22
·bu
[0064]
p5=s5·
s6=a
11
·b11
+a
11
·b22
+a
22
·b11
+a
22
·b22
[0065]
p6=s7·
s8=a
12
·b21
+a12
·b22-a
22
·b21-a
22
·b22
[0066]
p7=s9·s10
=a
11
·b11
+a
11
·b12-a
21
·b11-a
21
·b12
[0067]
第三步计算:
[0068]c11
=p5+p
4-p2+p6[0069]c12
=p1+p2[0070]c21
=p3+p4[0071]c22
=p5+p
1-p
3-p7[0072]
由上述计算过程可知,第一步、第二步和第三步可以表示为:
[0073][0074][0075][0076]
由此,可以将矩阵e、矩阵g和矩阵d作为一变换矩阵组,当预设计算方式为
strassen算法方式,矩阵维度为2*2时,可以直接读取将矩阵e、矩阵g和矩阵d构成的变换矩阵组。
[0077]
此外,由上述strassen算法方式计算过程可以得知,对于2*2矩阵乘法,strassen算法方式将矩阵乘法中的乘法个数由8次变换7次。那么,对于一个n*n矩阵和另一个n*n矩阵相乘的矩阵乘法计算,直接进行矩阵乘法的时间复杂度为:θ(n3),通过strassen算法方式的时间复杂度为那么,对于更高维度的矩阵乘法,strassen算法可显著降低乘法的次数,其中,维度与算法次数如表1所示。
[0078]
表1维度与算法次数对应关系
[0079][0080]
对于2*3的矩阵和3*1矩阵相乘的过程可描述为:
[0081][0082][0083][0084]
对于上述2*3的矩阵和3*1矩阵相乘,通过winograd算法方式可以表示为:
[0085]
[0086][0087][0088]
由此,可以将矩阵k、矩阵l和矩阵o作为一变换矩阵组,当预设计算方式为winograd算法方式,矩阵维度为2*3矩阵与3*1矩阵时,可以直接读取将矩阵k、矩阵k和矩阵o构成的变换矩阵组。
[0089]
此外,由上述winograd算法方式计算过程可以得知,winograd算法方式将矩阵乘法中的乘法个数由6次变换4次。
[0090]
又如,对一个矩阵大小为4x4的输入,卷积核大小为3x3,对应的输出为2x2,正常计算的情况下,使用im2col加速方法的乘法次数为2x2x3x3=36次,而当使用winograd算法方式时,对应的乘法次数为(2+3-1)x(2+3-1)=16,可以看到乘法次数明显减少,加速效果明显。此外,由于winograd算法方式的变换矩阵组可以看出,winograd算法方式使用了位移计算,位移计算的消耗相对于乘法的消耗也减少了消耗,从而winograd算法方式可以减少矩阵乘法的消耗。
[0091]
在一个实现方式中,矩阵乘法单元采用乘法累加树的结构,通过乘法累加树直接进行矩阵计算,或者通过乘法累加树对矩阵变换后的矩阵进行矩阵计算。其中,乘法累加树的结构可以采用mac阵列或者脉动阵列的矩阵乘计算单元等。
[0092]
此外,为了进一步说明本实施例提供的矩阵乘法加速装置,下面给出以2*2*2的矩阵乘法采用strassen算法方式为例进行说明。
[0093]
首先,根据strassen算法方式控制第一控制开关连通左矩阵变换单元和右矩阵变换单元,第二控制开关连通输出矩阵变换单元;并根据strassen算法方式以及矩阵维度2*2*2,读取变换矩阵组,其中,左矩阵变换单元加载矩阵g,右矩阵变换单元加载矩阵d,输出矩阵变换单元加载矩阵e,g、d和e分别为:
[0094][0095]
其次,左矩阵变换单元基于矩阵g对左矩阵进行变换,右矩阵变换单元基于矩阵d对左矩阵进行变换,其中,左矩阵变换和右矩阵变换分别为:
[0096]
[0097][0098]
再次,矩阵乘法单元对变换后的左矩阵和右矩阵进行点乘,其中,点乘过程为:
[0099][0100]
p1=a
11
·
s1=a
11
·b12-a
11
·b22
[0101]
p2=s2·b22
=a
11
·b22
+a
12
·b22
[0102]
p3=s3·b11
=a
21
·b11
+a
22
·b11
[0103]
p4=a
22
·
s4=a
22
·b21-a
22
·b11
[0104]
p5=s5·
s6=a
11
·b11
+a
11
·b22
+a
22
·b11
+a
22
·b22
[0105]
p6=s7·
s8=a
12
·b21
+a12
·b22-a
22
·b21-a
22
·b22
[0106]
p7=s9·s10
=a
11
·b11
+a11
·b12-a
21
·b11-a
21
·b12
[0107]
最后,输出变换矩阵对点乘后得到的点乘矩阵进行矩阵变换,得到计算结果,计算结果为:
[0108][0109]
综上所述,本实施例提供了一种矩阵乘法加速装置,所述的装置包括:第一控制开关、左矩阵变换单元、右矩阵变换单元、矩阵乘法单元、第二控制开关以及输出矩阵变换单元;其中,所述第一控制开关、矩阵乘法单元以及第二控制开关依次连接形成第一计算路径;第一控制开关通过并行的左矩阵变换单元和右矩阵变换单元与矩阵乘法单元相连接,所述矩阵乘法单元通过第二控制开关与输出变换相连接以形成第二计算路径,所述第一计算路径用于直接进行矩阵乘法计算,所述第二计算路径用于采用预设计算方式进行矩阵乘法计算。本技术通过设置两路计算路径,可以根据矩阵乘法的计算方式对两路计算路径进行灵活切换,这样可以根据矩阵乘法的实际尺寸和部署神经网络模型的嵌入设备确定矩阵乘法的计算方法,然后根据计算方式自由切换矩阵乘法所采用的计算路径,提高了矩阵乘法加速器的灵活性。
[0110]
基于上述矩阵乘法加速装置,本实施例提供了一种矩阵乘法加速方法,所述方法应用上述实施例所述的矩阵乘法加速装置,如图2所示,所述方法包括:
[0111]
s10、获取待进行矩阵乘法的左矩阵和右矩阵以及矩阵计算方式,其中,所述矩阵计算方式根据所述左矩阵和所述右矩阵的矩阵尺寸确定的;
[0112]
s20、根据所述矩阵计算方式配置所述第一控制开关和所述第二控制开关的工作
状态,以启动所述矩阵计算模式对应的目标计算路径,其中,所述目标计算路径为第一计算路径或第二计算路径;
[0113]
s30、通过所述目标计算路径对所述左矩阵和右矩阵进行矩阵计算,以得到输出矩阵。
[0114]
在一个实现方式中,所述通过所述目标计算路径对所述左矩阵和右矩阵进行矩阵计算,以得到输出矩阵具体包括:
[0115]
当矩阵计算方式为直接计算方式时,通过第一计算路径对所述左矩阵和右矩阵进行矩阵计算,其中,所述第一计算路径的计算过程为:通过第一控制开关将左矩阵和右矩阵输入矩阵乘法单元,通过矩阵乘法单元计算得到输出矩阵;
[0116]
当矩阵计算方式为预设计算方式时,通过第二计算路径对所述左矩阵和右矩阵进行矩阵计算,其中,所述第二计算路径的计算过程为:将左矩阵输入左矩阵变换单元以得到左变换矩阵,将右矩阵输入右矩阵变换单元以得到右变换矩阵;将左变换矩阵和右变换矩阵经过矩阵乘法单元进行计算后输入输出变换矩阵单元,通过输出矩阵变换单元转换得到输出矩阵。
[0117]
本实施例提供的加速方法通过采用上述实施例的加速装置,在进行矩阵乘法时,可以根据矩阵乘法的矩阵尺寸确定矩阵乘法的矩阵计算方式(例如,对于n*n矩阵乘法可以采用strassen算法方式等),以实现了矩阵乘法的计算方式的灵活切换,使得加速方法兼顾了计算性能和计算功耗,为上层软件提供了更多的灵活性。
[0118]
基于上述矩阵乘法加速方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的矩阵乘法加速方法中的步骤。
[0119]
基于上述矩阵乘法加速方法,本技术还提供了一种嵌入式设备,所述嵌入式设备配置如上所述的矩阵乘法的加速装置。
[0120]
此外,上述方法由上述装置所执行,方法的执行过程已经在装置中对各单元模块的说明中进行经详细说明,在这里不再一一陈述;上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里也不再一一陈述。
[0121]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1