CN104794002B - 一种多路并行划分方法及*** - Google Patents

一种多路并行划分方法及*** Download PDF

Info

Publication number
CN104794002B
CN104794002B CN201410836965.4A CN201410836965A CN104794002B CN 104794002 B CN104794002 B CN 104794002B CN 201410836965 A CN201410836965 A CN 201410836965A CN 104794002 B CN104794002 B CN 104794002B
Authority
CN
China
Prior art keywords
result
multidiameter delay
way
division methods
operand
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
CN201410836965.4A
Other languages
English (en)
Other versions
CN104794002A (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.)
Nanjing University
Original Assignee
Nanjing 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 Nanjing University filed Critical Nanjing University
Priority to CN201410836965.4A priority Critical patent/CN104794002B/zh
Publication of CN104794002A publication Critical patent/CN104794002A/zh
Application granted granted Critical
Publication of CN104794002B publication Critical patent/CN104794002B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于特定资源的多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。有益效果为:通过光控与结构简单的处理电路实现在夜晚对窗台上方区域的监控,起到提醒住户以及警示盗窃者的作用,该室内报警器通过简易的器件即可完成本地数据的采集、处理、转化成声信息的功能,而且可靠性较高,隐蔽性强不易被盗窃者发现以致绕过该报警器进入室内。

Description

一种多路并行划分方法及***
技术领域
本发明涉及运算资源、存储资源有限的特定硬件***中实现自相关算法的并行划分技术,尤其涉及一种基于特定资源的多路并行划分方法及其架构。
背景技术
数字信号处理技术,作为重要的技术手段,不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空航天等工程技术领域,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础之一,涉及范围非常广泛。而随着半导体工艺技术的飞速发展、芯片性能的不断提升,为大批量数据的实时处理提供了可能。数字信号处理技术所使用的主要算法多是对数据进行滤波、卷积、相关和谱分析运算等。
自相关是描述随机信号x(t)在任意两个不同时刻t1,t2间的相关程度,连续信号自相关函数定义为:
数学上容易看出,RXX(τ)是偶函数,正余弦信号的自相关函数同样是一个正余弦函数。周期信号的自相关函数仍是同频率周期信号。当τ=0时,RXX(τ)具有最大值,即信号的均方值。说明此时相关程度最大。
对于自相关算法的数字信号处理,因信号是离散的,函数可定义为以下形式。即典型乘累加结构。
发明内容
本发明目的在于克服以上现有技术之不足,提供一种基于特定资源的多路并行划分方法及其架构,具体有以下技术方案实现:
所述基于特定资源的多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述方法基于自相关算法,设定输入相量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,所述两个向量的对应项进行乘累加,得到第二个结果,重复上述步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述最终结果的序列是以中间数为对称中心,左右两边的数共轭对称。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述运算结果只计算出前一半结果,前一半结果运算结束后启动DMA搬运,在顺序搬运完前一半结果后,沿逆序方向将前一半结果取共轭依次搬出。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述输入向量的乘累加阶数从1递增至number,基于运算量的划分方式设定四路分配的结果数量依次是0.5*number、0.2071*number、0.1589*number、0.1334*number。
利用所述的基于特定资源的多路并行划分方法,提供一种基于特定资源的多路并行划分的硬件架构,包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,所述乘累加器支持四路运算,有两路源数据输入,共需要八个数据输入端。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,所述每个乘累加器内部包括一个复数乘法器与三个用于实现流水处理的复数加法器,所述复数乘法器与三个复数加法器依次串接,所述加法器的两个数据输入端分别由相应的组合逻辑控制选通。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,存储体交换模块由至少两个存储块连接组成。
本发明的优点如下:
本发明提供的基于特定资源的多路并行划分方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,从而使得并行化的运算IP之间任务负载保持一致,获取最大的性能提升。设计中采用四路并行,每一路获得的结果数量均由顶层配置参数(即向量点数)通过移位相加得到。该结果决定了每一路 AGU产生的地址序列,同时作为运算结束的重要判断条件。发明结合硬件***的运算资源和存储资源,实现16~128k向量长度范围内的自相关算法硬件设计,详细论述了内存的使用情况,给出每个点数区间范围的硬件并行度、基本模块设计、***集成及量化的性能指标。
附图说明
图1是自相关算法滑窗图示。
图2是乘累加器示意图。
图3是自相关算法硬件设计模块互联图。
具体实施方式
下面结合附图对本发明方案进行详细说明。
本实施例提供的基于特定资源的多路并行划分方法,通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。
该方法基于自相关算法,设定输入相量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,两个向量的对应项进行乘累加,得到第二个结果,重复上述步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
自相关算法的主要通过滑窗实现,以A向量1024点为例,算法滑窗过程如图1所示。首先由A向量的第一个数与A共轭向量的最后一个数相乘,得到第一个结果,即A(0)A(1023)*;然后共轭向量向右滑窗一格,两个向量的对应项进行乘累加,得到第二个结果,即A(0)A(1022)*+A(1)A(1023)*,同样可得到第三个结果为A(0)A(1021)*+A(1)A(1022)*+A(2)A(1023)*。依次类推,直到滑窗至最后一次运算,得到最后一个结果,即A(1023)A(0)*。
假设向量点数为number,那么自相关算法处理后的结果点数为number*2-1,从数学上不难看出,最终的结果序列是以中间数为对称中心,左右两边的数共轭对称。
从自相关算法的表达式以及滑窗图可以看出,算法本身只有基本的乘加运算。具体设计方法如下:
(1)由于运算资源可提供4组复数乘法器和16组复数加法器,理论上可以对自相关算法作四路并行设计。
(2)运算结果是共轭对称的,那么只需要计算出前一半的结果,运算结束后启动DMA搬运。在顺序搬运完前一半结果后,沿逆序方向将结果取共轭依次搬出。这样整体运算时间缩小一半,性能提升一倍。
(3)基于(2)的前提下,自相关算法实际运算得到的点数为number,源数据乘累加阶数从1递增至number。如果仅仅根据每路获得结果的数量平均划分,那么每一路实际的运算量将是失衡的,运算时间也会不匹配。因此需要采用基于运算量的划分方法,从数学上设计分配给每一路特定的结果数,使得其运算量大致相等,从而保证任务负载的平衡,使得性能最大化。
总的运算量为1+2+……+number,约为number2/2。得到前一半结果所需运算量为1+2+……+number/2,约为number2/8,恰好为总运算量的1/4,所以第一路恰好可以分配到前一半的结果。
得到前number*x个结果所需运算量为1+2+……+number*x,约为number2/2* x2,分别令x2等于1/4,2/4,3/4,得到的即为第一路,前两路,前三路共需要获得的结果量。x依次为0.5,0.7071,0.8660.四路分配的结果数量依次是0.5*number, 0.2071*number,0.1589*number,0.1334*number。
数字电路里只有高低电平,对应0,1两个值。对于整数的乘法,总可以通过左移相加的方法实现。但对于小数的乘法,仅有特定的小数才可以通过右移相加实现。具体设计的verilog代码如下:
assign constant1=(number>>);
assign constant2=(number>>1)+(number>>3)+(number>>4)+(number>>5);
assign constant3=(number>>1)+(number>>2)+(number>>3);
assign result_num1=(number>>1);
assign result_num2=(number>>3)+(number>>4)+(number>>5);
assign result_num3=(number>>2)-(number>>4)-(number>>5);
assign result_num4=number-(number>>1)-(number>>2)-(number>>3);
表1 自相关算法并行任务划分与理论值的对比
利用的基于特定资源的多路并行划分方法,提供一种基于特定资源的多路并行划分的硬件架构,包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
对于自相关算法,从滑窗的过程来看,数据间的相关性决定了无法对源向量作并行分割。这就意味着即使四路并行,每一路依然需要完整的向量存储。乘累加器有两路源数据输入,共需要8路输入。图2所示为乘累加器示意图,每个乘累加器内部包含1个复数乘法器,三个复数加法器,因每个运算IP都有三级流水,故采用三个加法器的目的是为了实现流水处理。每个加法器的两个数据输入端的MUX选通分别由相应组合逻辑控制。
当点数较小时(假设不足8k),那么仅需8个bank存放源数据即可。当点数不高于16k时,需要每两个bank做一个memory_switch,共需16个bank提供八路数据流,同时结果数据存放到后16个bank中。内部调用四路乘累加器,各输入输出数据的地址由对应的operend_AGU及result_AGU控制。图3所示为自相关算法硬件设计模块互联图。
当向量点数高于16k不高于64k时,以区间最大值64k向量为例,完整存放该向量,需要恰好8个bank,两路数据流即占据16个bank,考虑到结果的存放,此时的算法无法支持并行处理,因此对于该区间的向量,只能一路乘累加器计算,无法并行。
当点数大于64k,不大于128k时,同样以区间最大值128k向量为例,此时的两路数据流需要占满所有的bank,这样结果就只能存放在规模较小的常数 memory中。该点数区间同样不支持并行,仅依靠一组乘累加器运算。每路数据存放需16个Bank,共需要全部的32个bank来存放源操作数。所以只能将结果存放在规模较小的常数memory中。常数Memory总量8K,而结果量最大为 256k-1,无法支持全部结果一次性存入。所以设计中,当AGU模块的地址计数器达到8k时,意味着获取最后一个数所需的地址序列已生成,代表在几十个的时钟周期后,常数Memory将存满。此时AGU会生成一中断信号发送到模块顶层,由顶层确定在14个clk之后(经实验仿真确定),将输入给乘累加器和 result_AGU模块的enable信号拉低,意味着将所有模块中断掉,然后发出finish 信号告知主控制器,将数据从ConstantMemory搬运出去,完成后主控制器发送 start信号到自相关算法顶层,内部逻辑会同时启动所有模块恢复执行。当全部的运算执行完毕后,finish_all拉高。
表2为三个特征向量点的***实际运行时间,满足项目性能指标要求。(***运行在1GHz主频)
表2 自相关算法性能指标

