Cholesky分解算法运算级流水线硬件加速方法技术

技术编号:26598095 阅读:28 留言:0更新日期:2020-12-04 21:20
Cholesky分解算法运算级流水线硬件加速方法,涉及Cholesky分解算法领域。解决了如何对Cholesky分解算法进行加速计算的问题。本发明专利技术加速方法是基于FPGA实现的,利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算,实现对对称正定矩阵A的Cholesky分解。本发明专利技术主要用于对Cholesky分解算法进行加速。

【技术实现步骤摘要】
Cholesky分解算法运算级流水线硬件加速方法
本专利技术涉及Cholesky分解算法领域,特别涉及一种借助现场可编程门阵列(FieldProgrammableGateArray,FPGA)实现浮点数矩阵Cholesky分解算法硬件加速的方法。
技术介绍
假设矩阵A为对称正定矩阵,则A=LLT称为矩阵A的Cholesky分解,其中矩阵L为具有正对角线元素的下三角矩阵,即:Cholesky分解算法的一种伪代码如下:式中,n为待分解矩阵维度,A为待分解矩阵,L为对矩阵A进行Cholesky分解得到的下三角将矩阵。Cholesky分解算法计算规则如图1所示:对于某一列来说,只有该列的第一个元素被计算出来后,其后的所有元素才可被计算;对于某一行来说,只有其前序所有元素被计算出来,此行中某一列的元素才可被计算出来。这样的规则决定了我们一般是从上到下、从左往右去计算下三角矩阵中的各个元素。Cholesky分解算法在很多领域有着广泛的应用,尤其是机器人同步定位与建图领域,UKF-Slam(无迹卡尔曼滤波)算法中涉及到大维度浮点数矩阵的Cholesky分解。研究表明维数为n×n的矩阵Cholesky分解算法的运算量为O(n3/6)。因此,大维度浮点数矩阵的Cholesky分解算法的运算量很大。若Cholesky分解算法在CPU中进行,采用串行计算的方法,将消耗大量时间。因此,如何对大维度浮点数矩阵Cholesky分解算法进行加速计算,以上问题急需解决。
技术实现思路
r>本专利技术目的是为了解决如何对Cholesky分解算法进行加速计算的问题,提供了一种Cholesky分解算法运算级流水线硬件加速方法。Cholesky分解算法运算级流水线硬件加速方法,该加速方法是基于FPGA实现的,利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算,实现对对称正定矩阵A的Cholesky分解;所述矩阵L为下三角矩阵,矩阵L的主对角线元素及其下方元素为待计算元素;矩阵L和对称正定矩阵A的维数相同,且二者中的元素全为浮点数。优选的是,矩阵L为n×n的矩阵,矩阵L中待计算元素个数为m;n和m均为整数;FPGA包括多个计算模块,所有计算模块的个数与所有待计算元素的个数相同,均为m;m个计算模块分别用于对矩阵L中m个待计算元素进行计算,每个计算模块对应一个计算公式,m个计算模块之间存在数据通讯关系,从而实现FPGA对矩阵L的每一列中由上至下,除最上方一个待计算元素外,剩余的多个待计算元素同步输出。优选的是,对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算的规则为:对于矩阵L的某一列来说,只有该列的第一个元素被计算出来后,该列其后的所有元素才能被计算出来;对于矩阵L的某一行来说,只有其前序所有元素被计算出来,此行中某一列的元素才能被计算出来。优选的是,当矩阵L为4×4的矩阵时,所述FPGA包括第一至第十计算模块;所述利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算的具体过程为:首先、使第一至第十计算模块依次从DDR内存中读取对称正定矩阵A中的数据A11、A21、A31、A41、A22、A32、A42、A33、A43和A44;其中,A11为对称正定矩阵A中1行第1列的元素;A21为对称正定矩阵A中2行第1列的元素;A31为对称正定矩阵A中3行第1列的元素;A41为对称正定矩阵A中4行第1列的元素;A22为对称正定矩阵A中2行第2列的元素;A32为对称正定矩阵A中3行第2列的元素;A42为对称正定矩阵A中4行第2列的元素;A33为对称正定矩阵A中3行第3列的元素;A43为对称正定矩阵A中4行第3列的元素;A44为对称正定矩阵A中4行第4列的元素;第一计算模块,用于根据接收的数据A11进行运算获得l11,并将获得的l11同时发送至第二至第四运算模块;其中,l11为矩阵L中第1行第1列的元素;第二计算模块,用于根据接收的数据l11和A21进行运算获得l21,并将获得的l21同时发送至第五至第七运算模块;其中,l21为矩阵L中第2行第1列的元素;第三计算模块,用于根据接收的数据l11和A31进行运算获得l31,并将获得的l31发送至第六、第八和第九运算模块;其中,l31为矩阵L中第3行第1列的元素;第四计算模块,用于根据接收的数据l11和A41进行运算获得l41,并将获得的l41发送至第七、第九和第十运算模块;其中,l41为矩阵L中第4行第1列的元素;第五计算模块,用于根据接收的数据l21和A22进行运算获得l22,并将获得的l22发送至第六和第七运算模块;其中,l22为矩阵L中第2行第2列的元素;第六计算模块,用于根据接收的数据l21、l31、l22和A32进行运算获得l32,并将获得的l32发送至第八和第九运算模块;其中,l32为矩阵L中第3行第2列的元素;第七计算模块,用于根据接收的数据l21、l41、l22和A42进行运算获得l42,并将获得的l42发送至第九和第十运算模块;其中,l42为矩阵L中第4行第2列的元素;第八计算模块,用于根据接收的数据l31、l32和A33进行运算获得l33,并将获得的l33发送至第九和第十运算模块;其中,l33为矩阵L中第3行第3列的元素;第九计算模块,用于根据接收的数据l31、l41、l32、l42、l33和A43进行运算获得l43;其中,l43为矩阵L中第4行第3列的元素;第十计算模块,用于根据接收的数据l41、l42、l33和A44进行运算获得l44;其中,l44为矩阵L中第4行第4列的元素;其次,l11、l21、l22、l31、l32、l33、l41、l42、l43和l44为矩阵L中的10个待计算元素,根据l11、l21、l22、l31、l32、l33、l41、l42、l43和l44完成对矩阵L的运算;其中,优选的是,FPGA还包括接口模块,第一至第十计算模块通过接口模块与CPU的DDR内存实现通讯。优选的是,接口模块为AXI协议的接口。优选的是,第二至第四计算模块的运算方式相同;第六和第七计算模块的运算方式相同。本专利技术的优点:通过借助FPGA,使浮点数矩阵的Cholesky分解算法在FPGA中实现,且以并行的计算方式进行计算,从而提高了计算速度。本专利技术脱离了现有技术中浮点数矩阵的Cholesky分解算法完全依赖于CPU实现的计算方式,避免了占用过多的CPU计算资源与硬件存储资源;避免了Cholesky分解算法在CPU中进行,采用串行计算的方法,将消耗大量时间的问本文档来自技高网...

