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