基于多核CPU和GPU的高光譜數(shù)據(jù)并行幾何校正
摘要:針對高光譜幾何校正計(jì)算復(fù)雜,大數(shù)據(jù)量頻繁傳輸降低處理效率,無法滿足實(shí)時(shí)需求等問題。提出基于多核CPU和GPU的并行計(jì)算模型。實(shí)現(xiàn)基于GPU的并行幾何校正,并引入流水線并行思想提出基于多線程的數(shù)據(jù)讀寫優(yōu)化方法,實(shí)現(xiàn)重采樣部分的數(shù)據(jù)I/O優(yōu)化。應(yīng)用航空推掃成像儀所得高光譜數(shù)據(jù)進(jìn)行實(shí)驗(yàn),驗(yàn)證該方法能夠有效地隱藏部分硬盤與內(nèi)存間的數(shù)據(jù)I/O時(shí)間,幾何校正加速比達(dá)到4.03,在基于GPU的并行計(jì)算基礎(chǔ)上提高了1.74倍。
關(guān)鍵詞:高光譜數(shù)據(jù);幾何校正;并行計(jì)算;多核CPU
0 引言
高光譜遙感影像數(shù)據(jù)量大、操作復(fù)雜的特點(diǎn)使其處理過程對于高性能并行計(jì)算的需求是十分迫切的。高性能計(jì)算是以并行計(jì)算的形式同時(shí)使用多種計(jì)算資源解決大型且復(fù)雜的計(jì)算問題。
目前,國內(nèi)外學(xué)者針對不同的高光譜遙感應(yīng)用研究其高性能并行計(jì)算方法。目前,基于GPU的并行計(jì)算將CPU作為主機(jī)端,其作用類似一個(gè)控制器,決定何時(shí)調(diào)用GPU函數(shù)進(jìn)行基于GPU的并行計(jì)算。該計(jì)算模型充分利用了GPU的高計(jì)算性能,卻忽視了CPU本身的運(yùn)算能力,在多核CPU普及的情況下浪費(fèi)了系統(tǒng)資源。本文提出一種基于多核CPU和GPU的并行計(jì)算模型,在GPU強(qiáng)大的計(jì)算能力進(jìn)行并行計(jì)算的同時(shí)利用多核CPU創(chuàng)建多線程進(jìn)行數(shù)據(jù)讀/寫,隱藏?cái)?shù)據(jù)I/O時(shí)間。
1 基于POS數(shù)據(jù)的幾何校正方法
在遙感數(shù)據(jù)獲取過程中,由于地形起伏、遙感器平臺位置姿態(tài)等原因,遙感影像存在不同程度的幾何畸變。遙感影像數(shù)據(jù)在面向應(yīng)用之前需進(jìn)行幾何校正,消除幾何畸變。本文所涉及的高光譜遙感影像數(shù)據(jù)幾何校正是基于POS的幾何校正。其過程包含坐標(biāo)變換和重采樣兩個(gè)部分。坐標(biāo)變換是指利用獲取遙感影像時(shí)記錄的POS數(shù)據(jù)(飛機(jī)飛行參數(shù)和姿態(tài)信息等)和測區(qū)DEM高程數(shù)據(jù)建立共線方程、求解坐標(biāo)系轉(zhuǎn)換矩陣,獲取各像元地面坐標(biāo)。坐標(biāo)轉(zhuǎn)換過程算法復(fù)雜,計(jì)算量較大。
重采樣是指根據(jù)求得的像元地面坐標(biāo)并結(jié)合原始影像數(shù)據(jù)信息,計(jì)算校正后影像像元灰度值,得到幾何校正遙感影像。重采樣過程需要在空間維和光譜維遍歷高光譜數(shù)據(jù)立方體,計(jì)算量大,數(shù)據(jù)I/O頻繁。兩個(gè)步驟的特點(diǎn)決定幾何校正過程計(jì)算耗時(shí),需通過并行計(jì)算提高其處理速度。
2 并行幾何校正
2.1 幾何校正并行方法和實(shí)現(xiàn)
坐標(biāo)轉(zhuǎn)換針對各像元進(jìn)行單獨(dú)計(jì)算,計(jì)算過程相互獨(dú)立,因此能夠采用基于GPU并行計(jì)算平臺實(shí)現(xiàn)各像元坐標(biāo)轉(zhuǎn)換矩陣并行計(jì)算。重采樣過程中各個(gè)波段之間的計(jì)算不相關(guān),屬于空間維計(jì)算,且各計(jì)算區(qū)域的相關(guān)性低。按光譜維劃分?jǐn)?shù)據(jù),依次將待處理數(shù)據(jù)塊輸入到GPU中,實(shí)現(xiàn)各空間點(diǎn)或空間區(qū)域之間的并行計(jì)算。并行計(jì)算大幅降低幾何校正過程的計(jì)算時(shí)間,高光譜數(shù)據(jù)I/O時(shí)間所占比例提升,限制了處理速度的進(jìn)一步提升。因此,研究數(shù)據(jù)I/O的優(yōu)化方法對于提升并行計(jì)算速度是十分必要的。
2.2 基于CPU和GPU系統(tǒng)的I/O優(yōu)化方法
在基于GPU的并行幾何校正算法中,重采樣部分的數(shù)據(jù)讀/寫時(shí)間相比計(jì)算時(shí)間所占比例大幅提高,I/O瓶頸限制了并行程序運(yùn)行效率的進(jìn)一步提高。
計(jì)算模型是對一類計(jì)算機(jī)系統(tǒng)提供抽象描述,即用少量參數(shù)簡單、充分地反映該系統(tǒng)的資源和性能特征?;贑PU和GPU異構(gòu)并行計(jì)算模型可由式(1)表述:
式中:Tread和Twrite是數(shù)據(jù)I/O時(shí)間;TGPU為主機(jī)端調(diào)用核函數(shù)進(jìn)行GPU并行計(jì)算的時(shí)間,包括通信時(shí)間和計(jì)算時(shí)間;T1,T2,…,TN-1,為各個(gè)CPU處理核心/線程執(zhí)行任務(wù)的處理時(shí)間。
根據(jù)式(1)所描述的計(jì)算模型,實(shí)現(xiàn)I/O優(yōu)化。在主線程進(jìn)行基于GPU的并行計(jì)算的同時(shí),創(chuàng)建多個(gè)派生線程并分配給每個(gè)線程一定任務(wù)并行執(zhí)行。針對高光譜應(yīng)用的特點(diǎn),參考流水線的并行思想,利用CPU多核特性,設(shè)計(jì)基于多線程的并行方法,將讀數(shù)據(jù)、計(jì)算、寫數(shù)據(jù)三個(gè)互不相關(guān)的過程分配給三個(gè)線程同時(shí)運(yùn)行,線程一從磁盤讀取未計(jì)算數(shù)據(jù)塊并存到內(nèi)存中,線程二調(diào)用核函數(shù)對內(nèi)存中待計(jì)算的數(shù)據(jù)塊進(jìn)行基于GPU的并行計(jì)算,線程三對內(nèi)存中已計(jì)算數(shù)據(jù)塊的計(jì)算結(jié)果進(jìn)行寫操作。I/O與計(jì)算并行執(zhí)行可隱藏部分I/O時(shí)間?;贑PU和GPU的并行計(jì)算每個(gè)數(shù)據(jù)塊的計(jì)算時(shí)間可由式(2)中的Ti優(yōu)化為式(3)中的Ti’。
式中:TI/O是并行讀寫優(yōu)化后數(shù)據(jù)I/O時(shí)間。數(shù)據(jù)讀、寫并行化能夠提高存儲帶寬利用率,降低I/O總時(shí)間,可知TI/O<Tread+Twri te。全部數(shù)據(jù)處理時(shí)間則由式(4)中的Ttotal優(yōu)化為式(5)中的Ttotal’。
對比式(4)和式(5),易知該處理過程通過任務(wù)級并行計(jì)算隱藏部分?jǐn)?shù)據(jù)I/O時(shí)間(此處i為處理的數(shù)據(jù)塊編號,n為數(shù)據(jù)塊的總數(shù)目)。
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)平臺參數(shù)
基于CPU和GPU的并行計(jì)算平臺處理核心參數(shù)如表1和表2所示。
3.2 實(shí)驗(yàn)數(shù)據(jù)
山東榮成PHI推掃遙感數(shù)據(jù),大小為:652列,10 000行,124波段。
3.3 基于GPU的并行計(jì)算
對山東榮成PHI推掃高光譜數(shù)據(jù)進(jìn)行基于GPU的并行幾何校正,坐標(biāo)變換和重采樣部分串行計(jì)算時(shí)間和GPU并行計(jì)算時(shí)間如表3所示,該時(shí)間不包含高光譜數(shù)據(jù)的I/O時(shí)間。
在重采樣部分,在計(jì)算過程中需根據(jù)未幾何校正的原始影像數(shù)據(jù)求解經(jīng)校正的高光譜數(shù)據(jù),所涉及的輸入輸出數(shù)據(jù)都是三維的高光譜數(shù)據(jù)立方體。重采樣部分所耗總時(shí)間除了計(jì)算時(shí)間,還包含較高比例的數(shù)據(jù)I/O時(shí)間,如表4所示。
并行重采樣部分未達(dá)到理想的高加速比,是因?yàn)橹夭蓸硬糠制骄總€(gè)波段計(jì)算中硬盤讀/寫時(shí)間達(dá)到約440 ms,比在GPU上的并行計(jì)算時(shí)間60 ms(包含核函數(shù)計(jì)算時(shí)間和顯存與內(nèi)存間的通信時(shí)間)高了多達(dá)7倍,大幅降低了并行計(jì)算所帶來的加速比。高光譜影像數(shù)據(jù)量巨大的特點(diǎn)決定了其數(shù)據(jù)I/O時(shí)間難以忽略。因此,面向高光譜影像領(lǐng)域的應(yīng)用問題,實(shí)現(xiàn)其快速計(jì)算的一個(gè)難點(diǎn)。就是如何優(yōu)化I/O,降低其在運(yùn)算時(shí)間中所占比例。
3.4 基于CPU和GPU的并行幾何校正
將本文所提出的基于多核CPU和GPU的并行方法應(yīng)用到重采樣計(jì)算過程中:CPU端利用多核特性創(chuàng)建多線程進(jìn)行任務(wù)級并行,在主線程調(diào)用GPU執(zhí)行重采樣并行計(jì)算任務(wù)的同時(shí),派生線程分別完成I/O任務(wù)。通過實(shí)驗(yàn)可知,基于CPU和GPU的并行重采樣加速比達(dá)到3.53,如表5所示。
該結(jié)果證實(shí)了本文參考流的思想提出的基于多線程的數(shù)據(jù)I/O優(yōu)化方法具有很好的效果,并對高光譜遙感影像領(lǐng)域的應(yīng)用具有普適性。
4 結(jié)語
本文針對幾何校正應(yīng)用所處理數(shù)據(jù)量大、計(jì)算時(shí)間長的特點(diǎn),針對多核CPU和GPU的特點(diǎn)分析其各自優(yōu)勢,抽象出一種描述多核CPU和GPU異構(gòu)并行平臺的并行計(jì)算模型,研究基于POS數(shù)據(jù)的幾何校正并行計(jì)算方法,實(shí)現(xiàn)航空高光譜數(shù)據(jù)并行幾何校正。實(shí)驗(yàn)結(jié)果表明;數(shù)據(jù)I/O限制基于GPU的并行重采樣獲得整體加速比。
基于多核CPU和GPU的并行幾何校正創(chuàng)建多線程執(zhí)行數(shù)據(jù)讀/寫任務(wù),在基于GPU并行計(jì)算的基礎(chǔ)上有效地隱藏了重采樣過程的數(shù)據(jù)I/O時(shí)間,加速比在原來的基礎(chǔ)上提高了1.76倍。幾何校正總體加速比達(dá)到4.03,在原有基礎(chǔ)上提高了1.74倍。