[发明专利]基于深度协同的合成孔径雷达回波并行模拟方法有效
申请号: | 201610500585.2 | 申请日: | 2016-06-29 |
公开(公告)号: | CN105911532B | 公开(公告)日: | 2018-06-29 |
发明(设计)人: | 张帆;胡辰;胡伟;李伟 | 申请(专利权)人: | 北京化工大学 |
主分类号: | G01S7/40 | 分类号: | G01S7/40;G01S13/90 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
地址: | 100029 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于深度协同的合成孔径雷达回波并行模拟方法,属于合成孔径雷达应用技术领域。传统的CPU+GPU异构计算模式下,通常CPU是处理逻辑性较强的运算,而GPU是处理数据相对比较密集且适合并行进行的计算。本发明在充分调研了国内外对SAR回波快速模拟相关文献的基础上,借鉴了相关星载SAR回波模拟的并行仿真算法,提出了一种基于SIMD异构并行的星载SAR回波快速模拟仿真方法,通过多核矢量化扩展CPU/众核GPU的深度协同并行加速SAR回波仿真过程,并在此基础上进行了冗余计算的优化和针对SAR回波过程中不规则问题计算的深度并行优化,实验结果表明通过经优化的CPU/GPU异构协同的模式相比于传统的串行计算方法,在计算效率上能够达到2‑3个数量级的提升。 | ||
搜索关键词: | 回波 合成孔径雷达 协同 异构 并行 并行模拟 传统的 星载 应用技术领域 不规则问题 并行仿真 并行优化 处理数据 串行计算 仿真过程 个数量级 计算模式 计算效率 模拟仿真 冗余计算 相对比较 矢量化 多核 算法 优化 运算 | ||
【主权项】:
1.基于深度协同的合成孔径雷达回波并行模拟方法,其特征在于:该方法主要包括如下内容,S1分块处理;目标分块:由于仿真场景的增大,将整个仿真场景都传入GPU中进行运算会造成传输延时的增长和计算量的冗余,同时GPU显存的限制也会造成运算无法流畅地进行;根据以上问题,本方法采用了目标场景分块的处理方法,减少了在回波过程中产生的冗余计算量,减少了GPU内存的使用,同时也尽量隐藏了场景信息的传输延时;任务分块:对任务池中的任务进行分块处理,将分块处理的任务分配给CPU和GPU并同时进行计算;S2不规则数据的规约:基于一维卷积的回波算法在通过并行实现的时候存在距离门的冲突问题,针对SAR回波时遇到的这种不规则数据问题,本方法采用将不规则的数据进行规则化处理然后进行并行规约的方法;S3CPU和GPU协同进行回波计算:为了充分利用计算机的计算资源,采用了统一于SIMD即单指令多数据体系的多核矢量化扩展CPU/众核GPU的异构并行计算框架,通过CPU/GPU深度协同加速实现星载SAR回波的实时模拟;实施流程如下:步骤1、雷达信号模型的建立;SAR的回波处理分为方位向和距离向,为了获得距离向的高分辨率,通常SAR的发射信号需要大时带宽积、长持续时间以获得大平均功率;本方法采用的SAR发射信号是Chirp信号,如下所示,上式中Tp表示脉冲宽度,fc表示载波的频率,kr表示线性调频率,τ表示距离向时间,s(τ)表示在τ时刻的发射信号,j表示复数的虚部;本方法采用的主要是一维卷积算法,该算法由距离时域的相干算法改进得到,方位向时刻的回波能够看作是由一系列的狄拉克函数和发射信号的卷积获得,方位向回波信号通过傅里叶变换在频域完成混叠,并与距离向信号进行卷积然后得到回波数据;根据卷积的性质,通过傅里叶变换,将方位向累积信号和发射信号的频谱进行相乘,然后进行逆傅里叶变换得到最后的回波结果;上式中,tn表示仿真第n条回波对应的方位向时刻,S(ζ)表示去载频后的发射信号频谱,ζ表示发射信号频率,T表示需要进行仿真的回波信号数量,n表示回波信号的序号,其中方位向的累积信号sa(tn,τ)为式(3);式中,λ表示波长,δ表示狄拉克冲击响应函数,c代表光速,r表示目标点斜距,i代表场景中目标点的序号;根据式(2)和式(3),在进行回波算法模拟仿真时,距离向信号和方位向信号能够分别处理,距离向信号的频谱由Chirp信号通过傅里叶变换得到,对于方位向信号,需要根据空间几何关系求得在某一时刻tn时场景目标点的斜距和视角,通过视角判断目标点是否在波束脚印内,然后计算目标点回波所在的距离门,之后将方位向信号进行叠加处理,当所有目标点都遍历之后将方位向信号进行傅里叶变换,并与发射信号频谱进行相乘,最后通过逆傅里叶变换得到在时刻的一条回波数据,重复上述过程得到所有方位向时刻的回波信号;步骤2、基于CPU的星载SAR回波并行仿真1)使用目标分块的策略以减少回波计算过程中产生的冗余计算;为了减少在回波过程中因判断目标点是否在波束脚印范围内的计算量,提出了一种目标分块的策略;在没有分块之前,需要计算整个场景的目标点斜距和角度信息,在分块之后只需要计算小块场景的信息即可;假设将目标场景均等的分成4块,其中前两块为A和B;但是这样分块存在着一个问题,就是当波束扫到该块的边界时会产生回波累加不完全的情况;当波束扫到A块边界时A1的信息将会丢失,A1表示半个波束宽度,导致最后的回波累加不完全,同样对于B块,当波束扫到边界时,B1和B2的信息将会丢失;B1和B2表示半个波束宽度;所以为了保证回波的正确性,需要进行分块时在边界部分做一下处理,也就是在长度上加上半个波束宽度;为了减少在分块时产生的计算量,选择了以矩形的方式进行划分;不同的线程计算不同场景块的目标点斜距和角度,减少了很大的计算量;假设场景的宽度为w,高度为h,波束宽度为d,N为启动的线程数,那么A的面积如式(4);为了量化的分析通过目标分块带来的效果,假设单位面积内计算目标点斜距和角度的计算量为Cvt,每个方位时刻的回波计算量为Cvt_data,分块前后的总计算量分别为Cvt_total和Cvt_tile,并且假设场景中的目标点分布均匀,也就是Cvt和场景块的面积成正比,则有下面的式子;Cvt_total=(h×w)×Cvt+Cvt_data (5)在式(7)中0<x<N‑1,所以1>Ri>N,Ri表示分块前总计算量与分块后总计算向的比值,其中2)基于SSE/AVX和OpenMP的星载SAR回波模拟仿真根据回波模拟的核心算法,对于不同的方位向时刻之间适合采用粗粒度并行,通常采用OpenMP多线程或者MPI多进程的方法,对于每一个方位向回波信号的计算适合采用细粒度并行,采用SSE/AVX指令集矢量化的方式进行;对于每一个方位向时刻,在具体的计算回波时可以通过细粒度并行的方式对目标点斜距和角度等进行计算,也就是相当于粗粒度的一个单位中有更小粒度的并行,由于每一个方位向时刻在计算各自的回波信号时相互之间没有影响,所以可以通过并行嵌套的方式进行更深度的并行;步骤3、基于GPU的星载SAR回波并行仿真算法1)基于CUDA的星载SAR大场景回波仿真星载SAR空间几何关系计算分为两部分,第一部分是通过已知的卫星轨道信息和六根数,求得场景中所有目标点在惯性坐标系下的坐标;第二部分是利用已求得的坐标和卫星在轨道上不断运动产生的真近心角变化,进而求得目标点此时刻在卫星天线坐标系下的坐标;对于上面两步,主要对第二步可采用并行的方式,对于求得每一个目标点的斜距和视角,相互之间不产生干扰;GPU在分配线程的时候可以分配与场景大小相同数量的线程,每一个线程处理一个目标点,当场景中点的个数太多时,实际的效果并不是申请的线程数越多计算效果就越好,在GPU计算能力还没有完全用到时,加速比较稳定,当GPU的计算能力已经完全用上时,场景越大,加速效果会越来越小;经过上一步的计算,已经得到了场景目标点在天线坐标系下的坐标,那么通过空间几何关系就可以得到目标点的斜距和角度信息;在计算斜距和角度、目标点所在距离门和方位向信号时,目标点之间相互没有影响,可以并行的进行计算;然而,在进行方位向信号回波叠加的时候不能采用上述的并行方法,因此将用串行的方式进行;CUDA中对相同存储地址中写入数据时提供了一个原子函数,保证线程之间的串行进行;在进行回波计算时,主要用到的原子函数是atomicFloatAdd函数;下面是回波部分并行程序的伪代码:2)基于多GPU的星载SAR回波仿真算法基于多GPU的星载SAR回波仿真算法采用步骤2中提到的方法,每个GPU由不同的线程或者进程控制进行粗粒度的并行,而每个GPU负责方位向信号具体计算的细粒度并行,并且采用目标分块的方法,减少在计算过程中产生的冗余计算量,这样不但可以节省GPU显存的使用量,减少经济成本,又能提高程序的执行效率;步骤4、基于GPU深度优化的星载SAR回波仿真算法1)基于规约的GPU并行冲突优化在星载SAR模拟仿真的方位向回波累加过程中,存在两个不规则问题,第一个是积累的回波数量不一定,第二个是积累的回波可能来自非连续的分布目标;对于连续分布的一组数据,假设进行累加求和可以通过规约的方法得到结果,但是由于在星载SAR回波模拟过程中的特殊性,需要在进行规约之前进行数据整理;式(8)中c为光速,R0为斜距,Rnear是近距点,fs是采样频率;根据式(8)计算出波束脚印内目标点所在的距离门,首先每一个目标点对应一个所在距离门所存储的地址序号,对于这个地址的计算是每计算一个点所在的距离门,该点在该距离门中的序号是之前已经在该距离门中的点的数量加1,那么第一个斜线填充的点所在距离门序号为1,第二个斜线填充的点所在距离门的序号为2,对于其他的距离门中的点类似;将所有点的距离门序号计算完成之后,根据距离门序号将计算出的回波信号存到相应的地址空间中,这时候每个距离门所对应的地址空间中的所有数据都是整齐的,然后再通过并行规约的方法进行求和;步骤5、基于CPU/GPU异构的星载SAR回波模拟深度并行优化将步骤2、3、4结合起来,采用了CPU+GPU的深度协同计算模式;CPU由于强大的控制核心以及多线程矢量化能力,不仅处理逻辑性较强的计算,还处理计算密度较大的计算,而GPU由于强大的算术计算单元处理计算密度大的计算,两者发挥各自优势,这种深度协同模式是对传统异构计算模式的深化,能够应用在很多通用领域;本系统通过PCIE进行数据传输,在构成异构系统的时候,CPU和GPU各自有独立的存储空间,数据通过PCIE进行传输,这种传输会存在较大的传输延时,但是根据程序本身,在进行优化时,通过流水线的技术合理的隐藏这部分传输时间;1)面向异构计算的星载SAR回波仿真任务分块方法本步骤使用的针对星载SAR回波仿真任务的分块方法与步骤1中提到的分块方法相似,在进行场景分块的时候需要根据波束脚印在场景块边缘多分出半个波束宽度,目的是为了保证波束在扫到场景块边缘的时候能够扫到所有需要的目标点信息,保证最后回波的正确性,与调度方法相结合,根据不同的调度策略合理的分配场景块的大小;2)面向异构计算的星载SAR回波仿真任务调度方法第一种是静态调度划分,也就是根据给定的分配比例进行划分,对于星载SAR回波模拟仿真使用4块相同的GPU进行仿真,将所有的方位向时刻按1:1:1:1:1的任务分配方式将任务分给不同的GPU和CPU进行处理,为了减少计算量对场景目标也进行相同的分块即可,每个GPU和CPU可以得到不同的场景块分别进行处理,最后由CPU收集计算的回波结果,所以回波模拟时间由最后一块计算完的计算设备GPU或者CPU的运行时间决定;第二种是基于任务池的动态任务调度划分,任务池中的任务中,1进程负责任务调度,2到5进程分别控制不同的计算单元,首先1进程将ABCD四个任务分给2到5进程,然后根据不同计算单元的计算完成时间再从任务池进行任务分配,直至任务池中所有的任务全部计算完成;由于在一开始是不需要将所有任务都分配下去的,所有在星载SAR回波模拟中的任务块要更小,场景块也应相应减小;第三种是通过实际计算效能进行分配的动态调度划分;这种方法与第二种的区别是,一开始将所有的任务分发下去,当一个进程任务先完成之后,暂停第二个进程的计算,然后根据两个计算单元在相同时间内完成的任务量计算出之后的任务分配,然后继续进行,经过动态分配达到计算能力的均衡利用;3)CPU/GPU协同加速的星载SAR回波实时模拟对于传统的CPU+GPU异构计算模式下,通常CPU是处理逻辑性较强的运算,而GPU是处理数据相对比较密集且适合并行进行的计算;本方法利用多线程矢量化扩展技术提升CPU的计算能力,更加有效的利用异构系统的计算性能,可以使得CPU和GPU同时参与计算;在CPU下用OpenMP+AVX和在4GPU下用原子加操作进行星载SAR回波模拟所用的时间相差不大,且通过对星载SAR的粗粒度分析得出,两者能够同时进行计算,分别处理不同的计算任务的;根据粗粒度进行任务的划分是根据方位向时刻来划分的,相互之间不会相互干扰,所以将不同的任务分别给多个GPU和CPU来进行同时计算是可行的,最后通过任务回收获得完整的回波信息;在星载SAR回波模拟仿真过程中,将任务分成两组,第一组由CPU进行计算,第二组由GPU进行计算;任务在任务池中进行分发,在内存中进行,然后CPU负责的计算从任务池中取出任务并通过OpenMP+AVX协同进行回波计算,而GPU负责的计算从任务池中取出任务交由不同的GPU进行多GPU并行处理;CPU端的处理首先将任务从内存取出存入AVX寄存器中,然后通过AVX矢量化分别并行计算斜距历史、波束脚印判断和目标点回波计算,然后将计算结果返回内存,串行进行方位向回波信号的累加,最后通过与距离向卷积得到最后的回波信号,并根据开始从任务池中取出任务的序号存在相应的内存位置;GPU的处理第一步跟CPU端的处理一致,CPU负责将任务取出并交由GPU进行处理,GPU通过并行的计算斜距历史、波束脚印判断、目标点回波计算和原子加操作得到方位向回波信号,然后通过与距离向信号的卷积得到最后的回波结果,最后通过开始从任务池中取出的任务序号放在相应的内存位置上;在程序的运行过程中通过单独的socket线程向用户传递信息。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京化工大学,未经北京化工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610500585.2/,转载请声明来源钻瓜专利网。