CN115033843A - 基于三角脉动阵列的协方差矩阵计算的电路实现方法 - Google Patents

基于三角脉动阵列的协方差矩阵计算的电路实现方法 Download PDF

Info

Publication number
CN115033843A
CN115033843A CN202210948609.6A CN202210948609A CN115033843A CN 115033843 A CN115033843 A CN 115033843A CN 202210948609 A CN202210948609 A CN 202210948609A CN 115033843 A CN115033843 A CN 115033843A
Authority
CN
China
Prior art keywords
processing unit
column vector
column
calculation
triangular
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
CN202210948609.6A
Other languages
English (en)
Other versions
CN115033843B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202210948609.6A priority Critical patent/CN115033843B/zh
Publication of CN115033843A publication Critical patent/CN115033843A/zh
Application granted granted Critical
Publication of CN115033843B publication Critical patent/CN115033843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种基于三角脉动阵列的协方差矩阵计算的电路实现方法,该方法对协方差计算公式执行转换处理,使之适于数字电路并行计算;根据三角脉动阵列尺寸,对待求协方差矩阵进行分块,从而定制行—列“Z”型交织寻址方式的数据结构,为三角脉动阵列并发同步提供操作数输入;脉动阵列为三角形结构,包含对角线处理单元和内部普通处理单元,对角线处理单元包含列向量乘累加与列向量求和功能且有三种工作模式,内部普通处理单元不含列向量求和功能,所有处理单元在同一时钟下以脉动方式并行流水线工作。本发明适合于各种尺寸规模的协方差矩阵计算,尤其是基于数字电路方式实现的协方差矩阵计算。

Description

