当前位置: 首页 > 专利查询>东华大学专利>正文

一种基于SMP的足球机器人超大点数FFT算法制造技术

技术编号:15301653 阅读:122 留言:0更新日期:2017-05-12 19:00
本发明专利技术提供了一种基于SMP的足球机器人超大点数FFT算法。本发明专利技术通过分析SMP并行处理系统架构特点,得出一种适用于SMP的超大点数FFT算法。该算法采取限定一维序列划分规则最大限度降低复数乘加运算量,并改变乘铰链因子方法减少了对存储资源的依赖,同时优化数据分布和存储访问来隐藏显性转置。实测结果表明,该算法适用于SMP平台,能够解决单核处理器较难实现超大点数FFT的问题,并在FFT存储资源利用和执行性能上均有明显提升。

A super large number of FFT algorithms for soccer robot based on SMP

The invention provides an ultra large number of FFT algorithms for soccer robots based on SMP. By analyzing the architecture characteristics of SMP parallel processing system, the invention obtains a super large number FFT algorithm suitable for SMP. This algorithm defines a one-dimensional sequence division rule to minimize the complex multiplication operation, and change the twiddle factor multiplication method reduces the dependence of storage resources, and optimize the data distribution and storage access to hidden dominant transpose. The experimental results show that the algorithm is suitable for SMP platform, and can solve the problem that single core processor is difficult to implement super large number of FFT, and has obvious improvement in FFT storage resource utilization and execution performance.

【技术实现步骤摘要】