Claims (8)

1.一种多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束;所述方法基于自相关算法,设定输入向量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,所述两个向量的对应项进行乘累加,得到第二个结果,重复得到第一个结果与第二个结果的步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
2.根据权利要求1所述的多路并行划分方法,其特征在于所述最终结果的序列是以中间数为对称中心,左右两边的数共轭对称。
3.根据权利要求2所述的多路并行划分方法,其特征在于所述运算结果只计算出前一半结果,前一半结果运算结束后启动DMA搬运,在顺序搬运完前一半结果后,沿逆序方向将前一半结果取共轭依次搬出。
4.根据权利要求3所述的多路并行划分方法,其特征在于所述输入向量的乘累加阶数从1递增至number,基于运算量的划分方式设定四路分配的结果数量依次是0.5*number、0.2071*number、0.1589*number、0.1334*number。
5.采用如权利要求1-4任一项所述的多路并行划分方法的多路并行划分***,其特征在于包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块若干乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
6.根据权利要求5所述的多路并行划分***,其特征在于所述乘累加器支持四路运算,有两路源数据输入,共需要八个数据输入端。
7.根据权利要求6所述的多路并行划分***,其特征在于所述每个乘累加器内部包括一个复数乘法器与三个用于实现流水处理的复数加法器,所述复数乘法器与三个复数加法器依次串接,所述加法器的两个数据输入端分别由相应的组合逻辑控制选通。
8.根据权利要求5所述的多路并行划分***,其特征在于存储体交换模块由至少两个存储块连接组成。
CN201410836965.4A 2014-12-29 2014-12-29 一种多路并行划分方法及*** Active CN104794002B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410836965.4A CN104794002B (zh) 2014-12-29 2014-12-29 一种多路并行划分方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410836965.4A CN104794002B (zh) 2014-12-29 2014-12-29 一种多路并行划分方法及***

