陶 亮
(中国电子科技集团第十四研究所 江苏·南京 210000)
在GPU的基础上构建软件雷达终端,采用CPU(中央处理器)平台常规处理雷达信号,和在CPU平台上进行雷达信号处理的过程不同:CPU-GPU所组成的异构系统的平均计算速率比CPU平台快了100倍以上,且远远未达到GPU的计算极限,最大误差在5×10-4以下。这也就意味着,基于GPU的并行运算能力突出优势,与CPU互补,构建CPU-GPU的异构系统,既能发挥软件无线电技术的优势,有效地获取各项数据,又能实时进行数据处理,达到软件雷达在信号处理方面的实效性要求,随着回波采样点等数据量的增加,信号处理的吞吐量也会不断增加,很好地满足了软件雷达信号处理的大吞吐量及高实时性的需求,克服以往软件雷达信号处理计算速度慢、计算量少等问题。
图1:基于GPU的软件雷达信号处理系统
软件雷达,是无线电技术在雷达领域中的应用,其硬件平台包含了通用处理计算机、变频组件以及天线系统、雷达显控终端以及高速模/数采样器件等部分。其信号处理过程是,在变频组件内通过变频转换,将雷达接收到的信号转换为中频信号,并将其传送到高速模/数采样器件中,转变为数字信号,最后将数字信号输送到计算平台中,进行雷达信号处理。基于GPU的软件雷达信号处理过程大体也是如此,主要包含三大模块,一是数据读取模块,将接收机处理的基带数据读入后,获取报文的各种标志、数据并重组,从而获得预处理后的回波数据;二是信号处理模块,是整个信号处理系统的核心,将预处理后的回波数据先进行脉冲压缩转变为PC数据,再进行MTD或是MTI处理,并在MTD的结果上实施二维CFA R处理;三是信号输出模块,包含了CFAR结果输出、信号处理模块中间过程(PC结果等),且产生的数据可基于实际需求进行输出与储存。以下是具体的系统流程图:
在整个雷达信号处理过程中,在CPU-GPU的异构系统中,信号的调度以及流程全部由CPU负责,先开辟单个子模块运算所需的内存空间以及显存空间,并在获取GPU初始化参数前提下创建主机端线程实现对雷达显控终端的管理,通过“主机——设备端——主机”的流程,将获取的数据从计算机主机内存传输到变频组件,再对数据进行密集型计算输送到雷达显控终端。
基于GPU的软件雷达信号处理,主要是通过CPU-GPU的异构系统,实现多个模块雷达信号处理,以满足软件雷达信号处理的标准化、实时性、模块化等要求。以下是基于GPU的软件雷达信号处理计算模型:
先要在软件雷达的主机端创建任务列表,以采样中频数据,通过CPU主线程实现对任务级别的划分与管控,由Open-Multi-Processing开辟CPU并行线程,进行雷达信号处理的任务调度以及配置设备端ID工作,从而依次序访问任务队列。然后,则是在CPU-GPU异构系统上,通过GPU以轮转的形式分配各个任务,将获取的数据以迭代的形式传输到相应的GPU上,从而实现多个GPU模块并行且负载平衡。如,将第n个采集的数据以迭代的形式传输至第n mod q个GPU上,其中q是GPU的并行个数。
由于每个脉冲重复周期t内的采样点在周期内没有关联性,进行正交相位检波和脉冲压缩计算时,可实现多个周期内的采样数据级的并行处理,从而得到近似线性的加速比。为了在数据级并行处理过程中,得到较高的计算访存比,可把整个脉冲压缩后的二维数组划分成q个n×m数据部分,实现压缩后的rn×k二维数组转变为n×m数据,每个二维数组域内中每一行都包含了m=kmodq个采样点。如此一来,就能运用并行GPU中的每个GPU模块对重构的q个n×m数据部分进行并行计算,且二维数据域对并行GPU的映射为一个线程网络,以保证数据级并行处理时,单个的GPU只需要迭代计算所属域内的重构数据。
线程级的并行算法,主要是在信号处理的数学模型与GPU并行计算的硬件特性上,通过将数值计算映射到GPU细粒度并发线程,从而实现多个线程数据并行计算。
(1)在软件雷达信号处理过程中,通过正交相位检波将中频信号转变为零中频的I、Q两路正交信号。在转变过程中要先把正交混频信号以及整段脉冲重复周期内的采样数据输入内核函数后,再进行点乘处理,使得每个线程块都能实现n维度的采样数据计算,每个采样数据都可以看作是一个处理单元,并能映射到相关线程之中。具体过程:通过仿真计算得到数字低通滤波器的相关系数后,依照纹理缓存不断地提高采样书籍的读取速度(利用GPU纹理存储器内的高速片上缓存功能),使得以权库的形式呈现的滤波器系数,在正交相位检波模块中能即可读取出来。
(2)利用MTI/MTD对输入的采样数据进行运算。由于显存空间中都是以“先进先出”的形式储存脉冲压缩后的回波数据,对于脉冲冲突周期内的数字信号进行迭代运算,则应经过线程检索引号来执行,每个线程需分别维护值经延迟线加权与相同距离分辨单元采样点隔周期。特别是动目标的检测,应在固定二次消器(MTI)后以串联窄带滤波器组的方式,实现对整个重复频率范围的覆盖,通过不同的数字通道,运用FFT滤波器处理采样数据信号后再进行MTD运算。MTD的具体运算过程中,要把相邻m个重复周期内的数据作为一维数组储存起来,再通过棋盘划分进行矩阵转置,对矩阵每一行数据进行FFT运算。
(3)通过脉冲积累和恒虚警检测提高算法效率,将共享储存器作为线程通信载体、实现中间数据的访存,发挥共享储存器的作用,高效地进行数据运算。利用共享储存器的最大优势,在于实现数据复用的同时,避免由于重叠数据元素导致的线程之间访问竞争问题,通过将运算数据分段复制到线程块内的共享储存器中,降低全局储存器中数据读取的频率。基于GPU的软件雷达信号处理过程中,脉冲积累运算时可用棋盘的形式划分整个数据域,并将划分后的数据域输送到并行GPU中,先将矩阵看成成n行m列的矩阵,然后把整个线程网络划分成n个线程块,这样每个线程块就对应m各数据的运算,每个GPU的运算结果就是一列的数据。然后,则是将每个线程块处理得到每列数据从显存复制到共享储存器,按照并行归约的方式进行求和处理,调用sync-threads()函数将求和后的数据设置成栅栏同步,再将每个线程块内运算得到的结果输入到全局存储器(n维)中储存起来。这样一来,通过对每个距离单元两侧各点的采样数据进行求和处理,就能完成均值类恒虚警检测算。
软件雷达系统的计算平台,所采用的 GPU(NVIDIATeslaC2050)以及CPU(IntelCorei7@2.67GHz)选用相同的运算模型以及运行参数,以OpenMulti-Processing展开并行执行循环以及迭代运算,所有的采样数据都通过用英特尔数学核心函数库实现傅立叶变换。在仿真分析中,使用线性调频形式的雷达信号,以8点FFT多普勒滤波器组和双延迟线对消器实现动目标检测与显示。结果显示,在采样点数相同时,基于 CPU处理的计算机设备无法处理信号的执行时间控制在10个脉冲重复周期内,随着并行GPU数量的增加处理,信号处理的执行时间会不断缩短;在采样点数较少的情况系,GPU*3与GPU*4执行速度相似,但与GPU*1的执行速度相比,其执行速度没有明显的上升趋势;采样点数不断增加后,基于 GPU的软件雷达信号处理算法执行速度才彰显出明显的优势。此外,基于CPU-GPU异构系统的软件雷达信号处理方法,其实测数据处理效果更为显著,无论是雷达信号中的噪声和干扰信号,还是噪声、云雨杂波强度、地物杂波等,都得到了有效的抑制,目标回波的信噪比显著提升。
综上所述,基于GPU(图形处理器)与CPU(中央处理器)各自的优势,采用任务级、数据级和线程级三级并行策略,进行软件雷达信号处理,有利于提高软件雷达信号处理的实效性与计算速度。鉴于此,基于GPU进行软件雷达信号处理,应针对软件雷达的特点,根据无线电相关技术在雷达领域的应用情况,在任务级、数据级和线程级三级并行方案之上,构建CPU-GPU的异构系统,实现多GPU并行处理软件雷达信号,从而满足软件雷达信号处理的大吞吐量和高实时性要求。