基于GPU的信息融合并行方法研究*

2016-06-30 07:06张兴浦陈世友
舰船电子工程 2016年6期
关键词:并行计算信息融合

邓 婕 张兴浦 陈世友

(1.武汉数字工程研究所 武汉 430205)(2.海军海南地区装备修理监修室 三亚 572018)

基于GPU的信息融合并行方法研究*

邓婕1张兴浦2陈世友1

(1.武汉数字工程研究所武汉430205)(2.海军海南地区装备修理监修室三亚572018)

摘要针对多传感器信息融合处理时延大和高实时性要求之间的矛盾,提出一种基于GPU的并行计算方法,并针对并行方法进行了模拟仿真。实验结果表明,GPU并行方法适用于信息融合技术,为解决融合算法耗时大的问题提供了一种新思路。

关键词信息融合; 并行计算; GPU; CUDA

Class NumberTP391

1引言

多传感器信息融合可以通过综合处理多个传感器的信息来获取单个传感器无法取到的信息,降低检测对象的不确定性,并减少干扰造成的影响,提高判断和决策的准确度和可信度。然而因为现有算法的高复杂性,导致随着传感器数量的增加,数据源增多导致数据量增大,以及信息表现形式的多种多样、信息间关系复杂性的增加,导致信息融合过程在目标密集环境下耗时呈指数增长。然而嵌入式系统对信息融合处理过程的实时性要求非常高,因此需要一种有效的方法将多传感器处理过程并行化,通过充分协调计算机性能来解决高实时性和大任务量之间的矛盾。

在信息融合领域,已有大量关于并行计算方法的研究,如国外的Pankaj[1]、国内的丁龙[2]和夏学知[4]等都想到了利用群机进行任务分配的并行方法;Davis PB等就提出了基于超立方体多处理器的并行数据融合算法[4];郭强从融合模块角度提出了基于卡尔曼滤波的数据融合算法[5],丁龙等[6]和周乐儒等[7]均提出了用于辐射源识别的并行系统。而万文福[8]、何勇[9]和施炎龙[10]等还尝试了多种单机并行算法的设计和实现,并取得了良好的结果。在上述各情况中,程序数据都存储在内存中,直接由CPU读取并由CPU程序调度执行,最后由CPU返回运行结果。本文提出一种基于GPU的程序并行方法,将程序数据存储在GPU显存中,并由GPU程序读取和调度。

CPU由于其体系结构限制,大部分片上资源都用于控制和缓存,导致实际计算单元非常有限,无法满足各种应用日益增多的需求。GPU进行大规模集成运算的能力以及存储器带宽都要比CPU强很多,再加上通用计算技术的飞速发展,使GPU从最初的只能单纯进行图像的渲染和输出工作转化为可对很多领域的计算进行处理。英伟达公司提出来统一并行通用计算架构(Compute Unified Device Architecture, CUDA),这一架构作为GPU的编程平台支持类似C语言的软件开发语言,并支持CPU和GPU协同工作,其中CPU负责串行计算,GPU负责并行计算并由CPU进行调度工作。

本文针对现有信息融合系统结构的特点,结合GPU并行编程方法,设计出一种适用于CPU、GPU多层次多线程并行计算的方法,并进行了仿真实验。

2算法架构流程

常用的信息融合系统数据处理过程都是单线程模型,线程在程序的生命周期内不断循环,具体流程如图1所示。

图1 单线程循环流程图

    

并行后的流程如图2,系统设置一个时间间隔t和两个CPU线程,采用流水线方式,CPU线程1将t秒内收到的数据存入数组,t秒达到后由CPU线程2转移到GPU,然后在下一个t秒内,线程1继续进行数据收集,而线程2启动N个GPU线程同步进行数据处理,这样实现了CPU与GPU的并行工作。而在GPU上,采用最简单的线程分配方法,即每个数据分配一个线程进行处理,实现了GPU上多线程的并行,因而实现了CPU、GPU多层并行。图3是CUDA程序执行流程图,由于GPU受CPU调度控制,因此CPU称为主机端,GPU称为设备端。CUDA程序由主机端串行程序和设备端并行函数(称为Kernel函数)组成,串行程序会进行数据的准备和GPU线程启动前各项环境的准备,准备好后调用Kernel函数,并在调用时指明调用的线程个数。

每一次GPU并行计算的过程,都包括主机端准备、主机端调用设备端、设备端执行和设备端返回结果四个阶段,一个CUDA程序中可以包含多次GPU并行过程,如图3中就指示了至少两次并行过程。

3实现方法

基于图2所设计的算法流程图,结合图3说明的CUDA程序执行流程图,进行实验的模拟和仿真。实验中没有进行完整融合流程的并行,而是挑选了预处理模块进行并行,即简化了图2中GPU线程的工作,进行了如图4的流程模拟。因为对图1原始融合过程进行计算时间的分析后发现,每次循环内,预处理模块花费的时间约占时间的70%,因此选用这个最具有代表性的模块进行了实验。

图3 CUDA程序执行流程图

图4 CUDA程序执行流程图

3.1实验环境