本专利技术涉及一种适合SMP的超大点数快速傅里叶变换算法。
技术介绍
快速傅里叶变换(FFT)是足球机器人雷达成像信号处理的关键技术,FFT的执行效率直接影响成像系统的性能。近年来高分辨、大测绘带宽的SAR成像系统的快速发展,使得FFT计算点数较大幅度的增加,带来了FFT计算面临处理器资源有限和执行效率降低两大问题,直接影响了SAR成像系统的研制进度。现有FFT算法大都基于单核处理器进行研究,很少有文献涉及针对适用于对称多处理器(SymmetricMultiprocessor,SMP)的超大点数FFT算法研究。可以搜索到的有以下方法:1)SingLeton算法,通过对蝶形进行重排,保证了处理器对内存的顺序操作,从而提升了处理速度,但是该重排的蝶形结构无法适用于SMP系统。2)基于GPU分块的FFT算法,解决了图像容量较大引起的内存溢出问题,对于SAR成像中采用SMP计算FFT具有一定借鉴意义,但该算法很难移植到其它多核处理器平台。3)将一维大点数FFT拆分成二维行列小点数来处理,在有限的资源下,为实现更大点数的FFT提供了解决方法,且在大点数时对性能有很大提升,但是该方法基于单核处理器来设计,并没有涉及多核处理器并行优化的研究。随着FFT处理点数的增加,单核处理器的FFT算法不仅存在处理器资源受限的问题,而且其性能也很难满足现有应用系统对强实时性的要求。目前芯片技术的发展已经不能够适应摩尔定律和突破功率墙的限定,单核处理器性能已接近极限值,为了追求更高的处理性能,各芯片厂商采取在相同的面积上集成更多的处理器核。SMP汇集了一组处理器,它是应用十分广泛的并行技术,且越来越多的雷达信号处理系统开始采用SMP作为主要处理芯片。
技术实现思路
本专利技术的目的是提出一种适合SMP的超大点数FFT算法,以提升SAR成像信号处理性能。为了达到上述目的,本专利技术的技术方案是提供了一种基于SMP的足球机器人超大点数FFT算法,设SMP的核处理个数为Q,待处理的一维大点数序列的长度为L=2n,其特征在于,所述算法包括以下步骤:步骤1、将一维大点数序列L拆分成M×N的二维矩阵,且行方向顺序存储在片外存储空间,M与N的值根据式(1)得到:步骤2、由SMP的主核读取片外存储空间中Q列M长度的数据到片内共享空间,并转置成列方向连续;步骤3、SMP的每个核分别计算一列M点FFT,FFT结果乘以铰链因子,其值Z(n0,k0)如式(2)所示,并将结果存储到片内共享空间,由SMP的主核原位写回片外存储空间:式(2)中,n0=0,1,…,M-1,k0=0,1,…,N-1;步骤4、重复步骤1~步骤3,完成列FFT和乘铰链因子计算,铰链因子只存储第1行数据,其他行的铰链因子由第1行的铰链因子重复计算得出;步骤5、由SMP的主核读取片外存储空间中Q行N长度的数据到片内共享空间;步骤6、SMP每个核分别计算一行N点FFT,并将结果转置存储到片内共享空间,由SMP的主核按照列顺序写回片外存储空间;步骤7、重复步骤5~步骤6,完成行FFT计算,得到FFT计算结果。本专利技术通过分析SMP并行处理系统架构特点,得出一种适用于SMP的超大点数FFT算法。该算法采取限定一维序列划分规则最大限度降低复数乘加运算量,并改变乘铰链因子方法减少了对存储资源的依赖,同时优化数据分布和存储访问来隐藏显性转置。实测结果表明,该算法适用于SMP平台,能够解决单核处理器较难实现超大点数FFT的问题,并在FFT存储资源利用和执行性能上均有明显提升。附图说明图1为基于SMP的分布式存储结构并行处理系统示意图;图2为随FFT处理点数增加D的曲线图;图3为单片SMP并行FFT处理流程及中间数据分布;图4为基于TMS320C6678的1024k浮点数FFT实现流程图。具体实施方式为使本专利技术更明显易懂,兹以优选实施例,并配合附图作详细说明如下。目前,多核处理器已成为市场主流,SMP是一种应用广泛的多处理器系统。SMP的多个处理器之间没有区别,可以平等地访问内存、I/O、外设和中断等系统资源,能够使任务或数据对称地分布于多个处理器核之上进行处理。由于核之间的距离更近,它们之间通信的带宽更大,时延更小,性能更佳。图1为基于SMP的分布式存储结构并行处理系统示意图。由图1可以看出,SMP系统处理的最小单位是一片SMP,每片SMP都有各自的片内共享内存(MSM)和片外存储器,它们可以被处理器核均等的访问,每片SMP通过互联网络相连,实现SMP之间的数据交互和通信功能。现有算法具体工程实现大都基于单核处理器来完成,一般无法直接适用于SMP处理平台。例如,在SAR成像处理系统中,为了最大限度提升FFT算法实现效率,FFT的实现过程均要结合处理器的特性,针对特有平台来编写实现。因此,研究适用于SMP并行处理系统的处理算法具有十分迫切的需求。对于大点数FFT计算,将一维大点数序列FFT拆分成二维小点数来运算,该方法能够将FFT运算划分成更小的粒度来进行处理。其实现的主要流程为:(1)将1维序列拆分成2维矩阵并转置;(2)行方向FFT处理;(3)乘以铰链因子;(4)对(3)的结果转置存储;(5)列方向FFT处理;(6)将处理结果转置存储,得到序列的FFT结果。但是,针对SMP系统,该算法在实现过程中存在三个问题:一是一维序列行列如何拆分才能得到最优化的运算性能;二是如何均衡乘以铰链因子引入额外的存储空间和增加的乘法运算次数;三是三次显性转置需要较多额外的内存空间,且点数较大时因无法在片内存储空间计算导致性能大幅降低。针对上述三个问题,本专利技术分别给出具体的优化方法。1)序列划分规则优化设FFT一维序列长度为L,划分成为二维序列L=M×N,细粒度行列FFT运算采取基2-FFT算法,依据其计算量公式,可以得出实现FFT运算所需运算量为:式(3)中,Cf为额外引入的铰链因子复数乘法次数,为固定值;Cmul为乘法运算数;Csum为加法运算数。由柯西不等式可得式(4):由以上推导分析可得,当一维序列按照行和列相等的原则来划分时,理论上可以保证FFT的复数乘法和加法的运算量达到最小值,使其拆分性能达到最优。一般对FFT计算来说序列的长度为2n,所以实际操作中,可以按式(5)取M与N的值:2)铰链因子计算优化在第(3)步时对行方向FFT的处理结果乘以铰链因子,其值Z(n0,k0)如式(6)所示:式(6)中,n0=0,1,…,M-1,k0=0,1,…,N-1。铰链因子可以只存储第1行数据,其它行的铰链因子可由第1行的铰链因子重复计算得出。该处理方法可以大大节省内存资源,这对在有限的处理器资源下实现超大点数FFT十分重要。但是,该处理方法会引入新的额外复数乘法运算。为了得出新引入的额外复数乘法运算对超大点数FFT执行效率的影响,下面对该复数乘法运算对整个计算量的影响作进一步分析。假设只考虑采用复数乘法来衡量FFT的运算时间,按照1)节中的划分原则,新引入的额外复数乘法占总复数乘法的比重D如式(7)所示:取则式(7)推导为式(8):式(8)和图2可以看出,新引入的额外复数乘法在FFT总复数乘法所占比重随着点数增加而逐渐减小,当FFT点数大于256K时,所占复数乘法比重系数D趋于0。因此,对于超大点数FFT而言,通过优化铰链本文档来自技高网
...
一种基于SMP的足球机器人超大点数FFT算法

