CN104794102B - 一种加速实现Cholesky分解的嵌入式片上系统 - Google Patents

一种加速实现Cholesky分解的嵌入式片上系统 Download PDF

Info

Publication number
CN104794102B
CN104794102B CN201510245953.9A CN201510245953A CN104794102B CN 104794102 B CN104794102 B CN 104794102B CN 201510245953 A CN201510245953 A CN 201510245953A CN 104794102 B CN104794102 B CN 104794102B
Authority
CN
China
Prior art keywords
modules
cholesky
cholesky decomposition
programmable logic
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510245953.9A
Other languages
English (en)
Other versions
CN104794102A (zh
Inventor
王少军
王晓璐
马宁
刘大同
彭宇
彭喜元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201510245953.9A priority Critical patent/CN104794102B/zh
Publication of CN104794102A publication Critical patent/CN104794102A/zh
Application granted granted Critical
Publication of CN104794102B publication Critical patent/CN104794102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种加速实现Cholesky分解的嵌入式片上系统,涉及一种加速实现Cholesky分解的系统。本发明为了解决目前现有的基于Cholesky分解方法实现线性方程组求解的硬件加速系统存在计算时间比较长的问题。本发明包括用于对整个计算过程的任务调度的ARM处理器模块、用于控制外部DDR存储器的数据读写的DDR控制模块、用于可编程逻辑Programmable Logic模块与ARM处理器模块之间的信息传输AXI总线模块以及用于对正定对称矩阵进行Cholesky分解的可编程逻辑Programmable Logic模块。可编程逻辑Programmable Logic模块基于Submatrix‑Cholesky分解(块分解)方式实现线性方程组系数的求解存在大量的并行更新操作,可以实现数据更规律的访存,读写控制更简单,运算时间大幅缩短;本发明适用于加速实现线性方程组的求解。

Description

一种加速实现Cholesky分解的嵌入式片上系统
技术领域
本发明涉及一种加速实现Cholesky分解的系统。
背景技术
机器学习算法LS-SVM在嵌入式高性能计算领域得到了广泛应用,其计算过程包含线性方程组的求解,目前,关于线性方程组的求解方法有多种,乔里斯基(Cholesky)分解、高斯消元法、LU分解和共轭梯度法等,考虑算法本身特性以及在嵌入式SoC平台上的加速计算特点,需要一种计算量较小、计算复杂度较低,且含有大量并行计算的求解方法,Cholesky分解方法成为最好的选择。
根据Cholesky分解线性方程组的计算次序和编程方式,可将计算过程分为Row_Cholesky分解(行分解)、Column_Cholesky分解(列分解)和Submatrix_Cholesky(块分解)三种方式,这三种分解方式对数据的依赖性、需求量以及规律访存等存在不同,对于不同的硬件开发平台需要选择的具体的分解方式设计合理的数据通路结构。关于Cholesky分解在嵌入式硬件平台上的加速实现方法较多,针对不同开发平台具有的不同特点,可以设计不同的加速实现系统。但是,现有的Cholesky分解系统实现线性方程组的求解还存在着计算时间比较长的问题。
发明内容
本发明为了解决目前现有的基于Cholesky分解方法实现线性方程组求解的硬件加速系统存在计算时间比较长的问题。
一种加速实现Cholesky分解的嵌入式片上系统,主要包括下述模块:
ARM处理器模块,用于对整个计算过程的任务调度;
DDR控制模块,用于控制外部DDR存储器的数据读写;
可编程逻辑Programmable Logic模块,简称PL模块,用于从外部存储读取正定对称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
本发明充分发挥Zynq开发平台异构的优势,采用Choleksy分解方法实现对线性方程组求解的加速计算,采用软硬件协同设计技术,主要解决异构SoC平台上的处理任务划分问题以及片上系统中的数据通路问题,设计基于Zynq ZC702开发平台,将分解过程中的任务调度由ARM处理器模块实现,从而减少设计的复杂度;将线性方程组系数的求解由可编程逻辑Programmable Logic模块实现;可编程逻辑Programmable Logic模块基于Submatrix-Cholesky分解(块分解)方式实现线性方程组系数的求解;
相比Row_Cholesky分解(行分解)和Column_Cholesky分解(列分解),Submatrix-Cholesky分解对数据的依赖更具有规律性,且一次更新过程对数据的需求量较少,本发明选取Submatrix_Cholesky分解方式,并针对Submatrix_Cholesky分解方式设计了合理的数据通路结构;而且Submatrix-Cholesky分解存在大量的并行更新操作,可以实现数据更规律的访存,读写控制更简单,运算时间大幅缩短;最终,基于高层次综合HLS开发方式实现线性方程组求解的加速计算。
附图说明
图1为本发明原理示意图;
图2为Cholesky分解的数据通路示意图。
具体实施方式
具体实施方式一:结合图1、图2说明本实施方式,一种加速实现Cholesky分解的嵌入式片上系统,主要包括下述模块:
ARM处理器模块,用于对整个计算过程的任务调度;
DDR控制模块,用于控制外部DDR存储器的数据读写;
可编程逻辑Programmable Logic模块,简称PL模块,用于从外部存储读取正定对称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
具体实施方式二:本实施方式所述的PL模块包括:
Control Logic子模块,用于接收ARM处理器模块的控制信息,协调计算单元和更新单元的计算工作以及控制内部RAM存储子模块数据读写工作;
DMA子模块,用于控制PL模块与外部存储器之间进行数据传输;
Cholesky分解子模块,用于对正定对称矩阵的Submatrix-Cholesky分解并实现内部数据的缓存。
Submatrix-Cholesky分解顺序如表1所示,
表1 Submatrix-Cholesky分解顺序表
其它步骤与具体实施方式一相同。
具体实施方式三:本实施方所述的一种加速实现Cholesky分解的嵌入式片上系统,
所述的Cholesky分解子模块包括:
计算单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的计算操作;所述的计算单元设定为一个,仅用于执行对对角线上值进行开方计算以及每列中对角线元素下方的元素与开方值的除法计算;
内部RAM缓存单元,用于对计算单元计算后的结果数据进行存储,方便更新单元从中直接调用;
更新单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的更新操作,完成计算列之后的所有列的更新过程;所述的更新单元设置为多个,通过一个选择器连接到内部RAM缓存单元,进而连接到同一个计算单元;
所述的更新单元对所有列进行更新时为多个更新单元并行进行;
FIFO单元,用于对Cholesky分解子模块的初始数据及更新单元计算结果进行缓存,便于实现数据传输的流模式。
其它步骤与具体实施方式一或二相同。
具体实施方式四:本实施方式所述的AXI总线模块包括:
AXI GP子模块,用于ARM处理器模块向PL模块传输控制信息,通过AXI-Lite总线实现;
AXI HP子模块,用于ARM处理器模块与PL模块之间实现高速数据传输,通过AXI-Stream总线实现。
其它步骤与具体实施方式一至三之一相同。
具体实施方式五:本实施方式中Cholesky分解子模块对正定对称矩阵进行Submatrix-Cholesky分解时,计算单元完成第一列数据的计算操作;更新单元对第一列数据后面的所有列进行更新。
其它步骤与具体实施方式一至四之一相同。
具体实施方式六:本实施方式所述的更新单元对所有列进行更新时为多个更新单元并行进行
其它步骤与具体实施方式五相同。

Claims (2)

1.一种加速实现Cholesky分解的嵌入式片上系统,其特征在于包括下述模块:
ARM处理器模块,用于对整个计算过程的任务调度;
DDR控制模块,用于控制外部DDR存储器的数据读写;
可编程逻辑Programmable Logic模块,简称PL模块,用于从外部存储读取正定对称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输;
所述的PL模块包括:
Control Logic子模块,用于接收ARM处理器模块的控制信息,协调计算单元和更新单元的计算工作以及控制内部RAM存储子模块数据读写工作;
DMA子模块,用于控制PL模块与外部存储器之间进行数据传输;
Cholesky分解子模块,用于对正定对称矩阵的Submatrix-Cholesky分解并实现内部数据的缓存;
Cholesky分解子模块对正定对称矩阵进行Submatrix-Cholesky分解时,计算单元完成第一列数据的计算操作;更新单元对第一列数据后面的所有列进行更新;
所述的Cholesky分解子模块包括:
计算单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的计算操作;所述的计算单元设定为一个,仅用于执行对对角线上值进行开方计算以及每列中对角线元素下方的元素与开方值的除法计算;
内部RAM缓存单元,用于对计算单元计算后的结果数据进行存储,方便更新单元从中直接调用;
更新单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的更新操作,完成计算列之后的所有列的更新过程;所述的更新单元设置为多个,通过一个选择器连接到内部RAM缓存单元,进而连接到同一个计算单元;所述的更新单元对所有列进行更新时为多个更新单元并行进行;
FIFO单元,用于对Cholesky分解子模块的初始数据及更新单元计算结果进行缓存,便于实现数据传输的流模式。
2.根据权利要求1所述的一种加速实现Cholesky分解的嵌入式片上系统,其特征在于:
所述的AXI总线模块包括:
AXI GP子模块,用于ARM处理器模块向PL模块传输控制信息,通过AXI-Lite总线实现;
AXI HP子模块,用于ARM处理器模块与PL模块之间实现高速数据传输,通过AXI-Stream总线实现。
CN201510245953.9A 2015-05-14 2015-05-14 一种加速实现Cholesky分解的嵌入式片上系统 Active CN104794102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510245953.9A CN104794102B (zh) 2015-05-14 2015-05-14 一种加速实现Cholesky分解的嵌入式片上系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510245953.9A CN104794102B (zh) 2015-05-14 2015-05-14 一种加速实现Cholesky分解的嵌入式片上系统

Publications (2)

Publication Number Publication Date
CN104794102A CN104794102A (zh) 2015-07-22
CN104794102B true CN104794102B (zh) 2018-09-07

Family

ID=53558903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510245953.9A Active CN104794102B (zh) 2015-05-14 2015-05-14 一种加速实现Cholesky分解的嵌入式片上系统

Country Status (1)

Country Link
CN (1) CN104794102B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550133A (zh) * 2015-12-08 2016-05-04 天津津航计算技术研究所 基于zynq的axis-fifo桥电路及利用该电路进行数据传输的方法
US9984041B2 (en) 2016-06-30 2018-05-29 International Business Machines Corporation System, method, and recording medium for mirroring matrices for batched cholesky decomposition on a graphic processing unit
CN107657316B (zh) * 2016-08-12 2020-04-07 北京深鉴智能科技有限公司 通用处理器与神经网络处理器的协同系统设计
CN112035795A (zh) * 2020-09-07 2020-12-04 哈尔滨工业大学 Cholesky分解算法运算级流水线硬件加速方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129420A (zh) * 2011-03-07 2011-07-20 哈尔滨工业大学 基于Cholesky分解解决最小二乘问题的FPGA实现装置
CN103336877A (zh) * 2013-07-25 2013-10-02 哈尔滨工业大学 一种基于rvm动态可重构的卫星锂离子电池剩余寿命预测系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129420A (zh) * 2011-03-07 2011-07-20 哈尔滨工业大学 基于Cholesky分解解决最小二乘问题的FPGA实现装置
CN103336877A (zh) * 2013-07-25 2013-10-02 哈尔滨工业大学 一种基于rvm动态可重构的卫星锂离子电池剩余寿命预测系统及方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
An FPGA implementation for solving least square problem;Depeng Yang等;《2009 17th IEEE symposium on field programmable custom computing machines》;20090407;303-306 *
FPGA矩阵计算并行算法与结构;邬贵明;《中国博士学位论文全文数据库信息科技辑》;20120415;53-54,65-67,76-77,81-84 *
Implementation of LS-SVM with HLS on Zynq;Ma Ning等;《Field-Programmable Technology,2014 International Conference on》;20141212;346-348 *
一种Cholesky分解重叠算法;张德好等;《计算机工程》;20120930;第38卷(第18期);262-264 *
基于FPGA的Cholesky分解细粒度并行结构与实现;郭磊等;《计算机研究与发展》;20111231;第48卷(第S1期);258-265 *

Also Published As

Publication number Publication date
CN104794102A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN110097174B (zh) 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置
CN104794102B (zh) 一种加速实现Cholesky分解的嵌入式片上系统
CN111242289B (zh) 一种规模可扩展的卷积神经网络加速系统与方法
CN102208005B (zh) 一种2-d卷积器
CN105608490B (zh) 细胞阵列计算系统以及其中的通信方法
CN103617150A (zh) 一种基于gpu的大规模电力系统潮流并行计算系统及其方法
CN105843775A (zh) 片上数据划分读写方法、系统及其装置
CN101937425B (zh) 基于gpu众核平台的矩阵并行转置方法
CN109863477A (zh) 具有本地化存储器的矩阵处理器
CN109416755A (zh) 人工智能并行处理方法、装置、可读存储介质、及终端
CN106776466A (zh) 一种fpga异构加速计算装置及系统
CN109840585A (zh) 一种面向稀疏二维卷积的运算方法和系统
CN106528490A (zh) 一种fpga异构加速计算装置及系统
CN105913063A (zh) 一种图像数据集的稀疏表示的加速方法及装置
CN105955896A (zh) 一种可重构dbf算法硬件加速器及控制方法
CN106484532A (zh) 面向sph流体模拟的gpgpu并行计算方法
CN109446478A (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
Wang et al. FP-AMR: A Reconfigurable Fabric Framework for Adaptive Mesh Refinement Applications
US8539207B1 (en) Lattice-based computations on a parallel processor
CN113254359A (zh) 用于执行存储器内计算的方法和存储器模块
CN111667052A (zh) 专用神经网络加速器的标准与非标准卷积一致性变换方法
CN106909320A (zh) 一种多维数据扩充传输的方法、装置以及系统
CN101794276B (zh) 适用于soc的dct_idct协处理器
CN102411491B (zh) 一种用于并行fft计算的数据存取方法及装置
CN109408148A (zh) 一种国产化计算平台及其应用加速方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant