浮点矩阵求逆的并行硬件架构和并行计算方法

文档序号:10655041阅读:301来源:国知局
浮点矩阵求逆的并行硬件架构和并行计算方法
【专利摘要】本发明实施例公开了浮点矩阵求逆的并行硬件架构,用于解决现有矩阵运算通过硬件实现时矩阵维数固定的问题。本发明实施例中一种浮点矩阵求逆的并行硬件架构包括:矩阵写入模块,用于将增广矩阵的矩阵数据写入第一存储器和第二存储器中,第一存储器和第二存储器为矩阵数据动态分配存储空间;初始主元定位模块,用于定位增广矩阵的初始主元行;行交换模块,用于将增广矩阵的首行与主元行进行交换;行消除模块,用于进行归一化和行消除计算,并定位下一主元行;触发模块,用于反复交替触发行交换模块和行消除模块,直到第一存储器中存储的待求逆矩阵成为单位矩阵时,输出第二存储器中的矩阵数据。本发明实施例还提供浮点矩阵求逆的并行计算方法。
【专利说明】
浮点矩阵求逆的并行硬件架构和并行计算方法
技术领域
[0001] 本发明设及数字电路领域,尤其设及浮点矩阵求逆的并行硬件架构和并行计算方 法。
【背景技术】
[0002] 矩阵运算是科学计算领域中的一个重要方面,科学计算中的核屯、问题往往是求解 一系列大型线性方程组,运些线性方程组的求解是解决整个问题的基础和核屯、,其计算量 占整个系统计算量的比重很高,而引入矩阵理论来处理和解决科学研究和工程技术上的方 程组求解问题已经很普遍,不仅为矩阵理论和方法开辟了广阔的研究前景,也使科学与工 程技术的研究发生新的变化,开拓新的研究途径。矩阵运算已成为众多学科领域的数学工 具,它不仅在数值分析、最优化方法、数学模型等数学分支上有极其重要的应用,还在信号 处理、图像处理、通信技术等科学领域中广泛应用。矩阵求逆是矩阵运算中重要的运算,如 何有效的完成矩阵求逆也是数学领域的热点研究。
[0003] 目前大部分矩阵运算都是利用软件来实现,但是随着矩阵维数的增长,软件处理 的速度也会大幅度变慢。矩阵运算的硬件实现能够充分发挥硬件的速度和并行性,目前公 开的设计中大部分都是固定维数的矩阵运算,尚无法完成任意维矩阵的硬件实现,尤其是 大规模的矩阵求逆的硬件设计。

【发明内容】

[0004] 本发明实施例提供了浮点矩阵求逆的并行硬件架构和并行计算方法,能够解决现 有矩阵运算通过硬件实现时矩阵维数固定的问题。
[0005] 本发明实施例提供的一种浮点矩阵求逆的并行硬件架构,包括:
[0006] 矩阵写入模块,用于将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其 中,所述第一存储器中写入所述增广矩阵中的待求逆矩阵,所述第二存储器中写入所述增 广矩阵中的单位矩阵,所述第一存储器和第二存储器为所述矩阵数据动态分配存储空间;
[0007] 初始主元定位模块,用于定位所述增广矩阵的初始主元行;
[000引行交换模块,用于将所述增广矩阵的首行与主元行进行交换,第一次交换时,所述 主元行为所述初始主元行;
[0009] 行消除模块,用于对行交换后的所述增广矩阵进行归一化和行消除计算,并定位 下一主元行;
[0010] 触发模块,用于反复交替触发所述行交换模块和行消除模块,直到所述第一存储 器中存储的所述待求逆矩阵成为单位矩阵时,输出所述第二存储器中的矩阵数据。
[0011] 可选地,还包括动态存储分配模块,用于在所述矩阵写入模块将增广矩阵的矩阵 数据写入第一存储器和第二存储器时,为所述矩阵数据动态分配存储空间;
[0012] 所述动态存储分配模块包括:
[0013] 行分配单元,用于根据所述矩阵数据的大小将存储空间划分为m个离散块,每块所 述离散块存储一行矩阵数据,所述矩阵数据的大小为m*n;
[0014] 列分配单元,用于将每块所述离散块划分为「《/化1个行地址空间,每个所述行地 址空间存储Dp个浮点数,Dp等于运算的并行度。
[0015] 可选地,所述并行硬件架构还包括:
[0016] 存储重分配模块,用于若检测发现运算的并行度发生改变,则获取改变后的并行 度,并重新为所述矩阵数据动态分配存储空间。
[0017] 可选地,所述初始主元定位模块包括:
[0018] 行首数据定位单元,用于在写入所述增广矩阵的矩阵数据时,定位所述增广矩阵 每一行的首数据;
[0019] 主元行确定单元,用于比较每一行的所述首数据,确定所述首数据最大的所述增 广矩阵的所在行为初始主元行。
[0020] 可选地,所述行消除模块包括:
[0021] 归一化单元,用于对行交换后的所述增广矩阵的主元行进行归一化;
[0022] 缓存单元,用于将归一化后的所述主元行的元素与主元所在列的元素分别缓存在 两个第=存储器中;
[0023] 行消除计算单元,用于对所述主元行W外的所有行进行行消除计算;
[0024] 主元行重定位单元,用于重新定位行消除计算后的所述增广矩阵的主元行。
[0025] 本发明实施例提供的一种浮点矩阵求逆的并行计算方法,包括:
[00%]步骤一、将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,所述第一 存储器中写入所述增广矩阵中的待求逆矩阵,所述第二存储器中写入所述增广矩阵中的单 位矩阵,所述第一存储器和第二存储器为所述矩阵数据动态分配存储空间;
[0027] 步骤二、定位所述增广矩阵的初始主元行;
[0028] 步骤=、将所述增广矩阵的首行与主元行进行交换,第一次交换时,所述主元行为 所述初始主元行;
[0029] 步骤四、对行交换后的所述增广矩阵进行归一化和行消除计算,并定位下一主元 行;
[0030] 步骤五、反复交替执行所述步骤=和步骤四,直到所述第一存储器中存储的所述 待求逆矩阵成为单位矩阵时,输出所述第二存储器中的矩阵数据。
[0031] 可选地,将增广矩阵的矩阵数据写入第一存储器和第二存储器时,为所述矩阵数 据动态分配存储空间的方法具体包括:
[0032] 根据所述矩阵数据的大小将存储空间划分为m个离散块,每块所述离散块存储一 行矩阵数据,所述矩阵数据的大小为m*n;
[0033] 将每块所述离散块划分为个行地址空间,每个所述行地址空间存储Dp个浮 点数,Dp等于运算的并行度。
[0034] 可选地,所述并行计算方法还包括:
[0035] 若检测发现运算的并行度发生改变,则获取改变后的并行度,并重新为所述矩阵 数据动态分配存储空间。
[0036] 可选地,所述定位所述增广矩阵的初始主元行具体包括:
[0037] 在写入所述增广矩阵的矩阵数据时,定位所述增广矩阵每一行的首数据;
[0038] 比较每一行的所述首数据,确定所述首数据最大的所述增广矩阵的所在行为初始 主元行。
[0039] 可选地,对行交换后的所述增广矩阵进行归一化和行消除计算,并定位下一主元 行具体包括:
[0040] 对行交换后的所述增广矩阵的主元行进行归一化;
[0041] 将归一化后的所述主元行的元素与主元所在列的元素分别缓存在两个第=存储 器中;
[0042] 对所述主元行W外的所有行进行行消除计算;
[0043] 重新定位行消除计算后的所述增广矩阵的主元行。
[0044] 从W上技术方案可W看出,本发明实施例具有W下优点:
[0045] 本发明实施例中,一种浮点矩阵求逆的并行硬件架构包括:矩阵写入模块,用于将 增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,所述第一存储器中写入所述 增广矩阵中的待求逆矩阵,所述第二存储器中写入所述增广矩阵中的单位矩阵,所述第一 存储器和第二存储器为所述矩阵数据动态分配存储空间;初始主元定位模块,用于定位所 述增广矩阵的初始主元行;行交换模块,用于将所述增广矩阵的首行与主元行进行交换,第 一次交换时,所述主元行为所述初始主元行;行消除模块,用于对行交换后的所述增广矩阵 进行归一化和行消除计算,并定位下一主元行;触发模块,用于反复交替触发所述行交换模 块和行消除模块,直到所述第一存储器中存储的所述待求逆矩阵成为单位矩阵时,输出所 述第二存储器中的矩阵数据。在本发明实施例中,通过为矩阵数据动态分配存储空间,所述 并行硬件构架适用任意维数的矩阵求逆,可W满足大规模的矩阵求逆要求,在不同维数的 矩阵求逆之间无需更改硬件设置。同时,配合并行处理方式,可W实现任意维度矩阵的求逆 处理,提高求逆运算的速度。
【附图说明】
[0046] 图1为本发明实施例中一种浮点矩阵求逆的并行计算方法一个实施例流程图;
[0047] 图2为本发明实施例中一种浮点矩阵求逆的并行计算方法另一个实施例流程图;
[0048] 图3为本发明实施例中动态存储分配算法的原理示意图;
[0049] 图4为本发明实施例中一种浮点矩阵求逆的并行硬件架构一个实施例结构图;
[0050] 图5为本发明实施例中一种浮点矩阵求逆的并行硬件架构另一个实施例结构图;
[0051] 图6为本发明的一种浮点矩阵求逆的并行硬件架构一个应用场景下的结构示意 图;
[0052] 图7为本发明的一种浮点矩阵求逆的并行硬件架构的行消除模块一个应用场景下 的原理示意图。
【具体实施方式】
[0053] 本发明实施例提供了浮点矩阵求逆的并行硬件架构和并行计算方法,用于解决现 有矩阵运算通过硬件实现时矩阵维数固定的问题。
[0054] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述 的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域 普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护 的范围。
[0055] 请参阅图1,本发明实施例中一种浮点矩阵求逆的并行计算方法一个实施例包括:
[0056] 101、将增广矩阵的矩阵数据写入第一存储器和第二存储器中;
[0057] 首先,将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,该第一存储 器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增广矩阵中的单位矩阵,该 第一存储器和第二存储器为该矩阵数据动态分配存储空间。
[0058] 102、定位该增广矩阵的初始主元行;
[0059] 在将增广矩阵的矩阵数据写入第一存储器和第二存储器中之后,可W定位该增广 矩阵的初始主元行。
[0060] 103、将该增广矩阵的首行与主元行进行交换;
[0061] 在定位该增广矩阵的初始主元行之后,可W将该增广矩阵的首行与主元行进行交 换,第一次交换时,该主元行为该初始主元行。
[0062] 104、对行交换后的该增广矩阵进行归一化和行消除计算,并定位下一主元行;
[0063] 在将该增广矩阵的首行与主元行进行交换之后,可W对行交换后的该增广矩阵进 行归一化和行消除计算,并定位下一主元行。
[0064] 105、反复交替执行步骤103和步骤104,直到该第一存储器中存储的该待求逆矩阵 成为单位矩阵时,输出该第二存储器中的矩阵数据。
[0065] 反复交替执行步骤103和步骤104,直到该第一存储器中存储的该待求逆矩阵成为 单位矩阵时,输出该第二存储器中的矩阵数据。
[0066] 本实施例中,首先,将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其 中,该第一存储器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增广矩阵中 的单位矩阵,该第一存储器和第二存储器为该矩阵数据动态分配存储空间;然后,定位该增 广矩阵的初始主元行;接着,将该增广矩阵的首行与主元行进行交换,第一次交换时,该主 元行为该初始主元行;再之,对行交换后的该增广矩阵进行归一化和行消除计算,并定位下 一主元行;最后,反复交替执行该步骤=和步骤四,直到该第一存储器中存储的该待求逆矩 阵成为单位矩阵时,输出该第二存储器中的矩阵数据。在本实施例中,通过为矩阵数据动态 分配存储空间,该并行计算方法适用任意维数的矩阵求逆,可W满足大规模的矩阵求逆要 求,在不同维数的矩阵求逆之间无需更改硬件设置。
[0067] 为便于理解,下面对本发明实施例中的一种浮点矩阵求逆的并行计算方法进行详 细描述,请参阅图2,本发明实施例中一种浮点矩阵求逆的并行计算方法另一个实施例包 括:
[0068] 201、将增广矩阵的矩阵数据写入第一存储器和第二存储器中;
[0069] 首先,将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,该第一存储 器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增广矩阵中的单位矩阵,该 第一存储器和第二存储器为该矩阵数据动态分配存储空间。
[0070] 需要说明的是,将增广矩阵的矩阵数据写入第一存储器和第二存储器时,为该矩 阵数据动态分配存储空间的方法具体包括:
[0071] 1、根据该矩阵数据的大小将存储空间划分为m个离散块,每块该离散块存储一行 矩阵数据,该矩阵数据的大小为m*n;
[007^ 2、将每块该离散块划分为「0/A]个行地址空间,每个该行地址空间存储Dp个浮点 数,Dp等于运算的并行度,「n/Al表示向上取整n/Dp的结果。
[0073] 如图3所示,将一个存储器的空间划分为m个矩阵行空间(也即离散块),然后每个 矩阵行空间又被划分为「《/化1个行地址空间,其中每个行地址空间存储Dp个浮点数(数 据),从而每个矩阵行空间存储n个浮点数。
[0074] 另外,为了保证动态分配的存储空间与运算的并行度保持匹配,存储空间分配可 W根据并行度实时调整:若检测发现运算的并行度发生改变,则获取改变后的并行度,并重 新为该矩阵数据动态分配存储空间。
[0075] 202、在写入该增广矩阵的矩阵数据时,定位该增广矩阵每一行的首数据;
[0076] 为了定位初始主元行,可W在写入该增广矩阵的矩阵数据时,定位该增广矩阵每 一行的首数据。
[0077] 203、比较每一行的该首数据,确定该首数据最大的该增广矩阵的所在行为初始主 元行;
[0078] 在定位该增广矩阵每一行的首数据之后,可W比较每一行的该首数据,确定该首 数据最大的该增广矩阵的所在行为初始主元行。例如可W是,在数据写入时定位每一行的 首数据,每两行之间进行大小比较并存储较大的数据,当写入结束后其存储的即为最大的 首数据,从而可W确定最大首数据对应的行为初始主元行。
[0079] 204、将该增广矩阵的首行与主元行进行交换;
[0080] 在确定初始主元行或定位下一主元行(见步骤205)之后,可W将该增广矩阵的首 行与主元行进行交换,可W理解的是,第一次交换时,该主元行为该初始主元行。
[0081] 205、对行交换后的该增广矩阵进行归一化和行消除计算,并定位下一主元行;
[0082] 在将该增广矩阵的首行与主元行进行交换之后,可W对行交换后的该增广矩阵进 行归一化和行消除计算,并定位下一主元行。
[0083] 需要说明的是,步骤205具体可W包括:
[0084] A、对行交换后的该增广矩阵的主元行进行归一化:举例说明,增广矩阵为[All],
勺待求逆矩阵,au代表第i行第j列元素,I为n Xn单位矩阵, ,P为主元行数,j为列元素标号,k为迭代次数,首先计算出主元的倒数 ^元素与倒数一一相乘,运样尽可能避免了除法操作;
[0085] B、将归一化后的该主元行的元素 af A与主元所在列的元素分别缓存在两个第 =存储器中;
[00化]C、对该主元行W外的所有行进行行消除计算:
[0087] Dp、重新定位行消除计算后的该增广矩阵的主元行。
[008引归一化和消除操作为纯流水线设计,因为步骤C中,墙|> <分别来自S 个存储器,所W可W同时进行运算(即并行计算)。实际上每个位置的数有Dp个,采用水平扫 描操作,即同一行Dp个相邻元素参与运算,直到所有元素完成运算。
[0089] 206、反复交替执行该步骤=和步骤四,直到该第一存储器中存储的该待求逆矩阵 成为单位矩阵时,输出该第二存储器中的矩阵数据。
[0090] 反复交替执行该步骤=和步骤四,直到该第一存储器中存储的该待求逆矩阵成为 单位矩阵时,输出该第二存储器中的矩阵数据。由高斯-约当部分主元消除法(Gauss Jordan Elimination with Partial Pivoting)的原理可知,开始时,第一存储器存储待求 逆矩阵,第二存储器存储单位矩阵,在进行求逆运算后,当原待求逆矩阵成为单位矩阵后, 第二存储器中存储的单位矩阵即为待求逆矩阵的逆矩阵,输出该第二存储器中的矩阵数据 即输出所需的逆矩阵。需要说明的是,所述存储待求逆矩阵和单位矩阵的存储器不是固定 的,当待求逆矩阵成为单位矩阵后,下一轮存储器交替转换,由另一个存储器来存放待求逆 矩阵。
[0091] 上面主要描述了一种浮点矩阵求逆的并行计算方法,下面将对一种浮点矩阵求逆 的并行硬件架构进行详细描述,请参阅图4,本发明实施例中一种浮点矩阵求逆的并行硬件 架构一个实施例包括:
[0092] 矩阵写入模块401,用于将增广矩阵的矩阵数据写入第一存储器和第二存储器中, 其中,该第一存储器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增广矩阵 中的单位矩阵,该第一存储器和第二存储器为该矩阵数据动态分配存储空间;
[0093] 初始主元定位模块402,用于定位该增广矩阵的初始主元行;
[0094] 行交换模块403,用于将该增广矩阵的首行与主元行进行交换,第一次交换时,该 主元行为该初始主元行;
[00%]行消除模块404,用于对行交换后的该增广矩阵进行归一化和行消除计算,并定位 下一主元行;
[0096] 触发模块405,用于反复交替触发该行交换模块403和行消除模块404,直到该第一 存储器中存储的该待求逆矩阵成为单位矩阵时,输出该第二存储器中的矩阵数据。
[0097] 本实施例中,矩阵写入模块401将增广矩阵的矩阵数据写入第一存储器和第二存 储器中,其中,该第一存储器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增 广矩阵中的单位矩阵,该第一存储器和第二存储器为该矩阵数据动态分配存储空间;初始 主元定位模块402定位该增广矩阵的初始主元行;行交换模块403将该增广矩阵的首行与主 元行进行交换,第一次交换时,该主元行为该初始主元行;行消除模块404对行交换后的该 增广矩阵进行归一化和行消除计算,并定位下一主元行;触发模块反复交替触发该行交换 模块403和行消除模块404,直到该第一存储器中存储的该待求逆矩阵成为单位矩阵时,输 出该第二存储器中的矩阵数据。在本实施例中,通过为矩阵数据动态分配存储空间,该并行 硬件构架适用任意维数的矩阵求逆,可W满足大规模的矩阵求逆要求,在不同维数的矩阵 求逆之间无需更改硬件设置。
[0098] 为便于理解,下面对本发明实施例中的一种浮点矩阵求逆的并行硬件架构进行详 细描述,请参阅图5,本发明实施例中一种浮点矩阵求逆的并行硬件架构另一个实施例包 括:
[0099] 矩阵写入模块501,用于将增广矩阵的矩阵数据写入第一存储器和第二存储器中, 其中,该第一存储器中写入该增广矩阵中的待求逆矩阵,该第二存储器中写入该增广矩阵 中的单位矩阵,该第一存储器和第二存储器为该矩阵数据动态分配存储空间;
[0100] 初始主元定位模块502,用于定位该增广矩阵的初始主元行;
[0101] 行交换模块503,用于将该增广矩阵的首行与主元行进行交换,第一次交换时,该 主元行为该初始主元行;
[0102] 行消除模块504,用于对行交换后的该增广矩阵进行归一化和行消除计算,并定位 下一主元行;
[0103] 触发模块505,用于反复交替触发该行交换模块503和行消除模块504,直到该第一 存储器中存储的该待求逆矩阵成为单位矩阵时,输出该第二存储器中的矩阵数据。
[0104] 本实施例中,该并行硬件架构还包括动态存储分配模块506,用于在该矩阵写入模 块将增广矩阵的矩阵数据写入第一存储器和第二存储器时,为该矩阵数据动态分配存储空 间;
[0105] 该动态存储分配模块506包括:
[0106] 行分配单元5061,用于根据该矩阵数据的大小将存储空间划分为m个离散块,每块 该离散块存储一行矩阵数据,该矩阵数据的大小为m*n;
[0107] 列分配单元5062,用于将每块该离散块划分为「《/化1个行地址空间,每个该行地 址空间存储Dp个浮点数,Dp等于运算的并行度。
[0108] 本实施例中,该并行硬件架构还包括:
[0109] 存储重分配模块507,用于若检测发现运算的并行度发生改变,则获取改变后的并 行度,并重新为该矩阵数据动态分配存储空间。
[0110] 本实施例中,该初始主元定位模块502包括:
[0111] 行首数据定位单元5021,用于在写入该增广矩阵的矩阵数据时,定位该增广矩阵 每一行的首数据;
[0112] 主元行确定单元5022,用于比较每一行的该首数据,确定该首数据最大的该增广 矩阵的所在行为初始主元行。
[0113] 本实施例中,该行消除模块504包括:
[0114] 归一化单元5041,用于对行交换后的该增广矩阵的主元行进行归一化;
[0115] 缓存单元5042,用于将归一化后的该主元行的元素与主元所在列的元素分别缓存 在两个第=存储器中;
[0116] 行消除计算单元5043,用于对该主元行W外的所有行进行行消除计算;
[0117] 主元行重定位单元5044,用于重新定位行消除计算后的该增广矩阵的主元行。
[0118] 需要说明的是,对于本实施例中的行消除模块504,在具体一应用场景下,如图7所 示,归一化和消除操可W作为纯流水线设计,因为在行消除计算过程中,《f j 分别来自=个存储器(如图7中的归一化主元存储器、主元列存储器和矩阵存储器),所W可 W同时通过可扩展浮点运算单元进行运算(即并行计算),运算后通过比较器比较重新定位 主元行。实际上每个位置的数有Dp个,采用水平扫描操作,即同一行Dp个相邻元素参与运算, 直到所有元素完成运算。
[0119] 为便于理解,一个应用场景中的浮点矩阵求逆的并行硬件架构如图6所示。该并行 硬件架构可W封装有5个接口 IO信号:
[0120] I、矩阵大小:指示矩阵的规模。
[0121] 2、写地址:初始时写入矩阵数据的存储地址。
[0122] 3、写数据:初始时写入存储器的一个地址空间的数据。
[0123] 4、读地址:逆运算完成后读出矩阵数据的存储地址。
[0124] 5、读数据:逆运算完成后读出存储器的一个地址空间的数据。
[0125] 此并行硬件架构支持矩阵规模大小可变,可W进行任意大小的矩阵求逆运算,唯 一的限制为第一存储器和第二存储器的容量和资源大小。该并行硬件架构中的运算模块可 W采用多浮点运算单元并行配置,运算单元数量可W扩展,支持不同并行度设计,加速矩阵 运算。如并行度Dp = 4时,同时有四个数据同时进行运算。存储器(第一存储器、第二存储器 或第=存储器等)的存储空间分配可W根据并行度实时调整,存储器中内嵌如图3所示原理 的动态存储分配算法。
[01%]所述硬件架构在FPGA进行仿真验证,分别设置并行度Dp为4,8,16,32,最大支持矩 阵大小为256 X 256,最大时钟工作频率分别为208MHz,222MHz,218MHz,169MHz。完成矩阵求 逆时钟数估算为+B?)「n/化n为方阵的大小,计算复杂度由〇(n3)减少为〇(n3/ Dp) O
[0127] 所属领域的技术人员可W清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。
[0128] 在本申请所提供的几个实施例中,应该理解到,所掲露的系统,装置和方法,可W 通过其它的方式实现。例如,W上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件 可W结合或者可W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或 讨论的相互之间的禪合或直接禪合或通信连接可W是通过一些接口,装置或单元的间接禪 合或通信连接,可W是电性,机械或其它的形式。
[0129] 所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个 网络单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0130] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用软件功能单元的形式实现。
[0131] 所述集成的单元如果W软件功能单元的形式实现并作为独立的产品销售或使用 时,可W存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可WW软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用W使得一台计算机 设备(可W是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memo巧)、随机存取存储器(RAM,Random Access Memcxry)、磁碟或者光盘等各种可W存储程 序代码的介质。
[0132] W上所述,W上实施例仅用W说明本发明的技术方案,而非对其限制;尽管参照前 述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可W对前 述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而运些 修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1. 一种浮点矩阵求逆的并行硬件架构,其特征在于,包括: 矩阵写入模块,用于将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,所 述第一存储器中写入所述增广矩阵中的待求逆矩阵,所述第二存储器中写入所述增广矩阵 中的单位矩阵,所述第一存储器和第二存储器为所述矩阵数据动态分配存储空间; 初始主元定位模块,用于定位所述增广矩阵的初始主元行; 行交换模块,用于将所述增广矩阵的首行与主元行进行交换,第一次交换时,所述主元 行为所述初始主元行; 行消除模块,用于对行交换后的所述增广矩阵进行归一化和行消除计算,并定位下一 主元行; 触发模块,用于反复交替触发所述行交换模块和行消除模块,直到所述第一存储器中 存储的所述待求逆矩阵成为单位矩阵时,输出所述第二存储器中的矩阵数据。2. 根据权利要求1所述的并行硬件架构,其特征在于,还包括动态存储分配模块,用于 在所述矩阵写入模块将增广矩阵的矩阵数据写入第一存储器和第二存储器时,为所述矩阵 数据动态分配存储空间; 所述动态存储分配模块包括: 行分配单元,用于根据所述矩阵数据的大小将存储空间划分为m个离散块,每块所述离 散块存储一行矩阵数据,所述矩阵数据的大小为m*n; 列分配单元,用于将每块所述离散块划分为「《个行地址空间,每个所述行地址空 间存储Dp个浮点数,Dp等于运算的并行度。3. 根据权利要求2所述的并行硬件架构,其特征在于,所述并行硬件架构还包括: 存储重分配模块,用于若检测发现运算的并行度发生改变,则获取改变后的并行度,并 重新为所述矩阵数据动态分配存储空间。4. 根据权利要求1所述的并行硬件架构,其特征在于,所述初始主元定位模块包括: 行首数据定位单元,用于在写入所述增广矩阵的矩阵数据时,定位所述增广矩阵每一 行的首数据; 主元行确定单元,用于比较每一行的所述首数据,确定所述首数据最大的所述增广矩 阵的所在行为初始主元行。5. 根据权利要求1所述的并行硬件架构,其特征在于,所述行消除模块包括: 归一化单元,用于对行交换后的所述增广矩阵的主元行进行归一化; 缓存单元,用于将归一化后的所述主元行的元素与主元所在列的元素分别缓存在两个 第三存储器中; 行消除计算单元,用于对所述主元行以外的所有行进行行消除计算; 主元行重定位单元,用于重新定位行消除计算后的所述增广矩阵的主元行。6. -种浮点矩阵求逆的并行计算方法,其特征在于,包括: 步骤一、将增广矩阵的矩阵数据写入第一存储器和第二存储器中,其中,所述第一存储 器中写入所述增广矩阵中的待求逆矩阵,所述第二存储器中写入所述增广矩阵中的单位矩 阵,所述第一存储器和第二存储器为所述矩阵数据动态分配存储空间; 步骤二、定位所述增广矩阵的初始主元行; 步骤三、将所述增广矩阵的首行与主元行进行交换,第一次交换时,所述主元行为所述 初始主元行; 步骤四、对行交换后的所述增广矩阵进行归一化和行消除计算,并定位下一主元行; 步骤五、反复交替执行所述步骤三和步骤四,直到所述第一存储器中存储的所述待求 逆矩阵成为单位矩阵时,输出所述第二存储器中的矩阵数据。7. 根据权利要求6所述的并行计算方法,其特征在于,将增广矩阵的矩阵数据写入第一 存储器和第二存储器时,为所述矩阵数据动态分配存储空间的方法具体包括: 根据所述矩阵数据的大小将存储空间划分为m个离散块,每块所述离散块存储一行矩 阵数据,所述矩阵数据的大小为m*n; 将每块所述离散块划分为「W巧?个行地址空间,每个所述行地址空间存储Dp个浮点数, Dp等于运算的并行度。8. 根据权利要求7所述的并行计算方法,其特征在于,所述并行计算方法还包括: 若检测发现运算的并行度发生改变,则获取改变后的并行度,并重新为所述矩阵数据 动态分配存储空间。9. 根据权利要求6所述的并行计算方法,其特征在于,所述定位所述增广矩阵的初始主 元行具体包括: 在写入所述增广矩阵的矩阵数据时,定位所述增广矩阵每一行的首数据; 比较每一行的所述首数据,确定所述首数据最大的所述增广矩阵的所在行为初始主元 行。10. 根据权利要求6所述的并行计算方法,其特征在于,对行交换后的所述增广矩阵进 行归一化和行消除计算,并定位下一主元行具体包括: 对行交换后的所述增广矩阵的主元行进行归一化; 将归一化后的所述主元行的元素与主元所在列的元素分别缓存在两个第三存储器中; 对所述主元行以外的所有行进行行消除计算; 重新定位行消除计算后的所述增广矩阵的主元行。
【文档编号】G06F17/16GK106021188SQ201610311399
【公开日】2016年10月12日
【申请日】2016年5月11日
【发明人】辛遥, 梁添才, 龚文川, 刘道余
【申请人】广州广电运通金融电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1