CUDA环境主要分为:硬件、操作系统、C/C++编译器和CUDA工具包。硬件主要是指GPU设备,必须是支持CUDA的GPU。实验项目中使用的是英伟达显卡GTX970,CPU端使用8核处理器和8GB内存;操作系统为Windows 7专业版,64位操作系统;编译器为Visual Studio 2010旗舰版。CUDA工具包需要在操作系统和编译器都安装完毕后才能安装,安装过程中会自动生成对应编译器插件。

3.2时间结果

选取两组模拟数据进行并行,选取时间间隔t为1s,在保证计算结果正确的前提下,挑选部分时间结果见下表1、表2,表格中第一行为编号;第二行为某一秒并行的数据个数,第三行列出当秒内数据GPU计算所花的真正时间。

3.3性能分析

因为不同数据会采取不同的预操作,所以表中时间波动属于正常范围。由表可知,在每个时间间隔1s内,GPU真正计算时间花费最多的约为0.1s,最少的不到0.01s,完全符合期望的流水线计算。

然而算法中,时间间隔t的选择有一定的局限性。因为多个GPU线程并行执行时,没有考虑线程间数据相关联的问题,所以一定要保证t时间内的数据相互独立。如果t的选择太小,会导致每次并行数据太少,GPU利用率太低;如果t的选择太大,会导致采集到的数据属于同一条航迹,影响融合结果的正确性。实验中的1s是在保证了数据间独立的情况下能取到的最大时间间隔,每秒最多收集到四个数据即每次最多并行四个数据,而GTX970有1664个核,使用率还不到0.5%,所以算法可用于更复杂的融合环境,能保证在相同的时间内拥有更高的GPU的利用率。

表1 并行后处理数据一时间

表2 并行后处理数据二时间

4结语

本文设计了一种基于GPU的并行信息融合方法,提出了CPU和GPU多层并行融合的算法思想,并进行了实验验证,证明了结果的正确性,并行效率满足常用融合环境需求。介绍了算法对于时间间隔参数选择的局限性,并说明了如何选择参数来保证高效和正确的计算结果,为解决信息融合过程时延大的问题提供了一种友好的解决方案。

参 考 文 献

[1] Pankaj Gupta, Guru Prasad. A scalable portable object oriented framework for parallel multisensor data-fusion applications in HPC systems[J].Proc. of the SPIE,2004,5434:295-306.

[2] 丁龙,王宝树,乔向东等.基于群机并行的数据融合算法设计与实现[J].计算机工程与应用,2001,37(19):92-94.

[3] 夏学知,涂葵.多传感器数据融合并行处理技术[J].计算机应用,2005,25(8):1814-1817.

[4] Davis PB, Cate D, Abidi MA. Parrallel Data Fusion on a Hypercube Multiprocessor[J]. Processing of SPIE Conference on Sensor Fusion,1990,1383(11):515-529.

[5] Guo Q, Yu SN. The multisensory data fusion parallel algorithm based on Kalman filtering[C]// Computational Electromagnetics amd Its Application 2004. Proceedings. ICCEA 2004. 2004 3rd International Coference on. IEEE,2004:573-576.

[6] 丁龙,王宝树,乔向东,等.基于群机并行的数据融合算法设计与实现[J].计算机工程与应用,2001,37(19):92-94.

[7] 周乐儒.数据融合系统中并行目标识别的研究与实现[J].计算机工程,2006,32(5):189-191.

[8] 万文福.基于PVM的数据融合并行任务调度[J].舰船电子工程,2006,26(3):5-12.

[9] 何勇,张必银.多传感器数据融合并行处理方法研究[J].舰船电子工程,2011,31(8):56-59.

[10] 施岩龙,王雪,陆小科.面向多雷达数据融合的并行数据编排框架研究[J].现代雷达,2015,37(10):39-42.

Parallel Method Techniques for Information Fusion Based on GPU

DENG Jie1ZHANG Xingpu2CHEN Shiyou1

(1.Wuhan Digital Engineering Institute, Wuhan430205)(2.Navy Supervision Office for Equipment Repair in Hainan Area, Sanya572018)

AbstractIn order to solve the contradiction between large-time delay and high real-time requirement of multi sensor information fusion, A parallel method based on GPU is proposed and simulated. The result of simulation shows that the method is effective, which provides new mentality to solve the large time-cosuming of information fusion algorithm.

Key Wordsinformation fusion, parallel computing, GPU, CUDA

*收稿日期:2015年12月4日,修回日期:2016年1月19日

作者简介:邓婕,女,硕士研究生,研究方向:信息融合技术。张兴浦,男,硕士研究生,高级工程师,研究方向:电子与信息工程。陈世友,男,博士,研究员,研究方向:信息融合技术、信息系统技术。

中图分类号TP391

DOI:10.3969/j.issn.1672-9730.2016.06.010

猜你喜欢
并行计算信息融合
基于智能粒子滤波的多传感器信息融合算法
基于自适应线程束的GPU并行粒子群优化算法
大数据背景下的信号处理分析
多传感器图像融合技术
大数据环境下基于多维信息融合的高校教学评价
一种无人飞艇高度传感器信息融合方法
云计算中MapReduce分布式并行处理框架的研究与搭建
矩阵向量相乘的并行算法分析
并行硬件简介
基于GPU的超声场仿真成像平台