【技术保护点】
一种基于SMP的足球机器人超大点数FFT算法,设SMP的核处理个数为Q,待处理的一维大点数序列的长度为L=2n,其特征在于,所述算法包括以下步骤:步骤1、将一维大点数序列L拆分成M×N的二维矩阵,且行方向顺序存储在片外存储空间,M与N的值根据式(1)得到:步骤2、由SMP的主核读取片外存储空间中Q列M长度的数据到片内共享空间,并转置成列方向连续;步骤3、SMP的每个核分别计算一列M点FFT,FFT结果乘以铰链因子,其值Z(n0,k0)如式(2)所示,并将结果存储到片内共享空间,由SMP的主核原位写回片外存储空间:Z(n0,k0)=e-j2πn0k0L---(2)]]>式(2)中,n0=0,1,…,M‑1,k0=0,1,…,N‑1;步骤4、重复步骤1~步骤3,完成列FFT和乘铰链因子计算,铰链因子只存储第1行数据,其他行的铰链因子由第1行的铰链因子重复计算得出;步骤5、由SMP的主核读取片外存储空间中Q行N长度的数据到片内共享空间;步骤6、SMP每个核分别计算一行N点FFT,并将结果转置存储到片内共享空间,由SMP的主核按照列顺序写回片外存储空间;步骤7、重复步骤5~步骤6,完成行FFT计算,得到FFT计算结果。...

【技术特征摘要】
1.一种基于SMP的足球机器人超大点数FFT算法,设SMP的核处理个数为Q,待处理的一维大点数序列的长度为L=2n,其特征在于,所述算法包括以下步骤:步骤1、将一维大点数序列L拆分成M×N的二维矩阵,且行方向顺序存储在片外存储空间,M与N的值根据式(1)得到:步骤2、由SMP的主核读取片外存储空间中Q列M长度的数据到片内共享空间,并转置成列方向连续;步骤3、SMP的每个核分别计算一列M点FFT,FFT结果乘以铰链因子,其值Z(n0,k0)如式(2)所示,并将结果存储到片内共享空间,由SMP的主核原位写回片外存储空...

【专利技术属性】
技术研发人员:孙以泽钱炳锋马西沛汪烨
申请(专利权)人:东华大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1