一种加速实现Cholesky分解的嵌入式片上系统的制作方法

文档序号:8472938阅读:331来源:国知局
一种加速实现Cholesky分解的嵌入式片上系统的制作方法
【技术领域】
[0001] 本发明涉及一种加速实现Cholesky分解的系统。
【背景技术】
[0002] 机器学习算法LS-SVM在嵌入式高性能计算领域得到了广泛应用,其计算过程包 含线性方程组的求解,目前,关于线性方程组的求解方法有多种,乔里斯基(Cholesky)分 解、高斯消元法、LU分解和共轭梯度法等,考虑算法本身特性以及在嵌入式SoC平台上的 加速计算特点,需要一种计算量较小、计算复杂度较低,且含有大量并行计算的求解方法, Cholesky分解方法成为最好的选择。
[0003] 根据Cholesky分解线性方程组的计算次序和编程方式,可将计算过程分为Row_ Cholesky分解(行分解)、Column_Cholesky分解(列分解)和Submatrix_Cholesky(块 分解)三种方式,这三种分解方式对数据的依赖性、需求量以及规律访存等存在不同,对于 不同的硬件开发平台需要选择的具体的分解方式设计合理的数据通路结构。关于Cholesky 分解在嵌入式硬件平台上的加速实现方法较多,针对不同开发平台具有的不同特点,可以 设计不同的加速实现系统。但是,现有的Cholesky分解系统实现线性方程组的求解还存在 着计算时间比较长的问题。

【发明内容】

[0004] 本发明为了解决目前现有的基于Cholesky分解方法实现线性方程组求解的硬件 加速系统存在计算时间比较长的问题。
[0005] 一种加速实现Cholesky分解的嵌入式片上系统,主要包括下述模块:
[0006] ARM处理器模块,用于对整个计算过程的任务调度;
[0007] DDR控制模块,用于控制外部DDR存储器的数据读写;
[0008] 可编程逻辑ProgrammableLogic模块,简称PL模块,用于从外部存储读取正定对 称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
[0009] AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
[0010] 本发明充分发挥Zynq开发平台异构的优势,采用Choleksy分解方法实现对线性 方程组求解的加速计算,采用软硬件协同设计技术,主要解决异构SoC平台上的处理任务 划分问题以及片上系统中的数据通路问题,设计基于ZynqZC702开发平台,将分解过程中 的任务调度由ARM处理器模块实现,从而减少设计的复杂度;将线性方程组系数的求解由 可编程逻辑ProgrammableLogic模块实现;可编程逻辑ProgrammableLogic模炔基于 Submatrix-Cholesky分解(块分解)方式实现线性方程组系数的求解;
[0011] 相比R〇w_Cholesky分解(行分解)和Column_Cholesky分解(列分解), Submatrix-Cholesky分解对数据的依赖更具有规律性,且一次更新过程对数据的需求量较 少,本发明选取Submatrix_Cholesky分解方式,并针对Submatrix_Cholesky分解方式设计 了合理的数据通路结构;而且Submatrix-Cholesky分解存在大量的并行更新操作,可以实 现数据更规律的访存,读写控制更简单,运算时间大幅缩短;最终,基于高层次综合HLS开 发方式实现线性方程组求解的加速计算。
【附图说明】
[0012] 图1为本发明原理示意图;
[0013] 图2为Cholesky分解的数据通路不意图。
【具体实施方式】
【具体实施方式】 [0014] 一:结合图1、图2说明本实施方式,一种加速实现Cholesky分解的 嵌入式片上系统,主要包括下述模块:
[0015] ARM处理器模块,用于对整个计算过程的任务调度;
[0016] DDR控制模块,用于控制外部DDR存储器的数据读写;
[0017] 可编程逻辑ProgrammableLogic模块,简称PL模块,用于从外部存储读取正定对 称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
[0018] AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
【具体实施方式】 [0019] 二:本实施方式所述的PL模块包括:
[0020] ControlLogic子模块,用于接收ARM处理器模块的控制信息,协调计算单元和更 新单元的计算工作以及控制内部RAM存储子模块数据读写工作;
[0021] DM子模块,用于控制PL模块与外部存储器之间进行数据传输;
[0022] Cholesky分解子模块,用于对正定对称矩阵的Submatrix-Cholesky分解并实现 内部数据的缓存。
[0023] Submatrix-Cholesky分解顺序如表 1 所示,
[0024] 表ISubmatrix-Cholesky分解顺序表
【主权项】
1. 一种加速实现Cholesky分解的嵌入式片上系统,其特征在于主要包括下述模块: ARM处理器模块,用于对整个计算过程的任务调度; DDR控制模块,用于控制外部DDR存储器的数据读写; 可编程逻辑Pr〇grammabIeLogic模块,简称PL模块,用于从外部存储读取正定对称矩 阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中; AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
2. 根据权利要求1所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征在 于: 所述的PL模块包括: ControlLogic子模块,用于接收ARM处理器模块的控制信息,协调计算单元和更新单 元的计算工作以及控制内部RAM存储子模块数据读写工作; DM子模块,用于控制PL模块与外部存储器之间进行数据传输; Cholesky分解子模块,用于对正定对称矩阵的Submatrix-Cholesky分解并实现内部 数据的缓存。
3. 根据权利要求2所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征在 于: 所述的Cholesky分解子模块包括: 计算单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的计算操作; 内部RAM缓存单元,用于对计算单元计算后的结果数据进行存储,方便更新单元从中 直接调用; 更新单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的更新操作,完成 计算列之后的所有列的更新过程; FIFO单元,用于对Cholesky分解子模块的初始数据及更新单元计算结果进行缓存,便 于实现数据传输的流模式。
4. 根据权利要求1或3所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征 在于: 所述的AXI总线模块包括: AXIGP子模块,用于PS向PL传输控制信息,通过AXI-Lite总线实现; AXIHP子模块,用于PS与PL之间实现高速数据传输,通过AXI-Stream总线实现。
5. 根据权利要求3所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征在 于:Cholesky分解子模块对正定对称矩阵进行Submatrix-Cholesky分解时,计算单元完成 第一列数据的计算操作;更新单元对第一列数据后面的所有列进行更新。
6. 根据权利要求5所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征在 于:所述的更新单元对所有列进行更新时为多个更新单元并行进行。
【专利摘要】一种加速实现Cholesky分解的嵌入式片上系统,涉及一种加速实现Cholesky分解的系统。本发明为了解决目前现有的基于Cholesky分解方法实现线性方程组求解的硬件加速系统存在计算时间比较长的问题。本发明包括用于对整个计算过程的任务调度的ARM处理器模块、用于控制外部DDR存储器的数据读写的DDR控制模块、用于可编程逻辑Programmable Logic模块与ARM处理器模块之间的信息传输AXI总线模块以及用于对正定对称矩阵进行Cholesky分解的可编程逻辑Programmable Logic模块。可编程逻辑Programmable Logic模块基于Submatrix-Cholesky分解(块分解)方式实现线性方程组系数的求解存在大量的并行更新操作,可以实现数据更规律的访存,读写控制更简单,运算时间大幅缩短;本发明适用于加速实现线性方程组的求解。
【IPC分类】G06F17-11
【公开号】CN104794102
【申请号】CN201510245953
【发明人】王少军, 王晓璐, 马宁, 刘大同, 彭宇, 彭喜元
【申请人】哈尔滨工业大学
【公开日】2015年7月22日
【申请日】2015年5月14日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1