en
×

分享给微信好友或者朋友圈

使用微信“扫一扫”功能。
作者简介:

张远,男,硕士生,主要研究遥感高光谱数据处理.1031673539@qq.com;

陈仁(通信作者),男,博士,副研究员,主要研究方向为红外光谱仪及航天遥感探测.chenren@mail.sitp.ac.cn

中图分类号:TP751.1

文献标识码:A

DOI:10.13878/j.cnki.jnuist.2022.02.014

参考文献 1
华建文,毛建华.“风云四号”气象卫星大气垂直探测仪[J].科学,2018,70(1):24-29;HUA Jianwen,MAO Jianhua.Geostationary interferometric-type infrared sounder(GIRS)on Fengyun No.4 meteorological satellite[J].Science,2018,70(1):24-29
参考文献 2
金媛.面向CPU、GPU及其异构形式的混合模拟算法的高性能并行优化[D].南昌:南昌大学,2020;JIN Yuan.High performance parallel optimization of hybrid simulation algorithms for CPU,GPU and its heterogeneous forms[D].Nanchang:Nanchang University,2020
参考文献 3
王茂芝,郭科,徐文皙.基于集群和GPU的高光谱遥感影像并行处理[J].红外与激光工程,2013,42(11):3070-3075;WANG Maozhi,GUO Ke,XU Wenxi.Parallel processing of hyperspectral remote sensing images based on cluster and GPU[J].Infrared and Laser Engineering,2013,42(11):3070-3075
参考文献 4
汤媛媛,周海芳,方民权,等.基于CPU/GPU异构模式的高光谱遥感影像数据处理研究与实现[J].计算机科学,2016,43(02):47-50,77;TANG Yuanyuan,ZHOU Haifang,FANG Minquan,et al.Research and implementation of hyperspectral remote sensing image data processing based on CPU/GPU heterogeneous model[J].Computer Science,2016,43(2):47-50,77
参考文献 5
Paz A,Plaza A.Cluster versus GPU implementation of an orthogonal target detection algorithm for remotely sensed hyperspectral images[C]//2010 IEEE International Conference on Cluster Computing,2010:227-234
参考文献 6
刘灿.遥感图像几何校正GPU阵列并行算法研究[D].成都:电子科技大学,2019;LIU Can.Research on GPU array parallel algorithm for geometric correction of remote sensing images [D].Chengdu:University of Electronic Science and Technology of China,2019
参考文献 7
党源源,王昕.CPU-GPU异构系统在光学遥感影像处理中的应用[J].红外与激光工程,2020,49(增刊1):177-185;DANG Yuanyuan,WANG Xin.Application of CPU-GPU heterogeneous system in optical remote sensing image processing[J].Infrared and Laser Engineering,2020,49(sup1):177-185
参考文献 8
张明华,邹亚晴,宋巍,等.GGCN:基于GPU的高光谱图像分类算法[J].激光与光电子学进展,2020,57(20):231-237;ZHANG Minghua,ZOU Yaqing,SONG Wei,et al.GGCN:GPU-based hyperspectral image classification algorithm[J].Laser & Optoelectronics Progress,2020,57(20):231-237
参考文献 9
龚彤艳,张广婷,贾海鹏,等.一种偶数基Cooley-Tukey FFT高性能实现方法[J].计算机科学,2020,47(1):31-39;GONG Tongyan,ZHANG Guangting,JIA Haipeng,et al.A high performance implementation method of Cooley-Tukey FFT with even base [J].Computer Science,2020,47(1):31-39
目录contents

    摘要

    随着遥感卫星更高时空分辨率的大气探测需求,大气遥感高光谱数据量骤增,传统高光谱数据的处理效率较低,无法满足高性能处理高光谱数据的需求.首先介绍了国内外研究者利用图形处理器(GPU)加速处理遥感高光谱数据的应用实例,然后对基于CPU-GPU异构模式的大气遥感高光谱数据傅里叶分析的并行化计算进行了研究,并进行算法实现,最后同传统基于CPU计算做了实验比较.实验结果表明,使用基于CPU-GPU异构模式的方法处理高光谱数据时,在保证数据准确性的同时速度提升80多倍,验证了将GPU加速用于处理大气遥感高光谱数据的有效性,可以更好地满足气象卫星更高时空分辨率的大气探测需求.

    Abstract

    The demand for higher temporal and spatial resolution of atmospheric detection has brought about rapid increase of atmospheric hyperspectral remote sensing data;however,traditional methods have low efficiency for hyperspectral data processing.Here,we summarize the application examples of using GPU to accelerate the processing of hyperspectral remote sensing data,among which we focus on the parallel computing of the Fourier analysis of hyperspectral data based on the CPU-GPU heterogeneous mode.Then the CPU-GPU heterogeneous mode based parallel computing is implemented and then compared with traditional CPU-based computing.The results show that the data processing speed is increased by about 90 times while ensuring the data accuracy as well,thus verify the effectiveness of GPU to accelerate the processing of atmospheric remote sensing hyperspectral data.

  • 0 引言

  • “风云四号”气象卫星于2016年12月发射,并在轨成功运行.“风云四号”01星大气垂直探测仪首次实现了静止轨道傅里叶高光谱探测,精细观测到大气的垂直结构.干涉式大气垂直探测仪的核心系统是干涉仪,探测仪实际上就是空间工作的傅里叶变换光谱仪[1].为了满足气象卫星更高时空分辨率的大气探测需求,后续将会使用更大面阵的焦平面探测器,获取更大数据量的光谱数据,提高空间分辨率和探测频率,实现短周期的实时天气预报等.随着“风云四号”大气垂直探测仪在光谱分辨率上的重大突破,获取的遥感高光谱数据量会变得更大,海量遥感高光谱数据的较低计算效率成为大气遥感高光谱应用的瓶颈.

  • 为解决海量高光谱数据的高性能处理问题,国内外众多研究人员提出通过使用计算机集群模式、基于消息传递的并行编程环境MPI(Message Passing Interface)、基于图形处理的处理器GPU(Graphic Processing Unit)等提高光谱数据的处理效率[2].基于GPU的CUDA(Compute Unified Device Architecture)通用并行计算的架构技术,利用GPU多计算核心、高内存带宽、浮点运算的运行速度快等特点,可以对海量高光谱数据进行并行优化,提升高光谱数据的处理性能.如今,基于CPU-GPU的异构计算已经成为研究和应用的热点,GPU逐渐成为解决海量高光谱数据的高性能处理问题的有效途径.利用GPU加速技术,国内外学者在高光谱数据处理中尝试了目标检测、图像分类、影像坐标转换、图像处理等算法的并行优化,并且实验取得很大的性能提升.文献[3]研究并实现了基于GPU的光谱相关系数填图(SCM)算法的并行化,将加速比提高到25倍左右;文献[4]在影像坐标转换过程中引入了CPU-GPU协同处理技术,这一技术使得坐标转换效率提高10倍;文献[5]基于正交空间投影的目标检测算法提出了高光谱图像的并行优化处理方法,将串行计算速度提高50倍;文献[6]基于GPU设计了针对遥感图像预处理过程中的几何校正的并行算法,结果表明基于GPU阵列的几何校正有效提高了矫正效率;文献[7]分析和总结了CPU-GPU架构在高光谱影像数据处理系统中的应用,指出这种异构架构在该领域的应用具有可行性且前景广阔;文献[8]利用卷积神经网络(CNN)提取原始图像特征领域,对现有并行算法GCN(GPU based Cube-CNN)计算效率不够高的情况,提出了基于通用矩阵乘法(GEMM)算法的GGCN(GPU based Cube-CNN improved by GEMM)并行算法,提升了算法的效率并有效提高了GPU的利用率.综上所述,对于海量高光谱遥感数据的高性能处理引入基于GPU计算的技术手段是可行的.

  • 本文使用基于CPU-GPU异构计算的遥感高光谱数据加速处理技术,结合使用快速傅里叶变换完成高光谱数据的傅里叶分析,解决海量高光谱数据处理过程中的干涉数据到光谱数据转换效率较低的问题.这一技术是“风云四号”干涉式大气垂直探测仪系统研究中的一项重要环节,对提高光谱分辨率和大气垂直探测能力,提高我国天气预报能力具有重要意义.

  • 1 GPU并行运算性能优势

  • 为满足不同的需求,CPU与GPU结构上有较大的区别(图1).CPU在逻辑上有三大组成部分,分别是控制单元、运算单元和存储单元.在结构上,CPU有较大容量的高速缓存(cache),有复杂的逻辑控制与分支预测,这种结构使得运算单元(ALU)只占CPU结构空间较小的一部分.而GPU在结构设计上包含了大量的ALU,即图1b中右上的密集的方格,与CPU相比较,GPU没有复杂的逻辑控制,具有较小的高速缓存,且缓存是为了单个线程(thread)提供数据等.GPU在内存设计上分纹理内存、共享内存、全局内存等.使用特定的内存可以更好地提高数据的访问速度,且有更高的内存带宽,利用大量ALU进行并行处理,计算能力更强.

  • 在实际问题处理中,某些问题或问题中的某一部分解决方式具有很强的并行性,如果按照串行运算处理时,处理时间较长,使用并行计算明显具有时间上的优势,特别是待处理的数据量较大时.而利用GPU就可以很好地解决这类问题,GPU包含了数量众多的更小、更高效的核心,这些核心可以很好地解决多任务并行处理的问题.以Fermi架构为例,GPU设计上包含了多个SM(Streaming Multiprocessors,流式多处理器),而每个SM都支持数以百计的线程并行执行,所以当GPU进行并行运算时,成百上千的线程可以并行执行.CUDA core为GPU的计算核心,相当于微型CPU,线程的管理和执行采用的是SIMT(Single Instruction Multiple Thread)架构,每个线程都有它自己的状态寄存器和指令地址计数器,这就使得GPU擅长解决大规模的数据并行任务.

  • 在结构层次上,GPU往下可分为SM、SP(Stream Processor),CUDA中线程分为Grid、Block、Thread三个组织层次,Grid、Block均为dim3结构.CUDA Thread最终的并行执行是在实际的物理硬件上实现的,逻辑线程与实际的物理硬件有着一定的映射关系,即Thread对应SP(即CUDA core),Block对应SM,Grid对应Device设备.GPU并行执行时任务线程层次如图2所示.

  • 串行运算和并行运算的区别在于:串行计算将一个任务分解为大量离散的指令,指令是顺序执行的,而并行计算将一个任务的处理分为几个阶段,每个部分同样分解为一系列的离散指令,在某些阶段,任务适合并行处理时,这些指令可在众多线程中同时执行,提高了解决问题的速度.

  • 2 高光谱数据处理相关算法研究

  • 2.1 Cooley-Tukey FFT算法

  • 对于一个非周期离散时间信号x(n),其离散傅里叶变换为

  • 图1 CPU和GPU结构

  • Fig.1 The CPU (a) and GPU (b) structures

  • 图2 CUDA Thread层次

  • Fig.2 CUDA Thread levels

  • Xk=n=0N-1 xnexp-i2πknN,
    (1)
  • 式中,k=0,1,,N-1,为DFT系数.

  • 离散傅里叶变换(DFT)运算时间复杂度为O(n2).为了简化DFT,利用其周期性、对称性等特点,便出现了快速傅里叶变换(FFT),其时间复杂度为O (nlog2n),其中Cooley-Tukey FFT算法[9]最为成熟.

  • 快速傅里叶变换用数学公式表示如下:

  • XF(k)=n=0N-1 xne-i2πknN=m=0N2-1 x2me-i2πk(2m)N+m=0N2-1 x2m+1e-i2πk(2m+1)N=m=0N2-1 x2me-i2πkmN/2+e-i2πkNm=0N2-1 x2m+1e-i2πkN/2.
    (2)
  • exp-i2πN/2=WN/2=exp-i2(2π)N=WN2,则有:

  • XF(k)=m=0N2-1 x2mWN2mk+WNkm=0N2-1 x2m+1WN2mk=DF(k)+WNkGF(k)
    (3)
  • 其中:k=0,1,,N/2-1; DF(k)GF(k)分别是序列XF(k)的偶数数列和奇数数列.

  • Cooley-Tukey FFT算法采用分治的思想,将单个长度为N的序列按照偶数点和奇数点划分,分成两个子序列,然后将分开的两个序列都进一步按照奇数点和偶数点划分,一层一层地分解下去,直到最后的序列长度为1.然后两序列进行合并,例如两个子序列为c 0,c 4,这些长度为1的DFT是它们本身,则它们的父序列的DFT分别为c0+W10c4,c0-W10c4,此结果传递给c 0,c 4的父序列使用,然后层次向上进行递归,最终可以求得原序列的傅里叶变换.用蝴蝶操作描述这一合并过程,其操作本身包含了一个旋转因子,结构如图3所示.

  • 图3 Cooley-Tukey FFT蝴蝶操作结构

  • Fig.3 Structure of Cooley-Tukey FFT butterfly operation

  • 2.2 FFT在GPU上的并行化

  • 既然Cooley-Tukey FFT算法采用分治的思想,那么分治过程就会有分解和合并两个阶段,合并阶段进行的是蝴蝶操作.合并过程大致如下:经过前面分解过后,各个序列长度均为1,第一组合并(即蝴蝶操作)是将这些序列两两合并,由于原序列被分为了n个短序列,故一共需要进行n/2次合并.以此类推,共进行log2n 组的合并,时间复杂度为O(nlog2n).

  • 每一组合并中有n/2次蝴蝶操作,由于它们之间没有先后顺序关系,因此可以分配足够的线程,使得一组中n/2次蝴蝶操作同时进行,该组计算的并行时间复杂度为O(1),整个计算过程一共需要进行log2n 组合并,故采用蝴蝶操作并行化时,整个计算过程的并行时间复杂度为O(log2n).本文利用该方法在GPU上实现FFT的并行化操作,加快高光谱数据的处理速度.

  • 3 基于异构计算的遥感高光谱数据并行处理实现流程

  • 通过对CPU和GPU结构比较,使用CPU完成数据处理过程中逻辑控制的计算,而GPU完成具有数据密集型的并行处理的计算.明白CPU-GPU的协同处理技术后,使用NVIDIA的CUDA并行编程框架制订数据并行处理流程,包括高光谱数据的读取、CPU和GPU端内存分配、数据的分块处理、CPU-GPU内存交互、GPU端核函数定义等,建立稳定高效的处理流程,具体流程如图4所示,图4a为传统CPU计算流程,图4b为异构计算流程.异构计算流程如下:

  • 1)CPU和GPU端内存分配.CPU和GPU两者内存地址不同,需要在两端进行内存单独分配,便于CPU和GPU对内存数据操作,为后续的CPU-GPU内存交互做准备.

  • 2)大气遥感高光谱数据的读取.原高光谱数据以二进制格式存储在PC机中,需要数据读至CPU内存中,用于后续高光谱数据的处理.

  • 3)CPU-GPU内存交互.由于CPU与GPU端内存相互独立,即两端分配的内存只能在各自端使用,因此在GPU端运行核函数时,需要将用于计算的数据从CPU端内存拷贝到GPU端内存,核函数计算完成之后,也需要把计算结果拷贝到CPU端,然后在主机端完成后面的处理.

  • 4)GPU端核函数定义.在GPU端定义核函数,将CPU端拷贝来的数据在GPU端进行数据的并行计算,同时设置线程网格(Grid)和线程块(Block)的大小,确定使用线程的数量.

  • 5)核函数的执行.定义的核函数将在分配的大量线程上运行,线程之间的运行同时进行,互补干扰,这得益于GPU本身的物理结构拥有很多的硬件线程,它们使用单指令多数据运算.

  • 4 实验与分析

  • 本实验使用同一台PC机,分别测试基于CPU计算和基于CPU-GPU异构计算处理高光谱数据,处理的数据量均为400份文件,一份文件有36MB光谱数据,总共14.4GB的数据,比较两者处理相同任务所用的时间,判断基于CPU-GPU异构计算的并行处理是否具有性能优势.

  • 图4 CPU计算和异构计算流程

  • Fig.4 Processes of the CPU-based computing (a) and CPU-GPU heterogeneous computing (b)

  • 1)软硬件环境

  • 采用一台PC机,使用NVIDIA公司的GenForce GTX 1660GPU显卡,显卡容量6GB,有1 408个CUDA核心;CPU处理器为Intel(R) Core(TM) i9-9900K,物理内存32GB.实验在64bit Windows10系统下进行,采用Visual Studio 2017集成开发环境,使用C++编程语言,进行基于CPU计算和基于CPU-GPU异构计算的高光谱数据处理.

  • 2)实验结果分析

  • 分别使用基于CPU计算和基于CPU-GPU异构计算的技术处理相同海量高光谱数据,两者所用计算数据均用双精度表示,计算完成干涉图到光谱图的转换时间,使用计时工具计时,并判断计算结果准确性.两者所用时间:前者130min左右,后者约1.5min,说明采用异构计算可以明显提升处理性能,速度提升80多倍.为验证结果准确性,这里选取两幅对应的光谱图显示,一幅为基于CPU-GPU异构模式的计算数据图像,一幅为基于CPU的使用matlab函数库计算的数据图像,如图5所示.数据结果比较采用(a-b)/((a +b)/2)误差的形式,a表示图5a即基于CPU-GPU异构模式的计算数据,b表示图5b即使用CPU计算的数据,结果如图6所示,两者相对误差量级基本在10-14,可以说明两种方式处理后的数据是一致的.故使用基于CPU-GPU异构计算的并行加速处理的方法处理大气遥感高光谱数据时,速度明显提升,准确性也可以保证.

  • 图5 基于CPU-GPU异构计算和基于CPU计算得到的光谱图

  • Fig.5 Spectrograms obtained from CPU-GPU heterogeneous computing (a) and CPU-based computing (b)

  • 图6 两种情况计算结果相对误差

  • Fig.6 Relative error between CPU-GPU heterogeneous computing and CPU-based computing

  • 5 结束语

  • 本文针对海量高光谱数据处理效率较低的情况,将基于CPU-GPU异构计算的技术引入到高光谱数据处理中来,并将其用于高光谱数据处理的一套系统中,对整体的性能进行优化,极大地提高了数据处理的效率.实验结果表明,本方法较传统的CPU计算有着较大的性能提升,速度提升80多倍,研究成果将会在“风云四号”干涉式大气垂直探测仪获得的数据处理中得到应用.基于CPU-GPU异构计算的大气高光谱数据并行加速处理技术,是提高高光谱分辨率探测和大气垂直探测能力的要求,对于提高我国天气预报能力具有重要的应用价值.

  • 参考文献

    • [1] 华建文,毛建华.“风云四号”气象卫星大气垂直探测仪[J].科学,2018,70(1):24-29;HUA Jianwen,MAO Jianhua.Geostationary interferometric-type infrared sounder(GIRS)on Fengyun No.4 meteorological satellite[J].Science,2018,70(1):24-29

    • [2] 金媛.面向CPU、GPU及其异构形式的混合模拟算法的高性能并行优化[D].南昌:南昌大学,2020;JIN Yuan.High performance parallel optimization of hybrid simulation algorithms for CPU,GPU and its heterogeneous forms[D].Nanchang:Nanchang University,2020

    • [3] 王茂芝,郭科,徐文皙.基于集群和GPU的高光谱遥感影像并行处理[J].红外与激光工程,2013,42(11):3070-3075;WANG Maozhi,GUO Ke,XU Wenxi.Parallel processing of hyperspectral remote sensing images based on cluster and GPU[J].Infrared and Laser Engineering,2013,42(11):3070-3075

    • [4] 汤媛媛,周海芳,方民权,等.基于CPU/GPU异构模式的高光谱遥感影像数据处理研究与实现[J].计算机科学,2016,43(02):47-50,77;TANG Yuanyuan,ZHOU Haifang,FANG Minquan,et al.Research and implementation of hyperspectral remote sensing image data processing based on CPU/GPU heterogeneous model[J].Computer Science,2016,43(2):47-50,77

    • [5] Paz A,Plaza A.Cluster versus GPU implementation of an orthogonal target detection algorithm for remotely sensed hyperspectral images[C]//2010 IEEE International Conference on Cluster Computing,2010:227-234

    • [6] 刘灿.遥感图像几何校正GPU阵列并行算法研究[D].成都:电子科技大学,2019;LIU Can.Research on GPU array parallel algorithm for geometric correction of remote sensing images [D].Chengdu:University of Electronic Science and Technology of China,2019

    • [7] 党源源,王昕.CPU-GPU异构系统在光学遥感影像处理中的应用[J].红外与激光工程,2020,49(增刊1):177-185;DANG Yuanyuan,WANG Xin.Application of CPU-GPU heterogeneous system in optical remote sensing image processing[J].Infrared and Laser Engineering,2020,49(sup1):177-185

    • [8] 张明华,邹亚晴,宋巍,等.GGCN:基于GPU的高光谱图像分类算法[J].激光与光电子学进展,2020,57(20):231-237;ZHANG Minghua,ZOU Yaqing,SONG Wei,et al.GGCN:GPU-based hyperspectral image classification algorithm[J].Laser & Optoelectronics Progress,2020,57(20):231-237

    • [9] 龚彤艳,张广婷,贾海鹏,等.一种偶数基Cooley-Tukey FFT高性能实现方法[J].计算机科学,2020,47(1):31-39;GONG Tongyan,ZHANG Guangting,JIA Haipeng,et al.A high performance implementation method of Cooley-Tukey FFT with even base [J].Computer Science,2020,47(1):31-39

  • 参考文献

    • [1] 华建文,毛建华.“风云四号”气象卫星大气垂直探测仪[J].科学,2018,70(1):24-29;HUA Jianwen,MAO Jianhua.Geostationary interferometric-type infrared sounder(GIRS)on Fengyun No.4 meteorological satellite[J].Science,2018,70(1):24-29

    • [2] 金媛.面向CPU、GPU及其异构形式的混合模拟算法的高性能并行优化[D].南昌:南昌大学,2020;JIN Yuan.High performance parallel optimization of hybrid simulation algorithms for CPU,GPU and its heterogeneous forms[D].Nanchang:Nanchang University,2020

    • [3] 王茂芝,郭科,徐文皙.基于集群和GPU的高光谱遥感影像并行处理[J].红外与激光工程,2013,42(11):3070-3075;WANG Maozhi,GUO Ke,XU Wenxi.Parallel processing of hyperspectral remote sensing images based on cluster and GPU[J].Infrared and Laser Engineering,2013,42(11):3070-3075

    • [4] 汤媛媛,周海芳,方民权,等.基于CPU/GPU异构模式的高光谱遥感影像数据处理研究与实现[J].计算机科学,2016,43(02):47-50,77;TANG Yuanyuan,ZHOU Haifang,FANG Minquan,et al.Research and implementation of hyperspectral remote sensing image data processing based on CPU/GPU heterogeneous model[J].Computer Science,2016,43(2):47-50,77

    • [5] Paz A,Plaza A.Cluster versus GPU implementation of an orthogonal target detection algorithm for remotely sensed hyperspectral images[C]//2010 IEEE International Conference on Cluster Computing,2010:227-234

    • [6] 刘灿.遥感图像几何校正GPU阵列并行算法研究[D].成都:电子科技大学,2019;LIU Can.Research on GPU array parallel algorithm for geometric correction of remote sensing images [D].Chengdu:University of Electronic Science and Technology of China,2019

    • [7] 党源源,王昕.CPU-GPU异构系统在光学遥感影像处理中的应用[J].红外与激光工程,2020,49(增刊1):177-185;DANG Yuanyuan,WANG Xin.Application of CPU-GPU heterogeneous system in optical remote sensing image processing[J].Infrared and Laser Engineering,2020,49(sup1):177-185

    • [8] 张明华,邹亚晴,宋巍,等.GGCN:基于GPU的高光谱图像分类算法[J].激光与光电子学进展,2020,57(20):231-237;ZHANG Minghua,ZOU Yaqing,SONG Wei,et al.GGCN:GPU-based hyperspectral image classification algorithm[J].Laser & Optoelectronics Progress,2020,57(20):231-237

    • [9] 龚彤艳,张广婷,贾海鹏,等.一种偶数基Cooley-Tukey FFT高性能实现方法[J].计算机科学,2020,47(1):31-39;GONG Tongyan,ZHANG Guangting,JIA Haipeng,et al.A high performance implementation method of Cooley-Tukey FFT with even base [J].Computer Science,2020,47(1):31-39

  • 地址:江苏省南京市宁六路219号    邮编:210044

    联系电话:025-58731025    E-mail:nxdxb@nuist.edu.cn

    南京信息工程大学学报 ® 2024 版权所有  技术支持:北京勤云科技发展有限公司