CN107368459B - 基于任意维数矩阵乘法的可重构计算结构的调度方法 - Google Patents
基于任意维数矩阵乘法的可重构计算结构的调度方法 Download PDFInfo
- Publication number
- CN107368459B CN107368459B CN201710489338.1A CN201710489338A CN107368459B CN 107368459 B CN107368459 B CN 107368459B CN 201710489338 A CN201710489338 A CN 201710489338A CN 107368459 B CN107368459 B CN 107368459B
- Authority
- CN
- China
- Prior art keywords
- matrix
- calculation
- scheduling
- dimension
- matrix multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本发明属于矩阵计算技术领域,尤其涉及基于任意维数矩阵乘法的可重构计算结构的调度方法,其采用的任意维数矩阵乘法的可重构计算结构由处理单元、接口控制器及调度模块、存储模块构成,包括:将处理单元互连,并与接口控制器构成一个可重构处理阵列;调度模块设计调度机制,生成配置信息并下发至可重构处理阵列;构建满足当前维数矩阵乘法的计算结构;基于构建的计算结构,根据调度机制为处理单元分发计算数据,进行矩阵乘法计算;将矩阵乘法计算的结果通过接口控制器返回至存储模块。本发明以固定处理单元可重构的方式,实现任意维数矩阵乘法计算,提高矩阵乘法计算的灵活性。
Description
技术领域
本发明属于矩阵计算技术领域,尤其涉及基于任意维数矩阵乘法的可重构计算结构的调度方法。
背景技术
矩阵乘法是科学计算中最基本的操作,广泛应用于各种电路计算中,如数字通信领域的DCM变换、矩阵求逆以及图像处理中的3D变换等。给定矩阵乘法C=AB,其中C={cij}是M×N维矩阵,A={aij}是M×K维矩阵,B={bij}是K×N维矩阵,则cij可以表示为:
由于矩阵乘法计算复杂性较高(通常为O(n3)),其计算性能往往直接影响到系统的整体性能。然而早期的矩阵乘法多用处理器串行计算来实现,随着矩阵维数的增加,计算量急剧上升,严重制约了计算速度。基于硬件实现的大维数矩阵乘法能够充分发挥硬件的速度,但是大维数矩阵乘法对计算资源和存储空间要求较高,已有的高性能矩阵乘法并行结构设计需要构建复杂的并行模型,并实现与之对应的专有并行化结构,消耗资源较多,但是复用性与扩展性均不理想,难以实现变维数矩阵的乘法计算;而使用较通用的线性阵列来实现乘法的设计执行时间复杂度较高,无法充分挖掘乘法计算中的数据并行性;基于分块矩阵计算的乘法方法能够实现任意维数矩阵的乘法计算,但是目前的实现方法对乘法计算内在的行化与流水化特征利用不足,导致计算效率提高困难。
可重构计算以其兼顾通用处理器(GPP)的灵活和专用集成电路(ASIC)的高效,在数值线性计算、数字信号处理、生物信息学及网络通信与信息安全等一些领域中被广泛设计与应用。可重构计算正在成为加速科学计算的一种非常重要的选择。将可重构计算应用于矩阵的乘法,针对任意维数矩阵,通过快速重构具有不同计算功能处理单元的方式实现矩阵的乘法,不仅能够使系统具有计算可变维数矩阵乘法的灵活性,同时能够充分挖掘计算过程中的并行性与流水性,从而大幅提高系统的计算效率。
发明内容
本发明的目的在于克服上述矩阵乘法的不足,提供基于任意维数矩阵乘法的可重构计算结构的调度方法,以提高矩阵乘法计算的灵活性,适应不同的应用场景。
为了实现上述目的,本发明采用以下技术方案:
基于任意维数矩阵乘法的可重构计算结构的调度方法,其采用的任意维数矩阵乘法的可重构计算结构由处理单元、调度模块、接口控制器及存储模块构成;
处理单元对输入的任意维数矩阵进行乘法计算,所述处理单元为乘累加器和加法器,乘累加器和加法器分别简称为PE1和PE2,1个PE1或PE2完成1次计算的时间定义为1个PE1或PE2计算周期;
调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至接口控制器;
接口控制器接收调度模块下发的配置信息及存储模块下发的待乘的任意维数矩阵,并根据调度模块下发的配置信息构建计算结构及为处理单元分发待乘的任意维数矩阵;
存储模块下发待乘的任意维数矩阵至接口控制器,并接收处理单元输出的任意维数矩阵乘法的计算结果;
基于所述任意维数矩阵乘法的可重构计算结构,实现任意维数矩阵乘法调度,包括以下步骤:
步骤1:将处理单元互连,并与接口控制器构成一个可重构处理阵列;
步骤2:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至可重构处理阵列;
步骤3:接口控制器接收调度模块下发的配置信息,根据配置信息配置处理单元之间的互连关系,构建满足当前维数矩阵乘法的计算结构;
步骤4:基于构建的计算结构,存储模块将待乘的任意维数矩阵作为计算数据,下发到可重构处理阵列中的接口控制器,接口控制器根据调度模块的调度机制为处理单元分发计算数据,进行矩阵乘法计算;
步骤5:将矩阵乘法计算的结果通过接口控制器返回至存储模块。
优选地,所述任意维数矩阵为1个以上M行K列矩阵、K行N列矩阵对,定义C矩阵为1个M行K列矩阵、K行N列矩阵对的矩阵乘计算结果,则C矩阵为M行N列矩阵。
优选地,所述步骤2包括:
步骤2.1:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制:
若有1个PE1可用,则调度模块设计串行调度机制:通过PE1依次计算C矩阵的第L行或第L列的元素,依次计算C矩阵的第L+1行或第L+1列的元素,按照上述计算顺序进行C矩阵的计算;
若可用的PE1数目大于1且小于M*N/2,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列所有元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N/2且小于M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列部分元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N且小于2M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列一个元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于2M*N,可用的PE2数目大于或等于M*N,则调度模块设计并行调度机制:将C矩阵一行或一列中一个元素的计算分成并行的p部分,一个PE1负责其中一部分的计算,并将p部分的计算结果由PE2求和并输出;
步骤2.2:调度模块根据调度机制生成配置信息,并下发至可重构处理阵列。
与现有技术相比,本发明具有的有益效果:
1.本发明能够以固定处理单元可重构的方式构建任意维数矩阵乘法的计算结构,具有较大的灵活性;
2.本发明能够基于相同可用的计算资源,通过合理的资源调度,重构实现不同维数矩阵乘法的计算结构,能够以相同可用的计算资源,满足不同应用场景下,不同维数矩阵乘法计算的需求;
3.本发明能够通过合理分割当前可用计算资源,并行实现多个不同维数矩阵乘法的计算结构重构,能够适应多任务并行化处理需求;
4.本发明能够基于不同可用的计算资源,以不同的配置方式,构建同一维数矩阵的、具有不同计算效率的矩阵乘法计算结构,满足不同应用场景下矩阵乘法的计算性能需求;
5.本发明能够充分利用矩阵乘法计算过程可并行计算的特点,通过处理单元的合理调度,不仅能够实现不同维数矩阵乘法计算,而且能够有效提高矩阵乘法的计算效率;
6.本发明的基本运算单元实现较为简单,所需资源量较少,具有较好的可扩展性,可以通过配置信息和调度机制满足不同维数的性能需求。
附图说明
图1为本发明基于任意维数矩阵乘法的可重构计算结构的调度方法的基本流程示意图。
图2为本发明基于任意维数矩阵乘法的可重构计算结构的调度方法的结构示意图。
图3为本发明基于任意维数矩阵乘法的可重构计算结构的调度方法的基于单个PE1串行完成矩阵乘法的流程示意图。
图4为本发明基于任意维数矩阵乘法的可重构计算结构的调度方法的基于多个PE1并行完成矩阵乘法的流程示意图。
图5为本发明基于任意维数矩阵乘法的可重构计算结构的调度方法的基于多个PE1与PE2并行完成矩阵乘法的流程示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1、2所示,本发明的一种基于任意维数矩阵乘法的可重构计算结构的调度方法,其采用的任意维数矩阵乘法的可重构计算结构由处理单元、调度模块、接口控制器及存储模块构成;
处理单元对输入的任意维数矩阵进行乘法计算,所述处理单元为乘累加器和加法器,乘累加器和加法器分别简称为PE1和PE2,1个PE1或PE2完成1次计算的时间定义为1个PE1或PE2计算周期;
调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至接口控制器;
接口控制器接收调度模块下发的配置信息及存储模块下发的待乘的任意维数矩阵,并根据调度模块下发的配置信息构建计算结构及为处理单元分发待乘的任意维数矩阵;
存储模块下发待乘的任意维数矩阵至接口控制器,并接收处理单元输出的任意维数矩阵乘法的计算结果;
基于所述任意维数矩阵乘法的可重构计算结构,实现任意维数矩阵乘法调度,包括以下步骤:
步骤S11:将处理单元互连,并与接口控制器构成一个可重构处理阵列;
步骤S12:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至可重构处理阵列;
步骤S13:接口控制器接收调度模块下发的配置信息,根据配置信息配置处理单元之间的互连关系,构建满足当前维数矩阵乘法的计算结构;
步骤S14:基于构建的计算结构,存储模块将待乘的任意维数矩阵作为计算数据,下发到可重构处理阵列中的接口控制器,接口控制器根据调度模块的调度机制为处理单元分发计算数据,进行矩阵乘法计算;
步骤S15:将矩阵乘法计算的结果通过接口控制器返回至存储模块。
实施例二:
如图2-5所示,本发明的另一种基于任意维数矩阵乘法的可重构计算结构的调度方法,其采用的任意维数矩阵乘法的可重构计算结构由处理单元、调度模块、接口控制器及存储模块构成;
处理单元对输入的任意维数矩阵进行乘法计算,所述处理单元为乘累加器和加法器,乘累加器和加法器分别简称为PE1和PE2,1个PE1或PE2完成1次计算的时间定义为1个PE1或PE2计算周期;
调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至接口控制器;
接口控制器接收调度模块下发的配置信息及存储模块下发的待乘的任意维数矩阵,并根据调度模块下发的配置信息构建计算结构及为处理单元分发待乘的任意维数矩阵;
存储模块下发待乘的任意维数矩阵至接口控制器,并接收处理单元输出的任意维数矩阵乘法的计算结果;
基于所述任意维数矩阵乘法的可重构计算结构,实现任意维数矩阵乘法调度,包括以下步骤:
步骤S21:将处理单元互连,并与接口控制器构成一个可重构处理阵列;
步骤S22:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至可重构处理阵列,包括:
步骤S221:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制:
若有1个PE1可用,假设输入一个M行K列矩阵A,矩阵元素表示为aij(i=1,2,…,M,j=1,2,…,K),K行N列矩阵B,矩阵元素表示为bij(i=1,2,…,K,j=1,2,…,N),且矩阵C=AB,则C矩阵为M行N列矩阵,矩阵元素表示为cij(i=1,2,…,M,j=1,2,…,N),则调度模块设计串行调度机制:
通过PE1依次计算C矩阵的第L行或第L列的元素,依次计算C矩阵的第L+1行或第L+1列的元素,按照上述计算顺序进行C矩阵的计算;
通过PE1依次计算C矩阵任意行或列的元素的计算公式为:
其中,i=1,2,…,M,j=1,2,…,N;
若可用的PE1数目大于1且小于M*N/2,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列所有元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N/2且小于M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列部分元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N且小于2M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列一个元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于2M*N,可用的PE2数目大于或等于M*N,则调度模块设计并行调度机制:将C矩阵一行或一列中一个元素的计算分成并行的p部分,一个PE1负责其中一部分的计算,并将p部分的计算结果由PE2求和并输出;
元素cij(i=1,2,…,M;j=1,2,…,N)的计算过程可以分解为p个并行部分:
…
则元素cij的计算结果表示为:
步骤S222:调度模块根据调度机制生成配置信息,并下发至可重构处理阵列;
步骤S23:接口控制器接收调度模块下发的配置信息,根据配置信息配置处理单元之间的互连关系,构建满足当前维数矩阵乘法的计算结构;
步骤S24:基于构建的计算结构,存储模块将待乘的任意维数矩阵作为计算数据,下发到可重构处理阵列中的接口控制器,接口控制器根据调度模块的调度机制为处理单元分发计算数据,进行矩阵乘法计算;
步骤S25:将矩阵乘法计算的结果通过接口控制器返回至存储模块。
作为一种可实施方式,待乘的任意维数矩阵为1个4×4维、4×4维矩阵对,即A矩阵和B矩阵均为4×4维矩阵,则C矩阵为4×4维矩阵,亦即M、K、N均为4;
(1)若有1个PE1可用,且待乘的两个矩阵均为4×4维矩阵,则调度模块设计串行调度机制并生成对应配置信息,即PE1依次计算C矩阵1至4行的所有元素或PE1依次计算C矩阵1至4列的所有元素;
调度模块设计串行调度机制进行矩阵乘法计算,1个PE1依次对C矩阵1至4行或1至4列的元素进行计算,以按行计算为例,如图3所示:
将1个4×4维、4×4维矩阵对数据作为输入的待乘矩阵数据;
1个PE1依次计算C矩阵的第1行的4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程;若否,则继续进行当前行其他元素的计算;
1个PE1依次计算C矩阵的第2行的4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程;若否,则继续进行当前行其他元素的计算;
1个PE2依次计算C矩阵的第3行的4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程;若否,则继续进行当前行其他元素的计算;
1个PE2依次计算C矩阵的第4行的4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程,共需43个PE1计算周期;若否,则继续进行当前行其他元素的计算;
(2)若有8个PE1可用,且待乘的矩阵为1个4×4维、4×4维矩阵对,则调度模块设计并行调度机制并生成对应配置信息,即1个PE1负责C矩阵1行或1列2个元素的计算,8个PE1并行计算C矩阵1至4行的8个元素或C矩阵1至4列的8个元素;
调度模块设计并行调度机制进行矩阵乘法计算,8个PE1并行对C矩阵1至4行或1至4列的元素进行计算,以按行处理为例,如图4所示:
将1个4×4维、4×4维矩阵对数据作为输入的待乘矩阵数据;
8个PE1分别读取相关数据、并行计算C矩阵的1至4行的第1个和第2个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程;若否,则继续进行当前行其他元素的计算;
8个PE1分别并行计算C矩阵的1至4行的第3个和第4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程,共需8个PE1计算周期;若否,则继续进行当前行其他元素的计算;
(3)若有32个PE1可用,16个PE2可用,且待乘的矩阵为1个4×4维、4×4维矩阵对,则调度模块通过并行调度机制生成对应配置信息,即将C矩阵1个元素的计算分成并行的两部分,2个PE1负责C矩阵1个元素的计算,1个PE2对2个PE1的并行计算结果进行求和;
调度模块设计并行调度机制进行矩阵乘法计算,32个PE1、16个PE2并行对C矩阵1至4行或1至4列的元素进行计算,以按行处理为例,如图5所示:
将1个4×4维、4×4维矩阵对数据作为输入的待乘矩阵数据;
将32个PE1、16个PE2分成16组,对C矩阵的16个元素进行并行计算,即2个PE1、1个PE2负责1个元素的计算,将C矩阵1个元素的计算分成并行计算的两部分,读取相关数据进行元素当前部分的计算;
判断元素当前部分的计算是否完成,若是,则将元素当前部分的计算结果传输至PE2;若否,则继续进行元素当前部分的计算;
PE2对任意1个元素的两个并行当前部分的计算结果进行求和并将计算结果进行存储;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程,共需2个PE1和1个PE2计算周期;若否,则继续进行当前行其他元素的计算。
作为一种可实施方式,待乘的任意维数矩阵为2个4×4维、4×4维矩阵对,则对于每1个4×4维、4×4维矩阵对,M、K、N均为4;若有16个PE1可用,则将16个PE1分成两组,每8个PE1处理1个4×4维、4×4维矩阵对,16个PE1对2个4×4维、4×4维矩阵对的处理过程等同于两组同时进行的8个PE1处理1个4×4维、4×4维矩阵对的过程。
作为一种可实施方式,待乘的任意维数矩阵为1个4×4维、4×4维矩阵对,M、K、N均为4;若有1个PE1可用,则调度模块设计串行调度机制进行矩阵乘法计算,以按行计算为例:
将1个4×4维、4×4维矩阵对数据作为输入的待乘矩阵数据;
1个PE1依次计算C矩阵的第1行的4个元素;
判断当前元素的计算是否完成,若是,则将当前元素的计算结果进行存储;若否,则继续进行当前元素的计算;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程;若否,则继续进行当前行其他元素的计算;
若PE1计算完C矩阵的第1行的4个元素后,可用的PE1和PE2分别为32和16,则将其中24个PE1、12个PE2分成12组,对C矩阵第2至第4行的12个元素进行并行计算,即2个PE1、1个PE2负责1个元素的计算,将C矩阵1个元素的计算分成并行计算的两部分,读取相关数据进行元素当前部分的计算;
判断元素当前部分的计算是否完成,若是,则将元素当前部分的计算结果传输至PE2;若否,则继续进行元素当前部分的计算;
PE2对任意1个元素的两个并行当前部分的计算结果进行求和并将计算结果进行存储;
判断当前行所有元素的计算是否完成,若是,则结束整个计算过程,共需2个PE1和1个PE2计算周期;若否,则继续进行当前行其他元素的计算。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (1)
1.基于任意维数矩阵乘法的可重构计算结构的调度方法,其特征在于,其采用的任意维数矩阵乘法的可重构计算结构由处理单元、调度模块、接口控制器及存储模块构成;
处理单元对输入的任意维数矩阵进行乘法计算,所述处理单元为乘累加器和加法器,乘累加器和加法器分别简称为PE1和PE2,1个PE1或PE2完成1次计算的时间定义为1个PE1或PE2计算周期;
调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至接口控制器;
接口控制器接收调度模块下发的配置信息及存储模块下发的待乘的任意维数矩阵,并根据调度模块下发的配置信息构建计算结构及为处理单元分发待乘的任意维数矩阵;
存储模块下发待乘的任意维数矩阵至接口控制器,并接收处理单元输出的任意维数矩阵乘法的计算结果;
所述任意维数矩阵为1个以上M行K列矩阵、K行N列矩阵对,定义C矩阵为1个M行K列矩阵、K行N列矩阵对的矩阵乘计算结果,则C矩阵为M行N列矩阵;
基于所述任意维数矩阵乘法的可重构计算结构,实现任意维数矩阵乘法调度,包括以下步骤:
步骤1:将处理单元互连,并与接口控制器构成一个可重构处理阵列;
步骤2:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制,生成配置信息并下发至可重构处理阵列;
所述步骤2包括:
步骤2.1:调度模块根据当前可用的处理单元数目、矩阵乘法计算性能需求及待乘矩阵维数,设计调度机制:
若有1个PE1可用,则调度模块设计串行调度机制:通过PE1依次计算C矩阵的第L行或第L列的元素,依次计算C矩阵的第L+1行或第L+1列的元素,按照上述计算顺序进行C矩阵的计算;
若可用的PE1数目大于1且小于M*N/2,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列所有元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N/2且小于M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列部分元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于M*N且小于2M*N,则调度模块设计并行调度机制:一个PE1负责C矩阵一行或一列一个元素的计算,所有PE1并行计算C矩阵M行或N列的元素;
若可用的PE1数目大于或等于2M*N,可用的PE2数目大于或等于M*N,则调度模块设计并行调度机制:将C矩阵一行或一列中一个元素的计算分成并行的p部分,一个PE1负责其中一部分的计算,并将p部分的计算结果由PE2求和并输出;
步骤2.2:调度模块根据调度机制生成配置信息,并下发至可重构处理阵列;
步骤3:接口控制器接收调度模块下发的配置信息,根据配置信息配置处理单元之间的互连关系,构建满足当前维数矩阵乘法的计算结构;
步骤4:基于构建的计算结构,存储模块将待乘的任意维数矩阵作为计算数据,下发到可重构处理阵列中的接口控制器,接口控制器根据调度模块的调度机制为处理单元分发计算数据,进行矩阵乘法计算;
步骤5:将矩阵乘法计算的结果通过接口控制器返回至存储模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710489338.1A CN107368459B (zh) | 2017-06-24 | 2017-06-24 | 基于任意维数矩阵乘法的可重构计算结构的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710489338.1A CN107368459B (zh) | 2017-06-24 | 2017-06-24 | 基于任意维数矩阵乘法的可重构计算结构的调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368459A CN107368459A (zh) | 2017-11-21 |
CN107368459B true CN107368459B (zh) | 2021-01-22 |
Family
ID=60306384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710489338.1A Active CN107368459B (zh) | 2017-06-24 | 2017-06-24 | 基于任意维数矩阵乘法的可重构计算结构的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368459B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491416B (zh) * | 2017-08-31 | 2020-10-23 | 中国人民解放军信息工程大学 | 适用于任意维数卷积需求的可重构计算结构及计算调度方法和装置 |
CN108153709A (zh) * | 2017-12-12 | 2018-06-12 | 中国人民解放军战略支援部队信息工程大学 | 一种任意点数fft的可重构计算结构的调度方法 |
CN108090029B (zh) * | 2018-01-04 | 2021-11-05 | 天津芯海创科技有限公司 | 矩阵求逆中的算粒调度装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089840A (zh) * | 2007-07-12 | 2007-12-19 | 浙江大学 | 基于多fpga的矩阵乘法并行计算系统 |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
CN102929842A (zh) * | 2012-10-23 | 2013-02-13 | 南京航空航天大学 | 基于fpaa的可重构矢量-矩阵乘法器设计方法 |
CN103927290A (zh) * | 2014-04-18 | 2014-07-16 | 南京大学 | 一种任意阶下三角复矩阵求逆运算方法 |
CN103970720A (zh) * | 2014-05-30 | 2014-08-06 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN104112053A (zh) * | 2014-07-29 | 2014-10-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种面向图像处理的可重构架构平台设计方法 |
-
2017
- 2017-06-24 CN CN201710489338.1A patent/CN107368459B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089840A (zh) * | 2007-07-12 | 2007-12-19 | 浙江大学 | 基于多fpga的矩阵乘法并行计算系统 |
CN101782893A (zh) * | 2009-01-21 | 2010-07-21 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
CN102929842A (zh) * | 2012-10-23 | 2013-02-13 | 南京航空航天大学 | 基于fpaa的可重构矢量-矩阵乘法器设计方法 |
CN103927290A (zh) * | 2014-04-18 | 2014-07-16 | 南京大学 | 一种任意阶下三角复矩阵求逆运算方法 |
CN103970720A (zh) * | 2014-05-30 | 2014-08-06 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN104112053A (zh) * | 2014-07-29 | 2014-10-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种面向图像处理的可重构架构平台设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107368459A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934481B2 (en) | Matrix multiplier | |
CN107341133B (zh) | 基于任意维数矩阵lu分解的可重构计算结构的调度方法 | |
US10810484B2 (en) | Hardware accelerator for compressed GRU on FPGA | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
US10698657B2 (en) | Hardware accelerator for compressed RNN on FPGA | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN107633297B (zh) | 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN107491416B (zh) | 适用于任意维数卷积需求的可重构计算结构及计算调度方法和装置 | |
CN103927290A (zh) | 一种任意阶下三角复矩阵求逆运算方法 | |
TW200414023A (en) | Method and system for performing a calculation operation and a device | |
CN107368459B (zh) | 基于任意维数矩阵乘法的可重构计算结构的调度方法 | |
CN103970720A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN112836813A (zh) | 一种用于混合精度神经网络计算的可重构脉动阵列系统 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN111488963B (zh) | 神经网络计算装置和方法 | |
CN115238863A (zh) | 一种卷积神经网络卷积层的硬件加速方法、系统及应用 | |
CN111079908B (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
CN113032723B (zh) | 一种矩阵乘法器的实现方法及矩阵乘法器装置 | |
WO2023065701A1 (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
WO2020059156A1 (en) | Data processing system, method, and program | |
CN111078624A (zh) | 片上网络处理系统和片上网络数据处理方法 | |
Batra | Coprocessor design for high speed multiplication | |
CN111222632B (zh) | 计算装置、计算方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |