CN104794102A - 一种加速实现Cholesky分解的嵌入式片上*** - Google Patents

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

Info

Publication number
CN104794102A
CN104794102A CN201510245953.9A CN201510245953A CN104794102A CN 104794102 A CN104794102 A CN 104794102A CN 201510245953 A CN201510245953 A CN 201510245953A CN 104794102 A CN104794102 A CN 104794102A
Authority
CN
China
Prior art keywords
module
cholesky
data
submodule
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.)
Granted
Application number
CN201510245953.9A
Other languages
English (en)
Other versions
CN104794102B (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

Landscapes

  • Logic Circuits (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

一种加速实现Cholesky分解的嵌入式片上***
技术领域
本发明涉及一种加速实现Cholesky分解的***。
背景技术
机器学***台上的加速计算特点,需要一种计算量较小、计算复杂度较低,且含有大量并行计算的求解方法,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所示,
表1Submatrix-Cholesky分解顺序表
其它步骤与具体实施方式一相同。
具体实施方式三:本实施方所述的一种加速实现Cholesky分解的嵌入式片上***,
所述的Cholesky分解子模块包括:
计算单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的计算操作;
内部RAM缓存单元,用于对计算单元计算后的结果数据进行存储,方便更新单元从中直接调用;
更新单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的更新操作,完成计算列之后的所有列的更新过程;
FIFO单元,用于对Cholesky分解子模块的初始数据及更新单元计算结果进行缓存,便于实现数据传输的流模式。
其它步骤与具体实施方式一或二相同。
具体实施方式四:本实施方式所述的AXI总线模块包括:
AXI GP子模块,用于PS向PL传输控制信息,通过AXI-Lite总线实现;
AXI HP子模块,用于PS与PL之间实现高速数据传输,通过AXI-Stream总线实现。
其它步骤与具体实施方式一至三之一相同。
具体实施方式五:本实施方式中Cholesky分解子模块对正定对称矩阵进行Submatrix-Cholesky分解时,计算单元完成第一列数据的计算操作;更新单元对第一列数据后面的所有列进行更新。
其它步骤与具体实施方式一至四之一相同。
具体实施方式六:本实施方式所述的更新单元对所有列进行更新时为多个更新单元并行进行
其它步骤与具体实施方式五相同。

Claims (6)

1.一种加速实现Cholesky分解的嵌入式片上***,其特征在于主要包括下述模块:
ARM处理器模块,用于对整个计算过程的任务调度;
DDR控制模块,用于控制外部DDR存储器的数据读写;
可编程逻辑Programmable Logic模块,简称PL模块,用于从外部存储读取正定对称矩阵的值,进行Cholesky分解,得到下三角阵并将其存储在外部存储器中;
AXI总线模块,用于PL模块与ARM处理器模块之间的信息传输。
2.根据权利要求1所述的一种加速实现Cholesky分解的嵌入式片上***,其特征在于:
所述的PL模块包括:
Control Logic子模块,用于接收ARM处理器模块的控制信息,协调计算单元和更新单元的计算工作以及控制内部RAM存储子模块数据读写工作;
DMA子模块,用于控制PL模块与外部存储器之间进行数据传输;
Cholesky分解子模块,用于对正定对称矩阵的Submatrix-Cholesky分解并实现内部数据的缓存。
3.根据权利要求2所述的一种加速实现Cholesky分解的嵌入式片上***,其特征在于:
所述的Cholesky分解子模块包括:
计算单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的计算操作;
内部RAM缓存单元,用于对计算单元计算后的结果数据进行存储,方便更新单元从中直接调用;
更新单元,用于正定对称矩阵进行Submatrix-Cholesky分解时对列的更新操作,完成计算列之后的所有列的更新过程;
FIFO单元,用于对Cholesky分解子模块的初始数据及更新单元计算结果进行缓存,便于实现数据传输的流模式。
4.根据权利要求1或3所述的一种加速实现Cholesky分解的嵌入式片上***,其特征在于:
所述的AXI总线模块包括:
AXI GP子模块,用于PS向PL传输控制信息,通过AXI-Lite总线实现;
AXI HP子模块,用于PS与PL之间实现高速数据传输,通过AXI-Stream总线实现。
5.根据权利要求3所述的一种加速实现Cholesky分解的嵌入式片上***,其特征在于:Cholesky分解子模块对正定对称矩阵进行Submatrix-Cholesky分解时,计算单元完成第一列数据的计算操作;更新单元对第一列数据后面的所有列进行更新。
6.根据权利要求5所述的一种加速实现Cholesky分解的嵌入式片上***,其特征在于:所述的更新单元对所有列进行更新时为多个更新单元并行进行。
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 true CN104794102A (zh) 2015-07-22
CN104794102B 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)

Cited By (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桥电路及利用该电路进行数据传输的方法
CN107657316A (zh) * 2016-08-12 2018-02-02 北京深鉴科技有限公司 通用处理器与神经网络处理器的协同***设计
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
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
DEPENG YANG等: "An FPGA implementation for solving least square problem", 《2009 17TH IEEE SYMPOSIUM ON FIELD PROGRAMMABLE CUSTOM COMPUTING MACHINES》 *
MA NING等: "Implementation of LS-SVM with HLS on Zynq", 《FIELD-PROGRAMMABLE TECHNOLOGY,2014 INTERNATIONAL CONFERENCE ON》 *
张德好等: "一种Cholesky分解重叠算法", 《计算机工程》 *
邬贵明: "FPGA矩阵计算并行算法与结构", 《中国博士学位论文全文数据库信息科技辑》 *
郭磊等: "基于FPGA的Cholesky分解细粒度并行结构与实现", 《计算机研究与发展》 *

Cited By (9)

* 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
US10423695B2 (en) 2016-06-30 2019-09-24 International Business Machines Corporation System, method, and recording medium for mirroring matrices for batched Cholesky decomposition on a graphic processing unit
US10572569B2 (en) 2016-06-30 2020-02-25 International Business Machines Corporation System, Method, and recording medium for mirroring matrices for batched Cholesky decomposition on a graphic processing unit
US11036829B2 (en) 2016-06-30 2021-06-15 International Business Machines Corporation System, method, and recording medium for mirroring matrices for batched Cholesky decomposition on a graphic processing unit
US11790035B2 (en) 2016-06-30 2023-10-17 International Business Machines Corporation System, method, and recording medium for mirroring matrices for batched cholesky decomposition on a graphic processing unit
CN107657316A (zh) * 2016-08-12 2018-02-02 北京深鉴科技有限公司 通用处理器与神经网络处理器的协同***设计
CN107657316B (zh) * 2016-08-12 2020-04-07 北京深鉴智能科技有限公司 通用处理器与神经网络处理器的协同***设计
CN112035795A (zh) * 2020-09-07 2020-12-04 哈尔滨工业大学 Cholesky分解算法运算级流水线硬件加速方法

Also Published As

Publication number Publication date
CN104794102B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
US11403025B2 (en) Matrix transfer accelerator system and method
US10354733B1 (en) Software-defined memory bandwidth reduction by hierarchical stream buffering for general matrix multiplication in a programmable IC
CN111178518A (zh) 一种基于fpga的软硬件协同的加速方法
CN104794102A (zh) 一种加速实现Cholesky分解的嵌入式片上***
CN107633298B (zh) 一种基于模型压缩的递归神经网络加速器的硬件架构
EP3686816A1 (en) Techniques for removing masks from pruned neural networks
CN101533387A (zh) 基于fpga的边角块稀疏矩阵并行lu分解器
CN110276444B (zh) 基于卷积神经网络的图像处理方法及装置
CN108304926B (zh) 一种适用于神经网络的池化计算装置及方法
JP2022508028A (ja) 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末
KR20210014561A (ko) 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체
CN116382617B (zh) 基于fpga的带并行排序功能的奇异值分解加速器
US11436486B2 (en) Neural network internal data fast access memory buffer
US20230162013A1 (en) Semiconductor device
Fong et al. A cost-effective CNN accelerator design with configurable PU on FPGA
US20220284075A1 (en) Computing device, computing apparatus and method of warp accumulation
CN115860080A (zh) 计算核、加速器、计算方法、装置、设备、介质及***
CN112988064B (zh) 一种面向并发多任务的磁盘图处理方法
CN109522125B (zh) 一种矩阵乘积转置的加速方法、装置及处理器
JP2022074442A (ja) 演算装置および演算方法
CN113255270B (zh) 一种雅克比模版计算加速方法、***、介质及存储设备
US20190042421A1 (en) Memory control apparatus and memory control method
WO2021214944A1 (ja) 構成変換装置、構成変換方法、および構成変換プログラム
CN113325999B (zh) 用于处理非结构化源数据的方法和***
US20230168809A1 (en) Intelligence processor device and method for reducing memory bandwidth

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