基于三角脉动阵列的协方差矩阵计算的电路实现方法
技术领域
本发明涉及数字信号处理技术领域,具体涉及一种基于三角脉动阵列的协方差矩阵计算的电路实现方法。
背景技术
协方差矩阵可以描述多个随机变量不同维度间的关系,在统计学与概率论中,扮 演着重要角色,其广泛应用于随机建模、通信工程、金融量化、机器学习等各种场景中的数 字信号处理。目前,大部分研究是针对已有协方差矩阵的基础上进行开展的,对于如何快速 生成协方差矩阵计算的研究则相对较少,协方差矩阵的生成需要占据大量数学计算,其复 杂度呈
Figure 854412DEST_PATH_IMAGE001
,随着具体应用中的行、列维度急剧增加,协方差矩阵计算复杂度海量递增, 协方差矩阵的计算已逐渐成为影响整体性能的关键因素之一。
脉动阵列常用来设计专用的数字电路以实现预定的数字信号处理算法,发挥脉动阵列简洁、规整的设计规则及数字电路高并行流水线的优势来提升整体电路性能,但是传统脉动阵列对不同的设计输入尺寸适应性差,且阵列全局同步运行需要多拍时钟才能实现,不利于整体低延迟性能。
申请号CN201310091707.3提及了基于FPGA数字电路生成协方差矩阵的计算,其采用经典方法,即列向量间先求均值再求偏差然后乘累加计算输出协方差结果的串行执行过程,该过程导致列向量需反复读取,以及因此而产生的频繁的数据搬移操作。
申请号CN201910696826.9提及了设计一种脉动阵列结构用于矩阵LU分解计算,其行输入采用并行同步输入的方式进行改进,有利于低延迟性能提升,但是该发明仅对小于等于该脉动阵列尺寸的矩阵LU分解,不能适于更大尺寸规模的矩阵输入,且不能直接用于协方差矩阵计算。
发明内容
为提升协方差矩阵计算的效率并适应不同尺寸规模的协方差矩阵计算,本发明提出一种协方差矩阵计算的实现方法及其三角脉动阵列结构,对协方差计算公式执行适于数字电路并行计算的转换处理,根据脉动阵列尺寸定制行—列“Z”型交织寻址方式的数据结构,并设计三角结构的脉动阵列电路,对角线处理单元和内部普通处理单元采取区别设计,所有处理单元在同一时钟下脉动方式运行,可以支持不同尺寸规模的协方差矩阵的高效计算。
本发明的目的通过如下的技术方案来实现:
一种基于三角脉动阵列的协方差矩阵计算的电路实现方法,输入为n列m维的列向量,待求协方差矩阵为n行×n列的实数对称方阵或复数共轭矩阵,所述三角脉动阵列包含p个对角线处理单元和p(p-1)/2个内部普通处理单元,所述方法包括如下步骤:
S1:对协方差计算公式进行转换处理,转换公式如下
Figure 240394DEST_PATH_IMAGE002
,其中XY表示m维的任意两列列向量,
Figure 285711DEST_PATH_IMAGE003
Figure 149761DEST_PATH_IMAGE004
分别表示列向量XY的均值;x i y i 分别表示列向量XY中的m维元素;
S2:根据三角脉动阵列尺寸对待求协方差矩阵分块,输入列向量按每p列一组,若n/p不能整除,则通过补零实现整除,共计q组;
S3:根据S2分组规则定制数据结构,寻址规则为:先是第1列到第p列列向量的第1行元素,然后是第1列到第p列列向量的第2行元素数据,依次类推,直至第1列到第p列列向量的第m行元素数据,总体寻址顺序呈行—列“Z”型交织方式;
S4:根据S2的分组,共有
Figure 915199DEST_PATH_IMAGE005
种两两组合及q种自身组合,每种组合在同一时钟驱动 下,横向和纵向各p列列向量元素数据并发同步地传输给p个对角线处理单元的输入端口;
S5:三角脉动阵列中的处理单元对各种组合状态下接收到的列向量进行协方差计算,得到q个对角块和q(q-1)/2正方块,它们共同组成待求协方差矩阵中实际有效的n(n+1)/2个协方差计算结果,其中对角块含p(p+1)/2个协方差,正方块含p 2个协方差。
进一步地,所有对角线处理单元和内部普通处理单元在同一时钟驱动下,以脉动方式同步执行三项操作:
当三角脉动阵列为上三角结构时,所述三项操作为:
(1)从其紧邻的左侧和底侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的右侧和顶侧处理单元传播列向量元素;
当三角脉动阵列为下三角结构时,所述三项操作为:
(1)从其紧邻的右侧和顶侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的左侧和底侧处理单元传播列向量元素。
进一步地,对角线处理单元和内部普通处理单元都包含列向量乘累加功能,其中对角线处理单元还包括列向量求和功能;
对角线处理单元有三种工作模式:
模式a:对角线处理单元在横向和纵向接收到的是同一列列向量元素,列向量乘累加功能使能,列向量求和累加功能使能;
模式b:对角线处理单元在横向和纵向分别接收不同的列向量,列向量乘累加功能使能,列向量求和累加功能禁止;
模式c:对角线处理单元将模式b中的横纵两列列向量在其内部进行交换,且列向量乘累加功能与列向量求和累加功能均禁止,此时相当于对角线处理单元内部计算功能旁路。
进一步地,每个对角线处理单元和内部普通处理单元均包括横、纵两个方向输入端口以及横纵两个方向输出端口,当某处理单元处于横向最尾端的位置时,该处理单元横向输出端口停止向外传播列向量元素,当某处理单元处于纵向最尾端的位置时,该处理单元纵向输出端口停止向外传播列向量元素。
进一步地,对角线处理单元中每列列向量只需完成1轮求和累加计算,其结果保存在全局寄存器电路中,并作为S1公式中各列向量间协方差计算共享。
进一步地,一旦行维度输入m确定,立刻启动coef1=1/m和coef2=1/(m-1)计算,其计算结果分别保存在全局寄存器电路中,coef1和coef2作为相乘的公用系数,在步骤S1经转换后的协方差计算公式中以乘法计算替代更为复杂的除法计算。
一种基于三角脉动阵列的协方差矩阵计算的电路实现系统,该系统包括一个或多个处理器,用于实现基于三角脉动阵列的协方差矩阵计算的电路实现方法。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现基于三角脉动阵列的协方差矩阵计算的电路实现方法。
本发明的有益效果如下:
本发明通过对协方差计算公式执行适于数字电路并行计算的转换处理,达到了计算并行度的提升以及计算量、数据搬移操作的减少,避免了传统方法先求均值后求偏差再乘累加串行执行的不足;定制的行—列“Z”型交织寻址的数据结构,可以实现三角脉动阵列横、纵方向并发同步接收列向量元素,促进了脉动阵列的低延迟性能的提升;三角脉动阵列结构以及对角线处理单元与内部普通处理单元的区别设计,适应了协方差矩阵具有实对称(或复数共轭)的特点,并能高效适配不同尺寸规模的协方差矩阵计算。
附图说明
图1为协方差计算公式转换前后计算量、数据搬移分析对比图。
图2为定制的行—列“Z”交织寻址的数据结构示意图。
图3为16列列向量协方差矩阵上三角部分示意图。
图4为对角线处理单元内部电路结构示意图。
图5为4×4规模的上三角脉动阵列结构模式a工作模式示意图。
图6为4×4规模的上三角脉动阵列结构模式b工作模式示意图。
图7为4×4规模的上三角脉动阵列结构模式c工作模式示意图。
图8为基于三角脉动阵列的协方差矩阵计算的电路实现系统的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先给出技术术语解释:
(1)FP32:Single-precision Floating-point Format 单精度32位浮点格式
(2)FPGA:Field Programmable Gate Array 现场可编程门阵列
(3)PE:Processing Element,处理单元
(4)AXI:Advanced eXtensible Interface,AXI总线接口
(5)DDR:Double Data Rate,这里特指DDR Synchronous Dynamic Random AccessMemory,例如DDR4 SDRAM。
本发明具体实施例以输入为16列1024行的实数列向量、待求协方差矩阵为16行×16列的实对称方阵进行阐述,由于协方差矩阵实对称特点,可以等效为求上三角形式的136个协方差计算结果,三角脉动阵列由4个对角线PE和6个内部普通PE组成。选用Xilinx公司提供的ZCU102作为开发板,FPGA型号是XCZU9EG-2FFVB1156E,作为具体部署的数字电路硬件,片外存储由1片DDR4 SDRAM构成,数据位宽为16比特,片内存储由2组BRAM组成,每组BRAM由4块36Kb的BRAM并行拼接组成,总计只需8块36Kb的BRAM即可,内部AXI总线位宽为128比特,即单个时钟节拍可同时获取包括4个FP32类型的单精度浮点数据。
本实施例具体的执行过程如下:
步骤1:对协方差计算公式进行适于数字电路硬件形式的转换处理,转换公式如下
Figure 206503DEST_PATH_IMAGE006
,其中XY表示16列列 向量中的任意两列列向量,当X=Y时协方差的计算结果即为方差,
Figure 739115DEST_PATH_IMAGE007
Figure 406857DEST_PATH_IMAGE004
分别表示列向量XY的均值,x i y i 及分别表示列向量XY内的1024个元素。如图1所示分析,传统计算公式共6 ×1024=6144次计算操作,公式转换处理后仅需4×1024+1=4097次计算操作,计算量约降为 原来的2/3,且列向量元素x i y i 分别只需一次读取即可,从而减少近一半的数据搬移操作, 进一步地,经转换公式改造后的计算处理方法中,乘累加与列向量求和操作可以并行执行, 避免了传统方法先求均值后求偏差再乘累加串行执行的不足。
步骤2:根据三角脉动阵列尺寸对待求协方差矩阵进行分块,输入列向量按每4列一组,共计16/4=4组;由于AXI总线位宽是128比特,从外部DDR4 SDRAM读取的列向量元素数据,正好对应4个对角线PE的横向输入或纵向输入端口的位宽。
步骤3:根据步骤2分组规则定制数据结构,寻址规则为先是第1列到第4列列向量的第1行元素,然后是第1列到第4列列向量的第2行元素数据,依次类推,直至第1列到第4列列向量的第1024行元素数据,总体寻址顺序呈行—列“Z”型交织方式,如图2所示,其中Addr_0表示地址0。
步骤4:根据步骤2的分组共有6种两两组合及4种自身组合,每种组合在同一时钟驱动下,横向和纵向各4列列向量元素数据并发同步地传输给4个对角线PE的输入端口。
步骤5:三角脉动阵列中的处理单元对各种组合状态下接收到的列向量进行协方差计算,可以得到4个对角块和6正方块,它们共同组成待求协方差矩阵中实际有效的136个协方差计算结果,其中每个对角块含10个协方差,每个正方块含16个协方差,如图3所示。
三角脉动阵列的结构可以为上三角形式,也可以为下三角形式。所有对角线处理单元和内部普通处理单元在同一时钟驱动下,以脉动方式同步执行三项操作:
当三角脉动阵列为上三角结构时,所述三项操作为:
(1)从其紧邻的左侧和底侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的右侧和顶侧处理单元传播列向量元素;
当三角脉动阵列为下三角结构时,所述三项操作为:
(1)从其紧邻的右侧和顶侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的左侧和底侧处理单元传播列向量元素。
本实施例中的三角脉动阵列其结构为上三角形式,4个对角线PE和6个内部普通PE在同一时钟驱动下,以脉动方式同步运行,各自从其紧邻的左侧和底侧PE接收列向量元素、执行PE内部计算处理、向其紧邻的右侧和顶侧PE传播列向量元素等3项操作。
本实施例中的三角脉动阵列,4个对角线PE和6个内部普通PE都包含列向量乘累加功能,其中对角线PE还包括列向量求和功能,对角线PE内部电路结构如图4所示;图5~图7以列向量1~列向量4与列向量5~列向量8的协方差组合作为示例,描述对角线PE的三种工作模式。
模式a:每个对角线PE的横向和纵向输入端口接收的是同一列列向量元素,列向量乘累加与求和功能累加均使能,如图5所示,此时可以计算列向量1~列向量4各种组合的方差或协方差。
模式b:对角线PE的横向和纵向输入端口接收的是不同的列向量元素,列向量乘累加功能继续有效,但列向量求和累加功能屏蔽,如图6所示,此时可以计算列向量1~列向量4与列向量5~列向量8其中10种组合的协方差。
模式c:此时将模式b中的横纵两列列向量在对角线PE内部进行交换,同时列向量乘累加与列向量求和累加功能均屏蔽,相当于对角线PE内部计算功能旁路,如图7所示,此时可以计算列向量1~列向量4与列向量5~列向量8剩余的6种组合的协方差。
以此类推,列向量1~列向量4、列向量5~列向量8、列向量9~列向量12及列向量13~列向量16的两两组合及自身组合可以分别得到计算,即步骤5中的4个对角块和6正方块的协方差,总计实质有效的136个协方差计算完成。
本实施例中三角脉动阵列的每个对角线处理单元和内部普通处理单元均包括横、纵两个方向输入端口以及横纵两个方向输出端口,当某处理单元处于横向最尾端的位置时,该处理单元横向输出端口停止向外传播列向量元素,当某处理单元处于纵向最尾端的位置时,该处理单元纵向输出端口停止向外传播列向量元素。如图5~图7所示,最右侧的4个处理单元横向输出端口停止向右传播列向量元素,最顶侧一行的4个处理单元的纵向输出端口停止向上传播列向量元素。
本实施例中对角线处理单元中每列列向量只需完成1轮求和累加计算,其结果保存在全局寄存器电路中,并作为步骤1公式中各列向量间协方差计算共享。如图5所示,4个对角线处理单元分别计算出列向量1~列向量4各自列向量的累加和,并保存在共享寄存器电路中,其结果可以被图5~图7中其他协方差计算使用。
本实施例中一旦行维度输入m=1024确定,立刻启动coef1=1/1024和coef2=1/1023计算,其计算结果分别保存在全局寄存器电路中,coef1和coef2作为相乘的公用系数,在步骤1经转换后的协方差计算公式中以乘法计算替代除法计算,由于乘法计算电路比除法计算简单,将有助于整体低延时性能的提升。
通过本发明实施例可以发现,经过对协方差计算公式进行适于数字电路硬件形式的转换处理,计算量降为原来的2/3、数据搬移次数缩减为原来的1/2、计算并行度提升1倍;根据脉动阵列尺寸定制的行—列“Z”型交织寻址的数据结构,匹配p个对角线PE的横向输入或纵向输入端口的位宽,实现并发同步传输数据,提高了访存效率同时也提升了脉动阵列低延迟性能。三角形式的脉动阵列结构、对角线PE的特殊设计及其三种工作模式,适应了协方差矩阵实对称或复数共轭特点,并能高效适应任意尺寸协方差矩阵的计算。
与前述基于三角脉动阵列的协方差矩阵计算的电路实现方法的实施例相对应,本发明还提供了一种基于三角脉动阵列的协方差矩阵计算的电路实现系统的实施例。
参见图8,本发明实施例提供一种基于三角脉动阵列的协方差矩阵计算的电路实现系统,包括一个或多个处理器,用于实现上述实施例中的基于三角脉动阵列的协方差矩阵计算的电路实现系统。
本发明基于三角脉动阵列的协方差矩阵计算的电路实现系统的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的系统,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本发明基于三角脉动阵列的协方差矩阵计算的电路实现系统所在任意具备数据处理能力的设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中系统所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于三角脉动阵列的协方差矩阵计算的电路实现方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(SmartMedia card, SMC)、SD卡、闪存卡(Flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算仉程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储己经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (8)

1.一种基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,输入为n列m维的列向量,待求协方差矩阵为n行×n列的实数对称方阵或复数共轭矩阵,所述三角脉动阵列包含p个对角线处理单元和p(p-1)/2个内部普通处理单元,所述方法包括如下步骤:
S1:对协方差计算公式进行转换处理,转换公式如下
Figure 437462DEST_PATH_IMAGE001
,其中XY表示m维 的任意两列列向量,
Figure 660633DEST_PATH_IMAGE002
Figure 866486DEST_PATH_IMAGE003
分别表示列向量XY的均值;x i y i 分别表示列向量XY中的m维 元素;
S2:根据三角脉动阵列尺寸对待求协方差矩阵分块,输入列向量按每p列一组,若n/p不能整除,则通过补零实现整除,共计q组;
S3:根据S2分组规则定制数据结构,寻址规则为:先是第1列到第p列列向量的第1行元素,然后是第1列到第p列列向量的第2行元素数据,依次类推,直至第1列到第p列列向量的第m行元素数据,总体寻址顺序呈行—列“Z”型交织方式;
S4:根据S2的分组,共有
Figure 107981DEST_PATH_IMAGE004
种两两组合及q种自身组合,每种组合在同一时钟驱动下, 横向和纵向各p列列向量元素数据并发同步地传输给p个对角线处理单元的输入端口;
S5:三角脉动阵列中的处理单元对各种组合状态下接收到的列向量进行协方差计算,得到q个对角块和q(q-1)/2正方块,它们共同组成待求协方差矩阵中实际有效的n(n+1)/2个协方差计算结果,其中对角块含p(p+1)/2个协方差,正方块含p 2个协方差。
2.根据权利要求1所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,所有对角线处理单元和内部普通处理单元在同一时钟驱动下,以脉动方式同步执行三项操作:
当三角脉动阵列为上三角结构时,所述三项操作为:
(1)从其紧邻的左侧和底侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的右侧和顶侧处理单元传播列向量元素;
当三角脉动阵列为下三角结构时,所述三项操作为:
(1)从其紧邻的右侧和顶侧处理单元接收列向量元素;
(2)处理单元内部计算处理;
(3)向其紧邻的左侧和底侧处理单元传播列向量元素。
3.根据权利要求1所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,对角线处理单元和内部普通处理单元都包含列向量乘累加功能,其中对角线处理单元还包括列向量求和功能;
对角线处理单元有三种工作模式:
模式a:对角线处理单元在横向和纵向接收到的是同一列列向量元素,列向量乘累加功能使能,列向量求和累加功能使能;
模式b:对角线处理单元在横向和纵向分别接收不同的列向量,列向量乘累加功能使能,列向量求和累加功能禁止;
模式c:对角线处理单元将模式b中的横纵两列列向量在其内部进行交换,且列向量乘累加功能与列向量求和累加功能均禁止,此时相当于对角线处理单元内部计算功能旁路。
4.根据权利要求1所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,每个对角线处理单元和内部普通处理单元均包括横、纵两个方向输入端口以及横纵两个方向输出端口,当某处理单元处于横向最尾端的位置时,该处理单元横向输出端口停止向外传播列向量元素,当某处理单元处于纵向最尾端的位置时,该处理单元纵向输出端口停止向外传播列向量元素。
5.根据权利要求3所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,对角线处理单元中每列列向量只需完成1轮求和累加计算,其结果保存在全局寄存器电路中,并作为S1公式中各列向量间协方差计算共享。
6.根据权利要求1所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法,其特征在于,一旦行维度输入m确定,立刻启动coef1=1/m和coef2=1/(m-1)计算,其计算结果分别保存在全局寄存器电路中,coef1和coef2作为相乘的公用系数,在步骤S1经转换后的协方差计算公式中以乘法计算替代更为复杂的除法计算。
7.一种基于三角脉动阵列的协方差矩阵计算的电路实现系统,其特征在于,该系统包括一个或多个处理器,用于实现权利要求1~6中任一项所述的基于三角脉动阵列的协方差矩阵计算的电路实现方法。
8.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1~6中任一项的基于三角脉动阵列的协方差矩阵计算的电路实现方法。
CN202210948609.6A 2022-08-09 2022-08-09 基于三角脉动阵列的协方差矩阵计算的电路实现方法 Active CN115033843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210948609.6A CN115033843B (zh) 2022-08-09 2022-08-09 基于三角脉动阵列的协方差矩阵计算的电路实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210948609.6A CN115033843B (zh) 2022-08-09 2022-08-09 基于三角脉动阵列的协方差矩阵计算的电路实现方法

Publications (2)

Publication Number Publication Date
CN115033843A true CN115033843A (zh) 2022-09-09
CN115033843B CN115033843B (zh) 2022-11-08

Family

ID=83129977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210948609.6A Active CN115033843B (zh) 2022-08-09 2022-08-09 基于三角脉动阵列的协方差矩阵计算的电路实现方法

Country Status (1)

Country Link
CN (1) CN115033843B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038582A (zh) * 2007-04-02 2007-09-19 中国科学院光电技术研究所 用于自适应光学波前复原运算的脉动阵列处理方法及电路
CN102111354A (zh) * 2010-10-20 2011-06-29 东南大学 用于mimo-ofdm的lmmse检测方法
CN105224715A (zh) * 2015-09-01 2016-01-06 国网浙江省电力公司经济技术研究院 一种山区地貌下强风三维脉动风场综合模拟方法
US20180267938A1 (en) * 2017-03-16 2018-09-20 International Business Machines Corporation Matrix multiplication on a systolic array
CN108628799A (zh) * 2018-04-17 2018-10-09 上海交通大学 可重构的单指令多数据脉动阵列结构、处理器及电子终端
CN109787676A (zh) * 2018-12-27 2019-05-21 航天恒星科技有限公司 一种高动态下的零陷展宽方法
CN110457648A (zh) * 2019-07-30 2019-11-15 暨南大学 一种用于lu分解的脉动阵列结构的实现方法
CN111199017A (zh) * 2020-01-06 2020-05-26 西南电子技术研究所(中国电子科技集团公司第十研究所) 多功能厄密对称矩阵求逆ip核的实现方法
CN112152777A (zh) * 2020-08-18 2020-12-29 西安交通大学 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质
CN113156383A (zh) * 2021-04-21 2021-07-23 杭州加速科技有限公司 基于国产fpga的雷达信号抗干扰方法、系统及数据处理设备
WO2022061788A1 (en) * 2020-09-25 2022-03-31 Intel Corporation Versatile systolic array for maximum likelihood mimo detectors

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038582A (zh) * 2007-04-02 2007-09-19 中国科学院光电技术研究所 用于自适应光学波前复原运算的脉动阵列处理方法及电路
CN102111354A (zh) * 2010-10-20 2011-06-29 东南大学 用于mimo-ofdm的lmmse检测方法
CN105224715A (zh) * 2015-09-01 2016-01-06 国网浙江省电力公司经济技术研究院 一种山区地貌下强风三维脉动风场综合模拟方法
US20180267938A1 (en) * 2017-03-16 2018-09-20 International Business Machines Corporation Matrix multiplication on a systolic array
CN108628799A (zh) * 2018-04-17 2018-10-09 上海交通大学 可重构的单指令多数据脉动阵列结构、处理器及电子终端
CN109787676A (zh) * 2018-12-27 2019-05-21 航天恒星科技有限公司 一种高动态下的零陷展宽方法
CN110457648A (zh) * 2019-07-30 2019-11-15 暨南大学 一种用于lu分解的脉动阵列结构的实现方法
CN111199017A (zh) * 2020-01-06 2020-05-26 西南电子技术研究所(中国电子科技集团公司第十研究所) 多功能厄密对称矩阵求逆ip核的实现方法
CN112152777A (zh) * 2020-08-18 2020-12-29 西安交通大学 一种面向同态密码运算的密钥转换方法、系统、设备及可读存储介质
WO2022061788A1 (en) * 2020-09-25 2022-03-31 Intel Corporation Versatile systolic array for maximum likelihood mimo detectors
CN113156383A (zh) * 2021-04-21 2021-07-23 杭州加速科技有限公司 基于国产fpga的雷达信号抗干扰方法、系统及数据处理设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
POOGYEON PARK; T. KAILATH: ""New square-root smoothing algorithms"", 《IEEE》 *
刘禹韬等: "基于Systolic阵的IQRD-SMI算法的研究与FPGA优化实现", 《计算机测量与控制》 *
王吉军等: "3D-MMA:基于3D集成电路的矩阵乘加速结构", 《计算机工程与科学》 *

Also Published As

Publication number Publication date
CN115033843B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
KR102443546B1 (ko) 행렬 곱셈기
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
CN114391135A (zh) 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统
US20190171448A1 (en) Stream processor with low power parallel matrix multiply pipeline
JP6864224B2 (ja) プロセッサ、情報処理装置及びプロセッサの動作方法
TW202123093A (zh) 實行卷積運算的系統及方法
US20240119114A1 (en) Matrix Multiplier and Matrix Multiplier Control Method
CN113076521B (zh) 一种基于gpgpu可重构架构的方法及计算系统
CN110674927A (zh) 一种用于脉动阵列结构的数据重组方法
US5422836A (en) Circuit arrangement for calculating matrix operations in signal processing
CN111597501A (zh) 自适应性矩阵乘法器的系统
JPH0792790B2 (ja) ベクトル並列計算機
CN107368459B (zh) 基于任意维数矩阵乘法的可重构计算结构的调度方法
CN115033843B (zh) 基于三角脉动阵列的协方差矩阵计算的电路实现方法
CN113344183B (zh) 一种在计算系统中实现卷积运算的方法及计算系统
US11488650B2 (en) Memory processing unit architecture
Giles Jacobi iteration for a Laplace discretisation on a 3D structured grid
JP7136343B2 (ja) データ処理システム、方法、およびプログラム
CN114218136A (zh) 一种面向脉动阵列的面积友好存储地址映射方法
CN113392959A (zh) 一种在计算系统中重构架构的方法及计算系统
US20040215928A1 (en) Method for manipulating data in a group of processing elements to transpose the data using a memory stack
Vassiliadis et al. Block based compression storage expected performance
WO2020226903A1 (en) Memory processing unit architecture
Emeliyanenko High-performance polynomial GCD computations on graphics processors
EP4195027A1 (en) Computational circuit with hierarchical accumulator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant