基于FPGA的边角块稀疏矩阵并行LU分解器制造技术

技术编号:3783198 阅读:254 留言:0更新日期:2012-04-11 18:40
本发明专利技术针对边角块稀疏矩阵能够进行并行计算的特点,提供了一种基于FPGA的边角块稀疏矩阵并行LU分解器。它主要由模拟排序模块、符号分解模块和并行数值LU分解模块构成三层处理平台结构,该并行数值LU分解模块用于完成对矩阵数据进行并行LU分解,位于整个处理结构的末端;该符号分解模块用于标记矩阵中待修改元的位置,位于整个处理结构的中间端;该模拟排序算法模块用于确定矩阵的消去顺序,位于整个处理结构的最前端,所述的三个模块之间通过共用存储单元相连接。本发明专利技术具有实时并行LU分解边角块稀疏矩阵的优点,与使用并行计算机和分布式计算机相比能极大的节省开发成本,可应用于实时电子网络分析领域。

【技术实现步骤摘要】

本专利技术属于数据处理
,涉及并行LU分解器,适用于边角块稀疏矩阵 (Bordered-Diagonal-Block)的并1」 LU分解。
技术介绍
边角块稀疏矩阵广泛的应用于电子网络设计、电力系统优化设计、图论等科学 技术和工程领域中。而稀疏线性方程组求解是许多科学
的核心问题,如果 需要在矩阵A不变的情况下,对不同的右端向量b多次求解,矩阵LU分解法将显 著节省运算时间。并且矩阵LU分解法可以利用矩阵的稀疏性,大量地节省存储空 间,因此这种方法适于解大型稀疏矩阵问题。目前一些超级计算机和分布式计算机在该领域占据了主导地位,但它们高昂的 价格和较长的开发周期,以及复杂的编程环境和较高的维护成本, 一定程度上限制 了它们在该领域的应用。目前数字信号处理领域中,使用器件的趋势是DSP(Digital Signal Processor)和FPGA(Field Programmable Gate Array),专用DSP和通用DSP并 举。DSP和FPGA在功能上不仅资源丰富,而且具有很大的编程灵活性。DSP在速 度方面占有优势,但在某一时刻只能完成有限的任务,要想搭建并行处理结构必须 使用多片DSP芯片,这样将大大增加系统开发成本和复杂度;高等级的FPGA的芯 片虽然在速度上与DSP略有差距,但能实现并行结构,对同时可完成的任务几乎没 有限制。因此选择可编程的逻辑器件进行数字信号处理是当今世界的发展趋势。而 使用FPGA内部NIOS核编程的实现方式,其灵活性很大,但执行效率较低,执行 速度较慢且稳定性较差。
技术实现思路
本专利技术的目的在于克服上述已有技术的不足,提供一种基于FPGA的边角块稀 疏矩阵并行LU分解器,该分解器全部由硬件描述语言实现,以提升数据处理系统 的运行速度和稳定性,提高数据的计算效率,节省开发成本。为实现上述目的,本专利技术的并行LU分解器包括模拟排庁'算法模块,用丁-确 定边伯块稀疏矩阼的消去顺序;符g分解模块,用丁完成标记待修改元的位置;并 行数值LU分解模块,用于^成对矩阵数据进行并行LU分解;所述的这三个模块之间通过共用存储单元相连接。上述的并行LU分解器,其中符号分解模块位^模拟排序算法模块和并行数值 LU分解模块之间,该二个模块均由硬件描述语S实现。上述的并行LU分解器,其中并行数但LU分解模块由包括并行处理阼列和全jni数据处理及通信控制单元组成,该并行处理阼列由n个并行的数据处理单元组成,n 》3:该全局数据处理及通信控制申.儿,分别与每个处理申-元双向迮接,实现与各个 处理申.儿的数据通信和程序控制。本专利技术具有如下优点(1) 本专利技术由模拟排序算法模块、符号分解模块和并行数值LU分解模块三个模块组成,各个模块完成各自的任务,形成了一个通用的处理平台,可以在不改变各自模块硬件结构的情况下,在此平台上完成不同阶数边角块稀疏矩阵的LU分解, 以及对称稀疏矩阵的排序及符号分解。(2) 本专利技术由于采用硬件描述语言的方式搭建并行处理结构,能够实现完全并 行的高速信号处理,提高数据速度,并方便在其它公司的器件上进行移植。(3) 本专利技术的硬件描述语言是针对边角块稀疏矩阵LU分解领域,以FPGA为 载体,开发出一套量身定做的算法处理结构,这种方式结合了分布式计算机体系结 构,DSP芯片的可编程特性和FPGA的算法针对性及运算高速性的优点,可以最大 限度的开发算法的并行性、运算单元的针对性和数据结构的特殊性,并具有系统参 数和功能灵活可变、设计复杂程度适当、设计重复利用性好的优点,特别是采用 FPGA可以相对容易地在单个芯片中集成多个处理单元,相比分布式计算机和并行 计算机能大大降低系统成本。附图说明图l为本专利技术的整体结构框图2为本专利技术的并行数值LU分解模块结构框图3为本专利技术数值LU分解处理单元的结构框图。具体实施例方式下面结合附图和实例对本专利技术进行详细说明。参照图1,本专利技术基于FPGA实现边角块稀疏矩阵并行LU分解器。该分解器 由模拟排序模块、符号分解模块和并行数值LU分解模块构成通用处理平台结构。其中模拟排序模块,作为整个系统数据的输入模块,为边角块稀疏矩阵的符号分解 确定消去顺序并确定填入元的位置,位于整个器件的最前端;该模拟排序模块把原 先按照自然顺序排列的原始数据进行了重新的组合。比如 一个四阶的边角块稀疏 矩阵,原先是按照从第一行第一列的顺序依次向下的顺序进行消去,直到第四行第 四列结束为止,经过模拟排序子模块后消去顺序可能会发生改变。比如先消去第 四行第四列,然后再按照自然顺序从第一行第一列开始消去。模拟排序模块还可以 确定在矩阵元素消去过程中填入元的位置。比如矩阵中一个零元在消去过程中变 为了非零元,这个元素的位置也可以由该模块确定。符号分解模块,位于整个器件的中间层,并通过公用存储单元与模拟排序模块 和并行数值LU分解模块相连接。该符号分解模块用于确定稀疏矩阵中待修改元的 位置,使真正的数值LU分解没有额外的査找,只进行必要的数值运算。比如原 先待修改的矩阵元素都是通过循环遍历的方式进行査找,而有些元素在消去过程中 并不需要修改。经过符号分解模块处理后的,并且凡是被记录为待修改的元素都会被统一存放到一个专用RAM中去。因此该模块是为并行数值LU分解进行预处理工作。并行数值LU分解模块,如图2所示,它作为整个分解器的核心处理模块,由 全局数据处理及通信控制单元和n个并行的数据处理单元,n^3组成。全局数据处 理及通信控制单元分别与每个数据处理单元双向连接,实现与各个处理单元的数据 交换和指令控制和状态读取。该并行数值LU分解模块构成LU分解阵列,形成"多 通道处理"的并行算法结构,即将待处理的矩阵数据进行分块处理。每一个数据处 理单元负责处理矩阵中的一个子块。由于该数据处理单元相当于一个专用的CPU, 因此这些数据处理单元的内部电路结构完全一致,可以采用直接拷贝的方法生成。 各个数据处理单元根据矩阵分块后的结构来选择所要处理的数据,前n-l个数据处 理单元共同完成对矩阵的分解运算,最后一个数据处理单元待前n-l个数据处理单 元完成分解运算后再开始运算。采用并行处理的方式可以提高系统的数据处理能力 和数据吞吐率,提高系统的工作效率。参照图3,本法明并行数值LU分解模块中的数据处理单元以FPGA为载体, 是一种针对稀疏矩阵LU分解的专用处理结构,每一个数据处理单元均由数组指针 RAM、原始数据RAM和浮点运算子单元组成。该数组指针RAM用来控制原始数据RAM的输入和输出地址,它包括矩阵元素的消去顺序索引RAM、列非零元首地 址索引RAM、非零元行号索引RAM、非零元指针索引RAM。该原始数据RAM中 包括对角线元素RAM、上三角元素RAM、下三角元素RAM。在设计中采用FPGA 中的宏模块单元来完成,其中RAM的位宽需要根据数据的位宽来选择,RAM的存 储深度根据输入数据的多少来选择。该浮点运算单元由浮点加法器、浮点乘法器、 浮点除法器构成。其中浮点除法器用于求对角线上主元导数及完成主行元除以主元 的运算;浮点乘法器和浮点加法器用于完成修改剩余矩阵元素的运算。在设计中采 用FPGA的浮点运算宏模块,输入输出位宽与数据存储器中的数据位宽相同。数据处理单元工作时本文档来自技高网...

【技术保护点】
一种基于FPGA的边角块稀疏矩阵并行LU分解器,包括: 模拟排序算法模块,用于确定边角块稀疏矩阵的消去顺序; 符号分解模块,用于完成标记待修改元的位置; 并行数值LU分解模块,用于完成对矩阵数据进行并行LU分解; 所 述的这三个子模块之间通过共用存储单元相连接。

【技术特征摘要】

【专利技术属性】
技术研发人员:石光明王亚南李甫张犁
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:87[中国|西安]

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

1
相关领域技术
  • 暂无相关专利