Publications (2)

Publication Number Publication Date
CN104794002A CN104794002A (zh) 2015-07-22
CN104794002B true CN104794002B (zh) 2019-03-22

Family

ID=53558813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410836965.4A Active CN104794002B (zh) 2014-12-29 2014-12-29 一种多路并行划分方法及***

Country Status (1)

Country Link
CN (1) CN104794002B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089839A (zh) * 2017-10-11 2018-05-29 南开大学 一种基于fpga实现互相关运算的方法
CN108762719B (zh) * 2018-05-21 2023-06-06 南京大学 一种并行广义内积重构控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931449A (zh) * 2010-08-27 2010-12-29 中国科学院上海微***与信息技术研究所 分布式数字波束形成网络及数字波束形成处理方法
CN102214086A (zh) * 2011-06-20 2011-10-12 复旦大学 基于多核处理器的通用并行加速算法
CN102521047A (zh) * 2011-11-15 2012-06-27 重庆邮电大学 实现多核处理器间中断负载均衡的方法
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159680A1 (en) * 2011-12-19 2013-06-20 Wei-Yu Chen Systems, methods, and computer program products for parallelizing large number arithmetic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931449A (zh) * 2010-08-27 2010-12-29 中国科学院上海微***与信息技术研究所 分布式数字波束形成网络及数字波束形成处理方法
CN102214086A (zh) * 2011-06-20 2011-10-12 复旦大学 基于多核处理器的通用并行加速算法
CN102521047A (zh) * 2011-11-15 2012-06-27 重庆邮电大学 实现多核处理器间中断负载均衡的方法
CN103927290A (zh) * 2014-04-18 2014-07-16 南京大学 一种任意阶下三角复矩阵求逆运算方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN106203621B (zh) 用于卷积神经网络计算的处理器
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
Le Ly et al. High-performance reconfigurable hardware architecture for restricted Boltzmann machines
CN110210610A (zh) 卷积计算加速器、卷积计算方法及卷积计算设备
CN103677739B (zh) 一种可配置的乘累加运算单元及其构成的乘累加运算阵列
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构***及其处理方法
CN104899182A (zh) 一种支持可变分块的矩阵乘加速方法
CN103226543A (zh) 一种流水线结构的fft处理器
CN110276447A (zh) 一种计算装置及方法
CN110163350A (zh) 一种计算装置及方法
CN108710943A (zh) 一种多层前馈神经网络并行加速器
CN106776466A (zh) 一种fpga异构加速计算装置及***
CN105183425A (zh) 一种具有高精度低复杂度特性的固定位宽乘法器
CN104794002B (zh) 一种多路并行划分方法及***
CN105955896B (zh) 一种可重构dbf算法硬件加速器及控制方法
CN102567282B (zh) 通用dsp处理器中fft计算实现装置和方法
CN104777456B (zh) 可配置的雷达数字信号处理器及其处理方法
Sattianadan et al. Optimal placement of capacitor in radial distribution system using PSO
Xiao et al. FPGA-based scalable and highly concurrent convolutional neural network acceleration
CN102364456A (zh) 64点fft计算器
Li et al. Numerical solution of nonlinear Klein–Gordon equation using lattice Boltzmann method
Yang et al. An adaptive batch-orchestration algorithm for the heterogeneous GPU cluster environment in distributed deep learning system
CN102799564A (zh) 基于多核dsp平台的fft并行方法
Antony et al. Design of high speed Vedic multiplier using multiplexer based adder
CN108520105A (zh) 一种基于fpga的有源配电网多速率实时仿真方法

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