GPU在高光谱遥感图像解混领域的应用

2015-08-15 00:54
科技视界 2015年8期
关键词:编程语言实时性编程

郭 阳

(江西科技师范大学通信与电子学院,江西 南昌 330000)

0 引言

目前高光谱遥感[1]混合像元分解所涉及的算法基本都是采用串行的处理思路。但由于高光谱遥感图像自身空间分辨率、光谱分辨率等因素影响,造成其数据量巨大,包含的信息多,且算法计算过程复杂。如果采用传统的串行处理办法,执行过程中高达数百亿次浮点运算会严重影响计算机执行速度,过长的耗时严重制约了混合像元分解的实时性。因此,必须找到提高处理速度的办法,以解决实际应用中的海量数据处理效率的问题。而GPU的特点是处理数据密集型和计算密集型计算,非常适合需要大规模并行计算的领域。

1 GPU编程模型

随着计算机技术的发展,人们一直追求更高的性能。并行计算的提出,满足了我们提高程序执行效率的要求。随着CPU工艺提升,单芯片多处理器同时并行的计算是实现超高速计算的一种主要方向,我们把它叫做并行计算。也就是说并行计算可以利用每个处理器核心,充分发挥多核CPU处理器的能力。2007年NVIDIA推出了当今最流行的GPGPU编程语言,CUDA(Computer Unified Device Architecture,统一计算设备架构)[2]。他是一种专业处理和管理GPU计算的编程语言,给开发者提供编译器和开发工具,可以直接使用C语言进行CUDA程序开发。

2 GPU在高光谱遥感图像解混领域的应用

混合像元分解[3]是高光谱解混技术的关键问题。高光谱混合像元分解主要分为线性混合模型和非线性模型,通常高光谱混合像元分解都是采用线性混合模型。由于现在资源探测、地物监测与地理导航等应用对遥感数据进行快速处理的要求越来越高,传统的方法不能满足实时性的要求,因此,采用GPU构架的编程模型在遥感图像中广泛应用。本文主要介绍GPU在高光谱遥感图像解混算法上的应用[5]。

实验采用AVIRIS高光谱图像,光谱库A采用的是美国地质勘探局USGS的矿物光谱库splib06。,其光谱波段数L=224,包含了498不同的物质种类,反射值大小范围为0.4-2.5um。表1主要是比较了CPU串行计算和GPU并行计算的时间和加速比。当像元增加到47750时,加速比达到了164。从表1我们可以得知,像元越多,加速比越高。

当n=1000时,CPU串行计算为0.845 s,GPU并行计算为0.036 s,加速比 23.4。

当n=10000时,CPU串行计算为19.333 s,GPU并行计算为 0.124 s,加速比 155.9。

当n=47750时,CPU串行计算为76.323 s,GPU并行计算为0.465 s,加速比 164.1。

3 结论

本文主要是介绍了一种基于并行的方法来实现高光谱遥感图像的解混。与传统的高光谱遥感图像解混采用的串行方法相比,基于GPU并行计算的方法加速效果较为显著。实验结果表明,基于GPU并行计算的高光谱混合像元分解方法可以达到一个较快的计算速度。

[1]张良培,张立福.高光谱遥感[M].武汉:武汉大学出版社,2005.

[2]NVIDIA Company.CUDA C Programming Guide[EB/OL].2012[2013-9-l].http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html.

[3]N.Keshava.A survey of spectral unmixing [J].Lincoln Lab.J.,2003,14(4):55-73.

[4]M.D.Iordache,J.M.Dias,A.Plaza.Sparse unmixing of hyperspectral data[J].IEEE Trans.Geosci.Remote Sens.,2011,49(6):2014-2038.

[5]Sergio S,Gabriel M,Antonio Petal.GPU Implementation of Fully Constrained Linear Spectral Unmixing for Remotely Sensed Hyperspectral Data Exploitation[C].Satellite Data Compression,Communications,and Processing Vi,2010.

猜你喜欢
编程语言实时性编程
压力-体积转换在CFC编程语言中的实现解析
基于规则实时性的端云动态分配方法研究
编程,是一种态度
编程小能手
纺织机上诞生的编程
Java编程语言的特点与应用
浅谈不同编程语言对计算机软件开发的影响
基于虚拟局域网的智能变电站通信网络实时性仿真
航空电子AFDX与AVB传输实时性抗干扰对比
面向对象Web开发编程语言的的评估方法