论文部分内容阅读
随着半导体制造工艺的进步,可编程门阵列(Field-Programmable Gate Array,FPGA)迅速发展,单芯片上可供快速实现的逻辑功能越来越多,基于FPGA的可重构计算在高性能计算甚至是超级计算领域中的巨大潜力逐渐被挖掘出来。当前主流的FPGA芯片上往往具有高密度的可编程逻辑、大量存储资源与计算资源,并通过集成DSP硬核以支持高性能浮点运算部件的实现。这些特点使得可重构计算系统成为加速计算密集型应用的一种非常重要的选择。在众多受到关注的计算密集型问题中,矩阵分解尤其是矩阵三角化分解作为典型的基础类应用始终处于研究的核心地位,在求解线性方程组、求矩阵特征值等科学与工程问题中有重要的研究价值。 纵观国内外研究现状,在矩阵三角化分解及应用领域已经取得了很多研究成果,但仍存在许多亟待解决的问题。根据可重构计算并行结构的特征构建矩阵三角化分解并行计算模型,进一步改善三角化分解硬件结构计算性能及关键技术成为当前该领域关注的课题。针对该课题,本文面向矩阵三角化分解中共有的三角化计算过程,提出具有一般性的矩阵三角化计算FPGA并行结构时空模型以及一种计算复杂度较低的矩阵三角化计算并行结构模板。并围绕三种具体的矩阵三角化分解:Cholesky分解、LU分解和QR分解在并行结构模板上的高性能实现及优化方法开展研究,取得的研究成果包括: 1、提出具有一般性的三角化计算FPGA并行结构时空模型构建方法和一种计算复杂度较低的矩阵三角化计算并行结构模板。(1)对三角化计算线性变换的一般过程进行分析,以子矩阵更新过程为粗粒度计算任务来开发任务间的流水并行;(2)在任务中以列计算为细粒度单位开发数据并行;(3)以求解有限域GF(p)上线性方程组的三角化计算问题为示例,面向三角化计算中子矩阵更新过程中提出适合硬件实现的子矩阵更新同一化算法并向FPGA上映射实现。 2、在三角化计算并行结构模板上实现实数矩阵Cholesky分解,由此提出该算法的高性能FPGA并行结构。分析Cholesky分解的求解特征,引入求解矩阵L的转置LT的LT-SC(LT-Submatrix-Cholesky),从而简化问题的求解。从对比验证的角度,给出两种LT-SC的并行结构实现方案。其中,方案二针对Cholesky分解特有的三角子矩阵更新过程对子矩阵更新同一化算法进行了改进,并在实现时通过增加PE阵列的使能信号向量以支持改进后的算法。提出的Cholesky分解FPGA并行结构采用方案二的实现,实验结果表明该结构与对比方案(方案一)相比具有更高的单位面积性能,且优于相关工作和通用处理器的软件实现。 3、在三角化计算并行结构模板上实现列选主元的实数矩阵LU分解,由此提出该算法的高性能FPGA并行结构。分析LU分解的求解特征,对子矩阵更新同一化算法进行了扩展与改进以支持LU分解的列选主元,并在实现的并行结构中增加与之匹配的硬件通路。提出的并行结构在求解线性方程组完成同时支持前向三角回代及后向回代过程的LU分解,相当于实现了求解实系数增广矩阵的高斯-约当消元算法。同时,针对大矩阵问题提出基于非递归和递归方式的分治策略。实验结果表明该并行结构优于相关工作和通用处理器的软件实现。 4、在三角化计算并行结构模板上实现矩阵QR分解,由此提出该算法的高性能FPGA并行结构。分析QR分解的求解特征,提出基于并行子任务的Givens旋转算法的并行约化方法及QR分解粗粒度并行算法;提出与子任务块行对应的硬件宏模块阵列及粗粒度子矩阵更新同一化算法的实现策略。实验分析表明,设计的并行结构比传统的QR分解实现具有更小的计算复杂度。