【技术保护点】
1.Cholesky分解算法运算级流水线硬件加速方法,其特征在于,该加速方法是基于FPGA实现的,利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算,实现对对称正定矩阵A的Cholesky分解;/n所述矩阵L为下三角矩阵,矩阵L的主对角线元素及其下方元素为待计算元素;/n矩阵L和对称正定矩阵A的维数相同,且二者中的元素全为浮点数。/n

【技术特征摘要】
1.Cholesky分解算法运算级流水线硬件加速方法,其特征在于,该加速方法是基于FPGA实现的,利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算,实现对对称正定矩阵A的Cholesky分解;
所述矩阵L为下三角矩阵,矩阵L的主对角线元素及其下方元素为待计算元素;
矩阵L和对称正定矩阵A的维数相同,且二者中的元素全为浮点数。


2.根据权利要求1所述的Cholesky分解算法运算级流水线硬件加速方法,其特征在于,矩阵L为n×n的矩阵,矩阵L中待计算元素个数为m;n和m均为整数;
FPGA包括多个计算模块,所有计算模块的个数与所有待计算元素的个数相同,均为m;
m个计算模块分别用于对矩阵L中m个待计算元素进行计算,每个计算模块对应一个计算公式,m个计算模块之间存在数据通讯关系,从而实现FPGA对矩阵L的每一列中由上至下,除最上方一个待计算元素外,剩余的多个待计算元素同步输出。


3.根据权利要求1所述的Cholesky分解算法运算级流水线硬件加速方法,其特征在于,对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算的规则为:
对于矩阵L的某一列来说,只有该列的第一个元素被计算出来后,该列其后的所有元素才能被计算出来;
对于矩阵L的某一行来说,只有其前序所有元素被计算出来,此行中某一列的元素才能被计算出来。


4.根据权利要求1或2所述的Cholesky分解算法运算级流水线硬件加速方法,其特征在于,当矩阵L为4×4的矩阵时,所述FPGA包括第一至第十计算模块;
所述利用FPGA对对称正定矩阵A进行Cholesky分解,使对称正定矩阵A的Cholesky分解矩阵L以并行运算的方式计算,获得矩阵L中待计算元素,完成对矩阵L的运算的具体过程为:
首先、使第一至第十计算模块依次从DDR内存中读取对称正定矩阵A中的数据A11、A21、A31、A41、A22、A32、A42、A33、A43和A44;
其中,A11为对称正定矩阵A中1行第1列的元素;
A21为对称正定矩阵A中2行第1列的元素;
A31为对称正定矩阵A中3行第1列的元素;
A41为对称正定矩阵A中4行第1列的元素;
A22为对称正定矩阵A中2行第2列的元素;
A32为对称正定矩阵A中3行第2列的元素;
A42为对称正定矩阵A中4行第2列的元素;
A33为对称正定矩阵A中3行第3列的元素;
A43为对称正定矩阵A中4行第3列的元素;
A44为对称正定矩阵A中4行第4列的元素;

【专利技术属性】
技术研发人员:王珂包敏杰李瑞峰赵立军
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙江;23

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

1