CN103902762A - 一种针对正定对称矩阵进行最小二乘方程求解的电路结构 - Google Patents

一种针对正定对称矩阵进行最小二乘方程求解的电路结构 Download PDF

Info

Publication number
CN103902762A
CN103902762A CN201410087165.7A CN201410087165A CN103902762A CN 103902762 A CN103902762 A CN 103902762A CN 201410087165 A CN201410087165 A CN 201410087165A CN 103902762 A CN103902762 A CN 103902762A
Authority
CN
China
Prior art keywords
matrix
module
acd
circuit structure
multiplier
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
CN201410087165.7A
Other languages
English (en)
Other versions
CN103902762B (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN201410087165.7A priority Critical patent/CN103902762B/zh
Publication of CN103902762A publication Critical patent/CN103902762A/zh
Application granted granted Critical
Publication of CN103902762B publication Critical patent/CN103902762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明属于集成电路设计技术领域,具体为一种针对正定对称矩阵进行最小二乘方程求解的电路结构。整体结构由四部分组成:用于矩阵分解的ACD计算模块、用于求解下三角矩阵逆矩阵的取逆模块、用于计算矩阵乘法的下三角乘法模块和矩阵乘法模块。该电路采用ACD分解算法进行矩阵分解,避免了平方根操作和多次取逆操作,操作简单,实现面积小。同时,在实现的过程中充分使用脉动阵列结构以及采用电路结构复用技术,在保证功能正确的同时,提高了硬件结构的利用率,使得实现面积进一步减小。本发明能够较好地求解最小二乘方程。

Description

一种针对正定对称矩阵进行最小二乘方程求解的电路结构
技术领域
本发明属于集成电路设计技术领域,具体涉及一种针对输入为正定对称矩阵的最小二乘方程求解电路结构。
背景技术
Nyquist准则指出,数字信号要精确恢复,采样速率必须大于信号带宽的两倍。随着科学技术和人类社会的发展,人们对信息的需求日益增大,所携带信号的频率和带宽也越来越高,从而产生海量的采样数据,导致对硬件的采样速度和存储提出了巨大的挑战。最近提出的压缩感知理论指出,在信号满足稀疏性的情况下,可以以远低于Nyquist采样频率的速度进行全局观测,将压缩和采样合并进行,然后通过适当的重构算法恢复出原始信号,从而大大降低数据采集以及数据存储和传输的代价。
信号重构算法是压缩感知理论能够应用于实际的重要组成部分,当前流行和实用的重构算法是一种具有较低计算复杂度和较快收敛性的贪婪算法,贪婪算法的硬件实现关键在于如何有效的求解最小二乘方程问题。最小二乘问题,即Least Squares Problem,用数学表达式描述就是,                                               
Figure 954968DEST_PATH_IMAGE002
,而该表达式等价于
Figure 934425DEST_PATH_IMAGE004
,其实现的重点在于矩阵的取逆操作和矩阵乘法操作。对于矩阵取逆而言,可以采用通过伴随矩阵的方式直接求解,但是随着矩阵规模的增大,这种直接求解算法的硬件消耗会很高。另一种方法则是间接求解,先将矩阵分解成形式比较特殊的矩阵,对于这些形式特殊的矩阵而言,取逆操作比较简单,然后通过矩阵乘法得到最终的逆矩阵。这种间接取逆的方式是常见的硬件实现方式,并且利于脉动阵列结构的实现,从而大大的降低了实现面积。常见方法有QR分解算法、LU分解算法、ACD算法,对比这三种算法,使用QR分解算法会遇到平方根操作的问题,使用LU分解算法会遇到求解两个矩阵的逆矩阵的问题,而ACD算法不仅没有平方根操作,并且只需要对下三角矩阵进行取逆。对于矩阵乘法而言,由于在取逆的过程中已经涉及到了乘法操作,两者是使用的相同的结构。本设计提出了对于输入是正定对称矩阵,使用ACD算法取逆,采用脉动阵列结构,完成求解最小二乘方程。
发明内容
为了克服现有技术的不足,本发明的目的在于提供一种能够求解输入为正定矩阵的最小二乘方程的电路,其采用了脉动阵列结构以及电路结构复用,能实现电路实现面积的最小化。
本发明提供一种针对正定对称矩阵进行最小二乘方程求解的电路结构,其包括ACD计算模块、取逆模块、下三角乘法模块、矩阵乘法模块和时序调整模块;其中:
ACD计算模块,用于矩阵分解,其接收输入的正定矩阵
Figure 714162DEST_PATH_IMAGE006
,对它进行矩阵分解,得到一个下三角矩阵L和一个对角线元素矩阵D-1
取逆模块,用于求解下三角矩阵逆矩阵,其接收下三角矩阵L,将三角矩阵进行下三角矩阵取逆操作,得到逆矩阵L-1
下三角乘法模块,用于计算矩阵乘法,其接收逆矩阵L-1和矩阵D-1,将这两个矩阵进行乘法操作得到正定矩阵
Figure 171688DEST_PATH_IMAGE006
的逆矩阵
Figure 986061DEST_PATH_IMAGE008
矩阵乘法模块,用于计算矩阵乘法,其将输入的
Figure 808523DEST_PATH_IMAGE010
和逆矩阵
Figure 137873DEST_PATH_IMAGE008
相乘得到最小二乘方程的解;
时序调整模块,用于调整取逆模块的输出数据到下三角乘法模块的输入数据之间的时序,使得取逆模块的输出数据的时序满足下三角乘法模块实现矩阵乘法所要求的输入数据的时序,保证下三角乘法模块中矩阵乘法功能的正确性。
本发明中,ACD计算模块、取逆模块、下三角乘法模块、矩阵乘法模块在硬件实现时均采用脉动阵列结构,即将模块的所有输入数据分时钟周期输入到模块中,因而每个时钟周期所有的硬件单元都处于工作状态,提高了硬件单元使用率,从而降低了实现面积。同时,矩阵乘法模块中的矩阵乘法规模较下三角乘法模块中矩阵乘法规模小,且同为矩阵乘法,因而本部分结构直接复用下三角乘法模块中的矩阵结构,从而进一步降低了实现面积。
本发明的有益效果在于:在本设计中,矩阵的分解算法采用了ACD算法,避免了其他算法中的平方根操作和多次取逆操作,使得操作简单,实现面积小。同时,在实现的过程中充分使用脉动阵列结构,在保证功能正确的同时,使得实现面积进一步减小。
附图说明
图1为内部数据格式。
图2为最小二乘方程求解电路基本框图。
图3为ACD分解算法结构图和数据时序图。
图4为下三角矩阵取逆结构图和数据时序图。
图5为下三角乘法模块结构图和数据时序图。
图6为矩阵乘法模块结构图和数据时序图。
具体实施方式
本发明中,最小二乘方程求解电路基本框图如图2所示。该设计的工作过程如下:输入
Figure 336773DEST_PATH_IMAGE006
为正定矩阵,将其输入到ACD计算模块进行矩阵分解,得到一个下三角矩阵L和一个对角线元素矩阵D-1;下三角矩阵L输入到取逆模块进行下三角矩阵取逆操作,得到其逆矩阵L-1;然后两个逆矩阵D-1、L-1输入到小三角乘法模块进行乘法操作得到正定矩阵的逆矩阵
Figure 61333DEST_PATH_IMAGE008
;最后的矩阵乘法单元实现输入的
Figure 815662DEST_PATH_IMAGE010
和逆矩阵
Figure 614991DEST_PATH_IMAGE008
相乘得到最小二乘方程的解x。
本设计中的输入为矩阵
Figure 200693DEST_PATH_IMAGE006
,其中矩阵
Figure 630537DEST_PATH_IMAGE012
为高斯随机分布矩阵,为满足数据范围和数据精度的要求,内部数据格式如图1所示,[27]位为符号位,0表示正数,1表示负数;[26:20]为整数部分;[19:0]为小数部分,数据采用补码形式表示。
ACD计算模块结构如图3所示,其中输入矩阵
Figure 872163DEST_PATH_IMAGE006
是大小为k*k的矩阵,输入数据
Figure 209603DEST_PATH_IMAGE014
表示输入数据的第i行第j列数据,输出数据表示分解后的L矩阵的第i行第j列数据,
Figure 253487DEST_PATH_IMAGE018
表示分解后的D矩阵的逆矩阵D-1的第i行第i列数据,即对角线元素。中间部分画出了内部单元的连接关系,共有四个基本单元:ACD_PE0、ACD_PE1、ACD_PE2、ACD_PE3。最下方和最上方分别指出了输入输出的时序关系,按照图中的时序图,输入数据在经过3(k-1)个时钟周期后,全部输入到模块之中,而输出数据在经过4k-3个时钟周期之后全部得到。图中模块之间的连线方向代表了基本单元之间数据连接关系,并且连线方向对应右上角基本模块输入输出方向,数据从最底层进入到模块之中,然后经过底层模块的运算后传递到上一层,数据继续向上传直到最顶层将数据输出,在每个时钟周期,都有数据从最底层进入且下一层的基本单元将数据运算之后传递给上一层的基本单元。这种数据的脉动结构使得每个时钟周期所有的基本单元都处于工作状态,提高了硬件单元利用率,大大的降低了模块的实现面积。右上角部分画出了这四个基本单元内部结构,ACD_PE0由一个除法器组成,ACD_PE1由一个乘法器组成,ACD_PE2由一个乘法器和一个减法器组成,ACD_PE3由一个乘法器和一个减法器组成,并且每个数据在进入基本单元内部进行运算之前都经过一个寄存器。
下三角矩阵取逆模块结构如图4所示,其中输入数据是ACD计算模块分解后的L矩阵,但是由于L矩阵是一个对角元素为1的下三角矩阵,所以我们只需要输入对角元素以下的数据即可。输入数据表示输入L矩阵的第i行第j列数据,输出数据
Figure 185857DEST_PATH_IMAGE020
表示取逆后的矩阵L-1的第i行第j列数据。中间部分画出了内部单元的连接关系,共有三个基本单元:inv_PE0、inv_PE1、inv_PE2。最下方和最上方分别指出了输入输出的时序关系,按照图中的时序图,输入数据在经过3(k-2)个时钟周期后,全部输入到模块之中,而输出数据在经过4k-6个时钟周期之后全部得到。图中模块之间的连线方向代表了基本单元之间数据连接关系,并且连线方向对应左上角基本模块输入输出方向,同ACD计算模块一样,采用脉动阵列结构,数据从最底层输入,从阵列的右侧输出。左上角部分画出了这三个基本单元内部结构,inv_PE0由一个减法器组成,inv_PE1由一个寄存器组成,inv_PE2由一个乘法器和一个加法器组成,并且每个数据在进入基本单元内部进行运算之前都经过一个寄存器。
下三角乘法模块结构如图5所示,其中输入数据是ACD计算模块分解后的D-1矩阵和下三角矩阵取逆模块取逆后的L-1矩阵,输入数据
Figure 746151DEST_PATH_IMAGE018
表示输入D-1矩阵的第i行第i列数据,输入数据
Figure 517798DEST_PATH_IMAGE020
表示输入L-1矩阵的第i行第j列数据。中间部分画出了内部单元的连接关系,由一个基本单元PE组成,最下方和最上方指出了输入的时序关系,按照图中的时序图,输入数据在经过k个时钟周期后,全部输入到模块之中,并且输出数据在第k个时钟周期得到。图中模块之间的连线方向代表了基本单元之间数据连接关系,并且连线方向对应左上角基本模块输入输出方向,同ACD计算模块一样,采用脉动阵列结构,输入数据在经过k个周期的运算之后得到最终的输出数据。左上角部分画出了这个基本单元内部结构,由两个乘法器,一个加法器和一个寄存器组成,其功能实际上就是一个累乘加器。经过该模块之后,就得到了最初输入矩阵的逆矩阵
Figure 413259DEST_PATH_IMAGE008
矩阵乘法模块结构如图6所示,其中输入数据为逆矩阵
Figure 765743DEST_PATH_IMAGE008
(T) 和输入
Figure 770608DEST_PATH_IMAGE010
(Y),表示输入
Figure 691477DEST_PATH_IMAGE008
矩阵的第i行第i列数据,而输入Y为一个列向量,因而表示输入Y的第i个数据。中间部分画出了内部单元的连接关系,其基本单元PE同下三角乘法模块中的基本单元,且该模块的运行方式同下三角乘法模块运行相同。实际上,这里的结构是图5中中的一部分,在具体实现中,这部分结构是和图5中的某些部分复用的,这样可以进一步的减少实现面积。

Claims (4)

1.一种针对正定对称矩阵进行最小二乘方程求解的电路结构,其特征在于:其包括ACD计算模块、取逆模块、下三角乘法模块、矩阵乘法模块和时序调整模块;其中:
ACD计算模块,用于矩阵分解,其接收输入的正定矩阵                                                ,对它进行矩阵分解,得到一个下三角矩阵L和一个对角线元素矩阵D-1
取逆模块,用于求解下三角矩阵逆矩阵,其接收下三角矩阵L,将三角矩阵进行下三角矩阵取逆操作,得到逆矩阵L-1
下三角乘法模块,用于计算矩阵乘法,其接收逆矩阵L-1和矩阵D-1,将这两个矩阵进行乘法操作得到正定矩阵
Figure 195342DEST_PATH_IMAGE001
的逆矩阵
矩阵乘法模块,用于计算矩阵乘法,其将输入的
Figure 171705DEST_PATH_IMAGE003
和逆矩阵
Figure 396013DEST_PATH_IMAGE002
相乘得到最小二乘方程的解;
时序调整模块,用于调整取逆模块的输出数据到下三角乘法模块的输入数据之间的时序,使得取逆模块的输出数据的时序满足下三角乘法模块实现矩阵乘法所要求的输入数据的时序。    
2.根据权利要求1所述的电路结构,其特征在于:所述ACD计算模块中包括ACD_PE0、ACD_PE1、ACD_PE2、ACD_PE3四个基本单元,其中,ACD_PE0由一个除法器组成,ACD_PE1由一个乘法器组成,ACD_PE2由一个乘法器和一个减法器组成,ACD_PE3由一个乘法器和一个减法器组成,并且每个数据在进入基本单元内部进行运算之前都经过一个寄存器,四个基本单元之间相互连接组成脉动阵列结构。
3.根据权利要求1所述的电路结构,其特征在于:所述取逆模块中包括inv_PE0、inv_PE1、inv_PE2三个基本单元,其中,inv_PE0由一个减法器组成,inv_PE1由一个寄存器组成,inv_PE2由一个乘法器和一个加法器组成,并且每个数据在进入基本单元内部进行运算之前都经过一个寄存器,三个基本单元之间相互连接组成脉动阵列结构。
4.根据权利要求1所述的电路结构,其特征在于:所述下三角乘法模块和矩阵乘法模块中均包括一个基本单元PE,该基本单元由两个乘法器,一个加法器和一个寄存器组成,其功能为累乘加,各单元之间相互连接组成脉动阵列结构。
CN201410087165.7A 2014-03-11 2014-03-11 一种针对正定对称矩阵进行最小二乘方程求解的电路结构 Active CN103902762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410087165.7A CN103902762B (zh) 2014-03-11 2014-03-11 一种针对正定对称矩阵进行最小二乘方程求解的电路结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410087165.7A CN103902762B (zh) 2014-03-11 2014-03-11 一种针对正定对称矩阵进行最小二乘方程求解的电路结构

Publications (2)

Publication Number Publication Date
CN103902762A true CN103902762A (zh) 2014-07-02
CN103902762B CN103902762B (zh) 2016-11-16

Family

ID=50994083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410087165.7A Active CN103902762B (zh) 2014-03-11 2014-03-11 一种针对正定对称矩阵进行最小二乘方程求解的电路结构

Country Status (1)

Country Link
CN (1) CN103902762B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701068A (zh) * 2016-02-19 2016-06-22 南京大学 基于分时复用技术的cholesky矩阵求逆系统
WO2017107337A1 (zh) * 2015-12-22 2017-06-29 合肥工业大学 一种基于改进的按位替换法求矩阵三角分解的模块及方法
CN108416434A (zh) * 2018-02-07 2018-08-17 复旦大学 针对神经网络的卷积层与全连接层进行加速的电路结构
CN110705703A (zh) * 2019-10-16 2020-01-17 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271124A1 (en) * 2004-06-08 2005-12-08 Arik Gubeskys Equalizer co-efficient generation apparatus and method therefor
US20090202005A1 (en) * 2008-02-07 2009-08-13 Cairns Douglas A Method and Apparatus for Improved Channel Estimation for Communications Signal Processing
CN102129420A (zh) * 2011-03-07 2011-07-20 哈尔滨工业大学 基于Cholesky分解解决最小二乘问题的FPGA实现装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271124A1 (en) * 2004-06-08 2005-12-08 Arik Gubeskys Equalizer co-efficient generation apparatus and method therefor
US20090202005A1 (en) * 2008-02-07 2009-08-13 Cairns Douglas A Method and Apparatus for Improved Channel Estimation for Communications Signal Processing
CN102129420A (zh) * 2011-03-07 2011-07-20 哈尔滨工业大学 基于Cholesky分解解决最小二乘问题的FPGA实现装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107337A1 (zh) * 2015-12-22 2017-06-29 合肥工业大学 一种基于改进的按位替换法求矩阵三角分解的模块及方法
CN105701068A (zh) * 2016-02-19 2016-06-22 南京大学 基于分时复用技术的cholesky矩阵求逆系统
CN105701068B (zh) * 2016-02-19 2018-06-19 南京大学 基于分时复用技术的cholesky矩阵求逆系统
CN108416434A (zh) * 2018-02-07 2018-08-17 复旦大学 针对神经网络的卷积层与全连接层进行加速的电路结构
CN108416434B (zh) * 2018-02-07 2021-06-04 复旦大学 针对神经网络的卷积层与全连接层进行加速的电路结构
CN110705703A (zh) * 2019-10-16 2020-01-17 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器
CN110705703B (zh) * 2019-10-16 2022-05-27 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器

Also Published As

Publication number Publication date
CN103902762B (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN107341133B (zh) 基于任意维数矩阵lu分解的可重构计算结构的调度方法
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103927290A (zh) 一种任意阶下三角复矩阵求逆运算方法
CN103092560B (zh) 一种基于Bypass技术的低功耗乘法器
Vucha et al. Design and FPGA implementation of systolic array architecture for matrix multiplication
CN110163357A (zh) 一种计算装置及方法
CN103902762A (zh) 一种针对正定对称矩阵进行最小二乘方程求解的电路结构
CN109284824A (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
Zhang et al. A pipeline VLSI architecture for high-speed computation of the 1-D discrete wavelet transform
CN103369326A (zh) 适于高性能视频编码标准hevc的变换编码器
CN105608059A (zh) 一种基于改进的按位替换法求矩阵三角分解的模块
CN104038770A (zh) 一种基于随机计算的离散余弦变换实现方法及系统
Li et al. A precision-scalable energy-efficient bit-split-and-combination vector systolic accelerator for NAS-optimized DNNs on edge
Nan et al. DC-LSTM: Deep compressed LSTM with low bit-width and structured matrices
Zhang et al. Design and implementation of LSTM accelerator based on FPGA
Meher et al. New systolic algorithm and array architecture for prime-length discrete sine transform
Nan et al. An energy efficient accelerator for bidirectional recurrent neural networks (BiRNNs) using hybrid-iterative compression with error sensitivity
Huang et al. A high performance multi-bit-width booth vector systolic accelerator for NAS optimized deep learning neural networks
Meher Unified systolic-like architecture for DCT and DST using distributed arithmetic
CN102970545A (zh) 一种基于二维离散小波变换算法的静态图像压缩方法
CN107368459A (zh) 基于任意维数矩阵乘法的可重构计算结构的调度方法
CN102129419A (zh) 基于快速傅立叶变换的处理器
CN107831823B (zh) 一种用于分析和优化电网拓扑结构的高斯消元方法
CN102541815A (zh) 一种基于概率计算的正余弦信号的产生方法
CN101977318B (zh) Dct量化的并行装置及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant