基于CPU和GPU混合运算的短波二维宽带测向实现
2016-11-15何林立祝丽华徐保根康文臣
何林立+祝丽华+徐保根+康文臣
摘 要:通过CPU和GPU的混合计算结构搭建的信号和数据处理系统,搭配数据采集卡或高速光传输网络,实现了短波宽带测向的实时处理。该方法的处理速度相较于MATLAB和CPU平台可以提高1~2个数量级,相较于同等处理速度的多DSP平台则体现了开发周期短、费用低、工作量小和可靠性高等众多优势。
关键词:GPU 短波 宽带测向
中图分类号:TN97 文献标识码:A 文章编号:1672-3791(2016)06(c)-0014-02
在阵列信号处理中,通常采用多个DSP核并行运算、多个FPGA阵列或者DSP+FPGA的处理架构,完成针对多路宽带数据的运算处理。以20圆阵的短波宽带测向为例,当信号带宽变大时,常规的自研高速信号实时处理平台往往因为架构复杂,开发周期长,可扩展性较差,导致产品研发过程大部分都花费在硬件调试和维护上,不利于产品的更新换代。
1 宽带测向的GPU实现方案设计
自从2006年NVIDIA公司推出GPU的通用编程模型CUDA以来,基于CUDA架构的通用并行运算系统已开始广泛应用在国防工业各个领域。CUDA简化了GPU的开发流程,运用C语言即可进行GPU的通用计算编程。因此,该文在进行方案设计之前,将基于CUDA进行快速宽带测向算法的实现,先与同样具有很强并行计算能力的FPGA对比,分析基于GPU进行快速宽带测向的可行性和优势。
1.1 GPU完成快速宽带测向的可行性
使用FPGA和GPU对各种算法进行加速是比较合适的选择,但二者的应用方式还有一定差异。
首先,GPU使用C语言进行开发,FPGA使用VHDL和Verilog等描述性语言开发,对软件开发人员来说,FPGA开发起点偏高,需要了解硬件电路知识,更重要的是高速信号处理的FPGA设计需要调试硬件平台,而且比较容易出现时序问题,会加大开发难度,恰恰相反,这些都是GPU的优势所在,不需要学习新的编程语言,不需要维护硬件平台,没有时序设计困扰。
其次,从成本和功耗方面分析,在同等处理能力的情况下,GPU显卡由于大量商用的原因,价格相对较低,同时,计算资源较多的高端FPGA较难购买,价格偏高,还涉及到硬件制版费用,时间成本和人力成本也需考虑。在同等处理能力的情况下,FPGA的功耗属于动态功耗,使用资源越多功耗越大,不过,一般要低于GPU。
综上所述,在开发难度、体积和成本等方面GPU有一定的优势,FPGA在功耗方面有一定的节省,不过,要是应用多片FPGA芯片进行组合运算时,还要考虑综合功耗。
1.2 基于GPU的并行测向算法
由于时间分辨率和频率分辨率是倒数关系,时间分辨率越小,测向速度越快,同时频率分辨率就会越粗,测向准确度就会下降。在基于二维宽带测向算法中,减小FFT计算数据,可以加快测向速度,但要以牺牲频率分辨率为代价。为了获得高精度的快速测向性能,一般考虑在高采样率下进行宽带二维测向,如此一来,大数据量的FFT运算和二维谱峰搜索将耗费大量时间。由于各通道、各频点测向运算的相对独立性,可以使用GPU进行并行运算,加速FFT运算过程,在不降低频率分辨率的情况下减少测向时间。
CUDA提供了一个CUFFT运算库,可以高效地并行完成多个一维FFT运算,最多可以实现800万点的FFT运算。文中测向阵元数为20阵元,宽带条件下基带IQ数据的采样频率为9.830 4 MHz,测向带宽8 MHz。为了兼顾测向速度和测向灵敏度要求,单通道FFT点数为8 192点,带内测向点数为6 666点,此时频率分辨率约为1.2 kHz,时间分辨率为0.8 ms。测向流程如图1所示。
瞬时测向带宽为8 MHz,先采集20通道单帧数据0.8 ms进行FFT运算,选取信噪比超过门限的信号进行测向,极端情况下,考虑6 666个频点全部测向。
先完成20通道的FFT运算,每路FFT的采样点数为8 192点,一次并行运算的FFT点数是16 3840,小于800万,满足CUFFT库的使用要求。
具体捕获流程如下。
(1)申请3个显存块,显存块1用于接收内存块1中的基带采样数据,使用不同频点的载波信号,分别对20个通道的基带数据进行FFT运算。将20个通道的采样数据,按频点数顺序存储在1块内存里。
(2)显存2用于接收内存块2中的校正库和理论库数据,显存3用于存储运算结果。
(3)在显存3中开展二维谱峰搜索,快速完成角度遍历运算,给出所有待测频点的方位角、仰角信息,同时结果仍保留在显存3。
(4)将运算结果拷贝到主机内存,释放GPU的运算资源。
2 测向方案的试验验证
2.1 试验条件
(1)硬件环境:CPU是Intel Xeon E7-8893 v2芯片,芯片核心数为6,主频为3.2 GHz;显卡型号是Tesla K80,24GB 384 bit GDDR5显存, 499 2个CUDA并行运行处理核心;内存为32 GB。
(2)软件环境:32位的Windows 7操作系统,软件开发环境为微软公司的VS2008,还利用了NVIDIA公司提供的CUDA Driver、CUDAToolkit和CUDA SDK。
(3)实验数据:使用短波多通道接收机采集的基带数据,采样频率为9.830 4 MHz。
2.2 试验结果与分析
分别基于CPU和GPU完成20通道所有频点的搜索测向,宽带二维测向算法如图4所示,运算结果和运行时间如表1所示,其中GPU代码运行时间是使用NAVIDA提供的专用计时API测定的,CPU的运行时间是使用MFC提供的计时器函数测定的。
在GPU和CPU中完成的算法是相同的,对二维测向的运算结果完全一致。但是,完成以上的测向过程,基于CPU的代码需要约2 s的时间,而基于GPU加速后的代码只需要约100 ms的时间,即基于GPU的运算速度大大提升了。
采用等效延长线模拟固定方位角和俯仰角的信号来向,使用GPU运算过程中保存的峰值和频点二维搜索的结果如图3所示,图中坐标X表示信号俯仰角;Y表示信号方位角;Z表示相关系数。
3 结语
为了提高宽带二维测向速度,结合宽带二维测向的并行运算特点和GPU快速并行运算能力的优势,提出了一种基于GPU的测向算法进行并行计算,以最大程度地提高测向速度。通过真实的中频数据试验验证表明,使用GPU实现各通道和各频点的并行捕获与基于CPU实现的串行方式的运算结果是相同的,使用GPU的测向运算时间没有达到理论值。为了充分发挥GPU的并行运算优势,使用GPU设计捕获方案应尽可能让GPU一次处理更多的数据。
参考文献
[1] 张舒,褚艳利.GPU高性能运算之CUDA[M].北京:中国水利水电出版社,2009.
[2] Jason Sanders,Edward Kandrot,著.GPU高性能编程CUDA实战[M].聂雪军,译.北京:机械工业出版社,2011.