基于多核CPU和GPU的高光谱数据并行几何校正
扫描二维码
随时随地手机看文章
摘要:针对高光谱几何校正计算复杂,大数据量频繁传输降低处理效率,无法满足实时需求等问题。提出基于多核CPU和GPU的并行计算模型。实现基于GPU的并行几何校正,并引入流水线并行思想提出基于多线程的数据读写优化方法,实现重采样部分的数据I/O优化。应用航空推扫成像仪所得高光谱数据进行实验,验证该方法能够有效地隐藏部分硬盘与内存间的数据I/O时间,几何校正加速比达到4.03,在基于GPU的并行计算基础上提高了1.74倍。
关键词:高光谱数据;几何校正;并行计算;多核CPU
0 引言
高光谱遥感影像数据量大、操作复杂的特点使其处理过程对于高性能并行计算的需求是十分迫切的。高性能计算是以并行计算的形式同时使用多种计算资源解决大型且复杂的计算问题。
目前,国内外学者针对不同的高光谱遥感应用研究其高性能并行计算方法。目前,基于GPU的并行计算将CPU作为主机端,其作用类似一个控制器,决定何时调用GPU函数进行基于GPU的并行计算。该计算模型充分利用了GPU的高计算性能,却忽视了CPU本身的运算能力,在多核CPU普及的情况下浪费了系统资源。本文提出一种基于多核CPU和GPU的并行计算模型,在GPU强大的计算能力进行并行计算的同时利用多核CPU创建多线程进行数据读/写,隐藏数据I/O时间。
1 基于POS数据的几何校正方法
在遥感数据获取过程中,由于地形起伏、遥感器平台位置姿态等原因,遥感影像存在不同程度的几何畸变。遥感影像数据在面向应用之前需进行几何校正,消除几何畸变。本文所涉及的高光谱遥感影像数据几何校正是基于POS的几何校正。其过程包含坐标变换和重采样两个部分。坐标变换是指利用获取遥感影像时记录的POS数据(飞机飞行参数和姿态信息等)和测区DEM高程数据建立共线方程、求解坐标系转换矩阵,获取各像元地面坐标。坐标转换过程算法复杂,计算量较大。
重采样是指根据求得的像元地面坐标并结合原始影像数据信息,计算校正后影像像元灰度值,得到几何校正遥感影像。重采样过程需要在空间维和光谱维遍历高光谱数据立方体,计算量大,数据I/O频繁。两个步骤的特点决定几何校正过程计算耗时,需通过并行计算提高其处理速度。
2 并行几何校正
2.1 几何校正并行方法和实现
坐标转换针对各像元进行单独计算,计算过程相互独立,因此能够采用基于GPU并行计算平台实现各像元坐标转换矩阵并行计算。重采样过程中各个波段之间的计算不相关,属于空间维计算,且各计算区域的相关性低。按光谱维划分数据,依次将待处理数据块输入到GPU中,实现各空间点或空间区域之间的并行计算。并行计算大幅降低几何校正过程的计算时间,高光谱数据I/O时间所占比例提升,限制了处理速度的进一步提升。因此,研究数据I/O的优化方法对于提升并行计算速度是十分必要的。
2.2 基于CPU和GPU系统的I/O优化方法
在基于GPU的并行几何校正算法中,重采样部分的数据读/写时间相比计算时间所占比例大幅提高,I/O瓶颈限制了并行程序运行效率的进一步提高。
计算模型是对一类计算机系统提供抽象描述,即用少量参数简单、充分地反映该系统的资源和性能特征。基于CPU和GPU异构并行计算模型可由式(1)表述:
式中:Tread和Twrite是数据I/O时间;TGPU为主机端调用核函数进行GPU并行计算的时间,包括通信时间和计算时间;T1,T2,…,TN-1,为各个CPU处理核心/线程执行任务的处理时间。
根据式(1)所描述的计算模型,实现I/O优化。在主线程进行基于GPU的并行计算的同时,创建多个派生线程并分配给每个线程一定任务并行执行。针对高光谱应用的特点,参考流水线的并行思想,利用CPU多核特性,设计基于多线程的并行方法,将读数据、计算、写数据三个互不相关的过程分配给三个线程同时运行,线程一从磁盘读取未计算数据块并存到内存中,线程二调用核函数对内存中待计算的数据块进行基于GPU的并行计算,线程三对内存中已计算数据块的计算结果进行写操作。I/O与计算并行执行可隐藏部分I/O时间。基于CPU和GPU的并行计算每个数据块的计算时间可由式(2)中的Ti优化为式(3)中的Ti’。
式中:TI/O是并行读写优化后数据I/O时间。数据读、写并行化能够提高存储带宽利用率,降低I/O总时间,可知TI/O<Tread+Twri te。全部数据处理时间则由式(4)中的Ttotal优化为式(5)中的Ttotal’。
对比式(4)和式(5),易知该处理过程通过任务级并行计算隐藏部分数据I/O时间(此处i为处理的数据块编号,n为数据块的总数目)。
3 实验结果与分析
3.1 实验平台参数
基于CPU和GPU的并行计算平台处理核心参数如表1和表2所示。
3.2 实验数据
山东荣成PHI推扫遥感数据,大小为:652列,10 000行,124波段。
3.3 基于GPU的并行计算
对山东荣成PHI推扫高光谱数据进行基于GPU的并行几何校正,坐标变换和重采样部分串行计算时间和GPU并行计算时间如表3所示,该时间不包含高光谱数据的I/O时间。
在重采样部分,在计算过程中需根据未几何校正的原始影像数据求解经校正的高光谱数据,所涉及的输入输出数据都是三维的高光谱数据立方体。重采样部分所耗总时间除了计算时间,还包含较高比例的数据I/O时间,如表4所示。
并行重采样部分未达到理想的高加速比,是因为重采样部分平均每个波段计算中硬盘读/写时间达到约440 ms,比在GPU上的并行计算时间60 ms(包含核函数计算时间和显存与内存间的通信时间)高了多达7倍,大幅降低了并行计算所带来的加速比。高光谱影像数据量巨大的特点决定了其数据I/O时间难以忽略。因此,面向高光谱影像领域的应用问题,实现其快速计算的一个难点。就是如何优化I/O,降低其在运算时间中所占比例。
3.4 基于CPU和GPU的并行几何校正
将本文所提出的基于多核CPU和GPU的并行方法应用到重采样计算过程中:CPU端利用多核特性创建多线程进行任务级并行,在主线程调用GPU执行重采样并行计算任务的同时,派生线程分别完成I/O任务。通过实验可知,基于CPU和GPU的并行重采样加速比达到3.53,如表5所示。
该结果证实了本文参考流的思想提出的基于多线程的数据I/O优化方法具有很好的效果,并对高光谱遥感影像领域的应用具有普适性。
4 结语
本文针对几何校正应用所处理数据量大、计算时间长的特点,针对多核CPU和GPU的特点分析其各自优势,抽象出一种描述多核CPU和GPU异构并行平台的并行计算模型,研究基于POS数据的几何校正并行计算方法,实现航空高光谱数据并行几何校正。实验结果表明;数据I/O限制基于GPU的并行重采样获得整体加速比。
基于多核CPU和GPU的并行几何校正创建多线程执行数据读/写任务,在基于GPU并行计算的基础上有效地隐藏了重采样过程的数据I/O时间,加速比在原来的基础上提高了1.76倍。几何校正总体加速比达到4.03,在原有基础上提高了1.74倍。