王子翔,李正強(qiáng)?,光潔,佘璐
(1中國科學(xué)院空天信息創(chuàng)新研究院,國家環(huán)境保護(hù)衛(wèi)星遙感重點(diǎn)實(shí)驗(yàn)室,北京 100101;2中國科學(xué)院大學(xué),北京 100049;3寧夏大學(xué)資源環(huán)境學(xué)院,寧夏 銀川 750021)
高分辨率對地觀測系統(tǒng)是國務(wù)院確定的中長期科學(xué)和技術(shù)發(fā)展規(guī)劃重大專項(xiàng)之一[1],2013年4月,高分一號衛(wèi)星成功發(fā)射,拉開了高分系列衛(wèi)星發(fā)射的序幕[2]。高分四號衛(wèi)星(GF-4)于2015年12月29日在西昌衛(wèi)星發(fā)射中心成功發(fā)射,是我國第一顆地球同步軌道遙感衛(wèi)星,搭載了一臺可見光50 m、紅外波段400 m分辨率、大于400 km幅寬的凝視相機(jī),具備可見光和紅外成像能力,通過指向控制實(shí)現(xiàn)對中國及周邊地區(qū)的觀測,在民用衛(wèi)星遙感方面具有劃時代的意義[3]。
GF-4數(shù)據(jù)應(yīng)用的關(guān)鍵是快速、精確地進(jìn)行大氣校正,得到地表反射率(Surface reflection,SR)產(chǎn)品,保證數(shù)據(jù)產(chǎn)品及時應(yīng)用于各個行業(yè)部門[4],產(chǎn)品生產(chǎn)效率與精度影響到數(shù)據(jù)應(yīng)用水平和使用價值。GF-4衛(wèi)星數(shù)據(jù)波段較少,空間分辨率與時間分辨率較高,可見光近紅外通道單景影像數(shù)據(jù)量達(dá)到GB級別,整軌數(shù)據(jù)量有上百GB,隨著GF-4數(shù)據(jù)廣泛應(yīng)用于局地精準(zhǔn)天氣預(yù)報(bào)、減災(zāi)救災(zāi)、森林與農(nóng)作物監(jiān)測等領(lǐng)域[5]。GF-4等衛(wèi)星數(shù)據(jù)的串行處理算法無法滿足在應(yīng)急與應(yīng)用領(lǐng)域的快速處理需求,考慮反演算法通常有較高的計(jì)算復(fù)雜性,遙感反演結(jié)合圖形處理器(GPU)加速的并行處理方法已成為當(dāng)前研究熱點(diǎn)。
國內(nèi)外已有較多關(guān)于GPU結(jié)合遙感計(jì)算的研究,周海芳等[6]選取GPU程序面向存儲級的優(yōu)化策略并結(jié)合遙感圖像配準(zhǔn)程序,提出并行設(shè)計(jì)模型與面向存儲級的優(yōu)化策略,適用于遙感圖像配準(zhǔn)領(lǐng)域,最大加速比達(dá)到了19.9倍;肖聆元等[7]基于CUDA架構(gòu)的快速正射糾正算法,在GPU設(shè)備上并行運(yùn)算并利用DOM和DEM對RPC模型進(jìn)行精化處理;Song等[8]基于GPU實(shí)現(xiàn)從地形圖的掃描彩色圖像重新連接輪廓線的方法,具有更好的性能和更高的連接速率;王化喆等[9]為解決遙感圖像前期處理算法計(jì)算時間較長的問題,開展了基于RPC模型實(shí)現(xiàn)遙感處理幾何校正的并行加速與基于SIFT特征提取的并行加速研究,基于數(shù)據(jù)的并行劃分實(shí)現(xiàn)了遙感圖像的幾何校正和SIFT特征提取算法的加速;湯媛媛等[10]構(gòu)建CPU/GPU異構(gòu)模式,對高光譜遙感影像MNF降維并行加速實(shí)現(xiàn)了異構(gòu)模式在遙感高光譜領(lǐng)域的并行優(yōu)化。以上結(jié)合GPU并行算法的遙感研究一定程度上提高了遙感計(jì)算的效率,但目前結(jié)合GF-4等國產(chǎn)高分辨率衛(wèi)星的GPU并行加速應(yīng)用研究較少。
大氣校正方法主要包括基于圖像特征模型、地表實(shí)測線性回歸模型和輻射傳輸模型等。其中輻射傳輸模型反演地物反射率可描述大氣散射、吸收等過程[11]。目前大氣校正處理應(yīng)用較廣泛的6 S模型是美國馬里蘭大學(xué)地理系在5 S[12]模型基礎(chǔ)上研發(fā)的,該模型在氣體透過率、瑞利散射及氣溶膠光學(xué)厚度的計(jì)算等方面進(jìn)行了改進(jìn),在MODIS產(chǎn)品大氣校正計(jì)算方面表現(xiàn)尤為突出[13]。2005年6SV較之前的模型主要增加了輻射極化的計(jì)算[14]。國內(nèi)外相關(guān)研究中,Sever等[15]利用大氣校正的多角度實(shí)現(xiàn)(MAIAC)是通過使用地表雙向反射系數(shù)(BRF)的解析計(jì)算而使用格林函數(shù)的半解析算法;Wang等[16]使用MODIS日地表反射產(chǎn)品(MOD09GA)作為評估Landsat地表反射產(chǎn)品準(zhǔn)確性的參考,證明MODIS SR(Surface reflectance)產(chǎn)品和Landsat SR產(chǎn)品具有很強(qiáng)的一致性;Eric等[17]提出MODIS表觀反射率乘積計(jì)算出的OLI儀器的1/2通道和4通道的地表反射率的算法;簡化的高分辨率MODIS氣溶膠檢索算法(SARA)[18]利用(AERONET)站的氣溶膠特性以及MOD09GA level-2的每日地表反射率產(chǎn)品進(jìn)行參數(shù)化,驗(yàn)證具有足夠本地先驗(yàn)信息的高分辨率大氣校正。
針對GF-4等國產(chǎn)衛(wèi)星的大氣校正產(chǎn)品快速生產(chǎn)需求,與國產(chǎn)高分辨率衛(wèi)星結(jié)合GPU加速的應(yīng)用研究較少的現(xiàn)狀,本文基于GPU對GF-4大氣校正進(jìn)行并行算法設(shè)計(jì),大氣校正算法參考輻射傳遞方程參數(shù)化的先驗(yàn)知識,針對算法可并行步驟完成基于CUDA-C的內(nèi)核設(shè)計(jì)與映射,對線程、寄存器等進(jìn)行性能優(yōu)化。GF-4大氣校正算法原理:利用MODIS DT算法所使用的氣溶膠類型[19],考慮輻射傳遞方程的參數(shù)化與地表類型參數(shù)化,基于MODIS地表反射率數(shù)據(jù)產(chǎn)品獲得不同地表類型的GF-4可見光通道(0.47μm和0.67μm)與0.87μm瑞利校正大氣層頂(TOA)反射率之間的統(tǒng)計(jì)關(guān)系,使用Levenberg-Marquardt算法進(jìn)行迭代得到最佳氣溶膠光學(xué)厚度(AOD)[20],基于AOD結(jié)果與構(gòu)建的6SV模型LUT(查找表)計(jì)算地表反射率,并利用Landsat-8地表反射率產(chǎn)品對GF-4產(chǎn)品進(jìn)行精度驗(yàn)證。
GF-4數(shù)據(jù)包括可見光、近紅外與中紅外6個波段,其中可見光及近紅外波段的空間分辨率為50 m,中紅外波段空間分辨率400 m,波段信息如表1所示??紤]GF-4搭載全色多光譜傳感器(PMS)與紅外傳感器(IRS)兩個有效載荷,測試數(shù)據(jù)選擇2016年6、7月份的GF-4 PMS數(shù)據(jù),研究區(qū)域?yàn)橹袊L江中下游地區(qū),如圖1所示。表1也給出了MODIS的可見光及近紅外波段的波段信息,包含250 m分辨率的近紅外與紅色波段,以及500 m分辨率的藍(lán)綠波段。
圖1 GF-4研究區(qū)域長江中下游地區(qū)Fig.1 GF-4 study area in the middle and lower reaches of the Yangtze River
表1 GF-4數(shù)據(jù)波段與分辨率Table 1 Band and resolution of GF-4 data
GF-4大氣校正算法主要包括三個功能步驟,分別是估計(jì)地表反射率、反演AOD與計(jì)算地表反射率,大氣校正算法的流程圖如圖2所示。
圖2 GF-4大氣校正算法流程圖Fig.2 flowchart of GF-4 surface reflectance calculation
(1)估計(jì)地表反射率
TOA表觀反射率的計(jì)算,需要輸入估計(jì)的地表反射率,以及氣溶膠類型等參數(shù)。已有研究基于MODIS DB的氣溶膠反演算法[21],通過計(jì)算不同波長之間表觀反射率的統(tǒng)計(jì)關(guān)系,準(zhǔn)確估計(jì)地表反射率,證明MODIS數(shù)據(jù)產(chǎn)品進(jìn)行地表參數(shù)化、氣溶膠光學(xué)厚度反演與地表反射率計(jì)算的可行性[22]??紤]GF-4數(shù)據(jù)的可見光、近紅外波段信息以及MODIS數(shù)據(jù)相近的可見光、近紅外波段信息,基于MODIS數(shù)據(jù)作為先驗(yàn)知識進(jìn)行地表反射率估算。先前研究驗(yàn)證了地表覆蓋類型受歸一化植被指數(shù)(Normalized difference vegetation index,NDVI)的影響,可見光波段(0.67μm和0.47μm)與近紅外、紅外波段(0.86、1.6、2.1、3.75μm)的地表反射率存在一定線性關(guān)系[18]。拓展考慮GF-4數(shù)據(jù),歸一化植被指數(shù)計(jì)算公式為
式中:C0.86和C0.67是近紅外與可見光波段的瑞利散射校正TOA反射率。
R0.67和R0.47為估計(jì)的地表反射率,其分別為
式中:s0.67/0.86和s0.47/0.86分別是0.67μm與0.86μm、0.47μm與0.86μm的回歸方程斜率,y0.67/0.86與y0.47/0.86是回歸方程偏移量,Ψ 是散射角,a0、a1、a2、b0、b1、c0、c1、c2、d0、d1等系數(shù)為最小二乘方法擬合真實(shí)地表反射率確定的回歸系數(shù),對于每種土地覆蓋類型,在MODIS DB的算法基礎(chǔ)上,將其分為三個NDVI組的四個季節(jié)的回歸系數(shù),分別為:0.10 針對TOA表觀反射率計(jì)算的氣溶膠類型輸入部分,地表反射率與氣溶膠的耦合關(guān)系使得在進(jìn)行大氣校正時,氣溶膠的剝離存在一定難度,常用大氣校正算法根據(jù)地理位置與時間選擇一個限定緯度、地表的氣溶膠模式,地表類型基于MODIS土地覆蓋產(chǎn)品(MCD12C1)對70°E~130°E,15°N~55°N地區(qū)進(jìn)行統(tǒng)計(jì)分析。氣溶膠類型包含三個可見光波段的氣溶膠模型,根據(jù)MODIS C6 Dark-Target氣溶膠光學(xué)厚度反演算法設(shè)置,包括弱吸收、中吸收和強(qiáng)吸收三種,其中不對稱因子g和單次散射反照率(SSA)被進(jìn)一步參數(shù)化為不同的氣溶膠類型,經(jīng)過數(shù)值計(jì)算的多項(xiàng)式形式,通過0.55μm的AOD來設(shè)置g、SSA和Angstrom系數(shù)。 (2)氣溶膠光學(xué)厚度反演算法 假設(shè)地表為均勻朗伯面,大氣中分子與氣溶膠散射及氣體吸收水平一致,衛(wèi)星傳感器接收到的輻射由大氣路徑輻射、透過大氣的目標(biāo)地物直接反射輻射、經(jīng)由大氣散射的目標(biāo)地物反射輻射、背景地物散射輻射以及背景地物多次地表散射輻射構(gòu)成。 TOA表觀反射率受到來自氣溶膠的影響與地表反射率的影響??紤]GF-4大氣校正算法,GF-4波段數(shù)據(jù)為可見光與近紅外波段,通過瑞利反射率“ρRay”和氣溶膠反射率“ρa(bǔ)er”計(jì)算大氣路徑反射率,考慮偏振效應(yīng)時的瑞利散射,與散射角及入射方向有關(guān),瑞利光學(xué)厚度(ROD)取決于入射波長和地表高程。在不考慮地表高程和壓強(qiáng)影響時,Liang等[23]提出的瑞利光學(xué)厚度近似公式可滿足精度需求。研究區(qū)域長江中下游地區(qū)高程較小,根據(jù)之前的研究基礎(chǔ),參考瑞利光學(xué)厚度求解的近似公式,氣溶膠散射可參數(shù)化為氣溶膠單次散射反照率、氣溶膠相函數(shù)的函數(shù),其中氣溶膠相位函數(shù)使用了Henyey-Greenstein氣溶膠相位函數(shù)。通過Levenberg-Marquardt迭代算法計(jì)算AOD,即 尋找使得衛(wèi)星觀測的TOA表觀反射率與計(jì)算TOA表觀反射率之間殘差最小的AOD值,在0.47μm和0.67μm之間的價值函數(shù)最小化來獲得最佳AOD,基于此計(jì)算AOD結(jié)果。 (3)計(jì)算地表反射率 基于AOD輸出結(jié)果,將其作為地表反射率查找的已知輸入數(shù)據(jù),對AOD結(jié)果數(shù)據(jù)進(jìn)行空間插值,結(jié)合GF-4 TOA反射率數(shù)據(jù)以及6SV查找表計(jì)算地表反射率。大氣輻射傳輸模型計(jì)算速度較為緩慢,為提高反演速度,使用6SV矢量輻射傳遞模型建立查找表。6SV模型包含三個可見光波段(0.46,0.55,0.64μm)的氣溶膠類型。GF-4是靜止軌道衛(wèi)星,衛(wèi)星角度與成像區(qū)域經(jīng)緯度相關(guān),中國區(qū)域觀測天頂角范圍約0°~70°),方位角范圍約70°~90°。查找表中設(shè)置15個太陽天頂角和觀測天頂角(0°~84°,Δ=6°),16個相對方位角(0°~180°,Δ=12°),高程設(shè)置為0,氣溶膠模式設(shè)置的類型選擇取決于研究區(qū)域的地理位置,通過線性插值計(jì)算不存在的幾何角度。 選擇高空間分辨率、高精度的USGS Landsat-8 SR產(chǎn)品和GF-4 SR產(chǎn)品進(jìn)行比較,兩種SR產(chǎn)品具有綠、紅和藍(lán)三個可見光波段。為了地表反射率SR產(chǎn)品比較的精確性,糾正由不同的光譜響應(yīng)函數(shù)引起的誤差[24]。精準(zhǔn)比較GF-4 PMS產(chǎn)品的反射率,考慮光譜差異并使用光譜匹配因子,光譜匹配因子的計(jì)算公式為 式中:fpms(λ)和fOLI(λ)分別是GF-4 PMS和Landsat-8 OLI的相對光譜響應(yīng)函數(shù)。λ1~λ2是GF-4 PMS的光譜范圍;λ3~λ4是Landsat-8 OLI的光譜范圍。GF-4 PMS和Landsat-8 OLI之間的光譜匹配因子a如表2所示。 表2 可見光波段的光譜匹配因子Table 2 Spectral matching factor in the visible light band Landsat-8 SR數(shù)據(jù)日期為2016年7月30日,GF-4數(shù)據(jù)日期為2016年7月23日,通過裁剪得到相同經(jīng)緯度范圍的數(shù)據(jù),選擇的數(shù)據(jù)具有良好的時空匹配且受云影響較小,考慮Landsat-8 SR產(chǎn)品的空間分辨率為30 m,GF-4 SR產(chǎn)品的空間分辨率為50 m,對GF-4 SR產(chǎn)品和Landat-8 SR產(chǎn)品進(jìn)行時空匹配,將數(shù)據(jù)重新采樣到相同的分辨率,對數(shù)據(jù)進(jìn)行定量分析和驗(yàn)證,分別對三個可見光波段(紅、綠、藍(lán))的地表反射率結(jié)果逐次隨機(jī)選擇1000~10000個像元進(jìn)行對比分析,如圖3所示,圖中每個圓圈代表一個像元點(diǎn),對RMSE進(jìn)行計(jì)算得到結(jié)果分別為0.02、0.01和0.02。與Landsat-8 SR產(chǎn)品相比,基于GF-4的地表反射率結(jié)果,在三個可見光波段的對比中RMSE均小于0.02,具有較好的精度。 圖3 GF-4 SR產(chǎn)品與Landsat-8 SR產(chǎn)品在三個可見光波段紅(a)、綠(b)、藍(lán)(c)的對比結(jié)果Fig.3 Comparison of GF-4 SR product and Landsat-8 SR product in visible light bands of red(a),green(b)and blue(c) 遙感數(shù)據(jù)具有多波段的特性與幾何特性,遙感數(shù)據(jù)處理流程一般包含原始數(shù)據(jù)讀取、數(shù)據(jù)預(yù)處理、數(shù)據(jù)深加工處理及遙感專題信息提取等。基于GPU的遙感計(jì)算流程為:將遙感影像讀入CPU主機(jī)內(nèi)存;CPU端將數(shù)據(jù)拷貝至GPU全局內(nèi)存;CPU端指令啟動kernel內(nèi)核函數(shù),GPU端多線程并行處理;將GPU處理結(jié)果拷貝至CPU主機(jī)內(nèi)存;CPU端將處理結(jié)果輸出為影像。 遙感并行計(jì)算為基于遙感數(shù)據(jù)提取基本遙感參數(shù),結(jié)合知識庫信息等對一定空間、時間尺度的數(shù)據(jù)進(jìn)行計(jì)算。以GF-4地表反射率計(jì)算作為遙感任務(wù)實(shí)例,結(jié)合遙感計(jì)算并行模型,探討GF-4地表反射率計(jì)算的并行加速實(shí)現(xiàn)。 GF-4地表反射率計(jì)算的C++程序包含5個功能步驟,分別為數(shù)據(jù)讀取、云掩膜、估計(jì)地表反射率、AOD計(jì)算、地表反射率計(jì)算,針對各步驟進(jìn)行并行特征的執(zhí)行時間與數(shù)據(jù)I/O分析。數(shù)據(jù)讀取步驟為讀取GF-4原始影響數(shù)據(jù)信息;云掩膜步驟中逐像元計(jì)算3×3窗口的絕對標(biāo)準(zhǔn)差,以識別是否是云像元;地表反射率估計(jì)步驟包括瑞利校正計(jì)算、NDVI計(jì)算、基于地表類型與NDVI值計(jì)算0.67μm和0.47μm波段的地表反射率等;AOD計(jì)算步驟實(shí)現(xiàn)TOA表觀反射率計(jì)算、Levenberg-Marquardt最優(yōu)估計(jì)等功能,得到空間分辨率為1 km的AOD結(jié)果產(chǎn)品;地表反射率計(jì)算步驟實(shí)現(xiàn)AOD結(jié)果插值、基于查找表計(jì)算等,得到空間分辨率為50 m的地表反射率產(chǎn)品。 計(jì)算環(huán)境為Intel(R)Xeon E5-1650 at 3.5GHz Workstation工作站系統(tǒng),測試數(shù)據(jù)為2016年7月23日的GF-4 PMS數(shù)據(jù)“GF4PMSE111.3N28.820160723L1A0000122970”。統(tǒng)計(jì)5次測試數(shù)據(jù)執(zhí)行時間的平均值,得到各步驟的執(zhí)行時間與數(shù)據(jù)I/O分析分別如圖4(a)、(b)所示。圖4(a)中執(zhí)行時間最長的是計(jì)算地表反射率步驟,其執(zhí)行占比為56.4%,數(shù)據(jù)讀取步驟執(zhí)行時間占比為1.8%,云掩膜執(zhí)行步驟的時間占比為4.5%,估計(jì)地表反射率的執(zhí)行時間占比為12.6%,AOD計(jì)算步驟執(zhí)行時間占比為24.7%。圖4(b)中云掩膜、估計(jì)地表反射率(SR)步驟的計(jì)算占比高,對其進(jìn)行并行優(yōu)化;計(jì)算AOD、計(jì)算SR步驟的執(zhí)行時間長且屬于計(jì)算密集型步驟,需要進(jìn)行算法并行設(shè)計(jì)及優(yōu)化。對于數(shù)據(jù)讀取步驟,其數(shù)據(jù)I/O占比極高,對其進(jìn)行串行執(zhí)行不做具體探討。 圖4 GF-4計(jì)算各步驟執(zhí)行時間(a)及數(shù)據(jù)I/O情況(b)Fig.4 Runtime(a)and I/O(b)of GF-4 calculation steps 基于GF-4地表反射率計(jì)算流程各步驟執(zhí)行時間、數(shù)據(jù)I/O的分析,其中云掩膜、估計(jì)SR、計(jì)算AOD、計(jì)算SR等步驟基于GPU進(jìn)行并行優(yōu)化。 考慮遙感計(jì)算的空間域并行分析的三個主要類別為基于點(diǎn)或像元的計(jì)算、局部計(jì)算以及非局部或不規(guī)則計(jì)算等,AOD反演的可并行步驟細(xì)粒度計(jì)算特征及其內(nèi)核映射方式如表3所示。 表3 GF-4可并行步驟內(nèi)核映射方式Table 3 GF-4 parallel step kernel mapping method 空間域分解依據(jù)反演各步驟的輸入數(shù)據(jù),選擇基于單個像元、鄰域或不規(guī)則區(qū)域的計(jì)算。其中云掩膜步驟,算法參考基于暗像元的方法,每個像元的3×3窗口進(jìn)行絕對標(biāo)準(zhǔn)差計(jì)算,屬于局部計(jì)算的方式且其計(jì)算單位為逐像元方式;估計(jì)SR步驟包括瑞利校正計(jì)算、NDVI計(jì)算、估計(jì)地表反射率等功能,屬于逐像元計(jì)算的方式;AOD計(jì)算步驟為逐像元的計(jì)算TOA表觀反射率并進(jìn)行迭代計(jì)算得到AOD結(jié)果,屬于點(diǎn)計(jì)算的方式;計(jì)算SR步驟為逐像元基于查找表進(jìn)行計(jì)算等。基于GPU的并行計(jì)算設(shè)計(jì)和實(shí)現(xiàn),將單個像元的所有計(jì)算分配到對應(yīng)的一個GPU線程。 對于可并行步驟,影像數(shù)據(jù)采用一維數(shù)組存儲,通過全局內(nèi)存實(shí)現(xiàn)合并訪問,所有線程訪問連續(xù)對齊的內(nèi)存塊,對全局內(nèi)存的連續(xù)對齊訪問,能夠基于線程束的方式將多個線程的訪問地址合并,從而減少內(nèi)存的獲取次數(shù),提高吞吐量。 針對估計(jì)SR、AOD計(jì)算等兩個計(jì)算內(nèi)核的步驟,在計(jì)算時會將部分結(jié)果存儲于全局內(nèi)存,后續(xù)內(nèi)核計(jì)算的時候可以調(diào)用,從而減少了總線PCIe(Peripheral component interface express)的CPU-GPU數(shù)據(jù)傳輸。 對于云掩膜步驟的鄰域計(jì)算,像元計(jì)算需要訪問鄰近像元值,全局內(nèi)存的訪問延遲為400~600 cycles,而共享內(nèi)存同一線程塊的所有線程都可對進(jìn)行訪問并讀寫操作,其訪問速度快于全局內(nèi)存,因此將重復(fù)訪問的數(shù)據(jù)存儲于共享內(nèi)存中。云掩膜為逐像元基于3×3滑動窗口計(jì)算絕對標(biāo)準(zhǔn)差,當(dāng)線程塊包含M×N個線程時,其所需訪問的數(shù)據(jù)包含(M+2)×(N+2)個像元,頻繁的全局內(nèi)存訪問降低計(jì)算效率,采用數(shù)據(jù)復(fù)制策略,利用共享內(nèi)存存儲每個線程塊所需的(M+2)×(N+2)像元。 基于GPU并行加速的地表反射率計(jì)算,計(jì)算環(huán)境包括CPU與GPU配置如表4所示。 表4 CPU-GPU計(jì)算環(huán)境Table 4 CPU-GPU computing environment 選擇2016年7月23日的GF-4原始數(shù)據(jù),其像元數(shù)為10240×10240個。對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行裁剪,分別獲得 1000×1000、2560×2560、5120×2560、5120×5120、10240×5120、10240×10240 六組不同大小的遙感數(shù)據(jù),基于六組數(shù)據(jù)對反演算法進(jìn)行實(shí)驗(yàn)與分析。 考慮AOD反演流程中可并行處理步驟與串行處理步驟,基于GPU并行加速實(shí)現(xiàn)完整的AOD反演執(zhí)行流程如圖5所示。 圖5 GPU-CPU執(zhí)行步驟情況Fig.5 GPU-CPU performance steps 主要步驟包括從遙感影像數(shù)據(jù)存儲設(shè)備讀取MODIS數(shù)據(jù)至CPU主機(jī)內(nèi)存;CPU端執(zhí)行AOD反演串行步驟,同時初始化GPU變量,開辟GPU端內(nèi)存;遙感數(shù)據(jù)從CPU內(nèi)存拷貝至GPU端全局內(nèi)存;定義GPU端的線程組織;GPU設(shè)備啟動線程執(zhí)行計(jì)算內(nèi)核;將存儲于GPU全局內(nèi)存的計(jì)算結(jié)果拷貝至CPU端內(nèi)存;CPU端結(jié)果數(shù)據(jù)寫入輸出文件并輸出至存儲設(shè)備。對于估計(jì)SR、計(jì)算AOD等包含多個計(jì)算內(nèi)核的步驟,重復(fù)中間步驟,針對不同計(jì)算內(nèi)核進(jìn)行對應(yīng)數(shù)據(jù)準(zhǔn)備和拷貝,啟動計(jì)算內(nèi)核并完成計(jì)算過程;輸入和輸出圖像步驟,數(shù)據(jù)存儲在GPU全局內(nèi)存。 基于GPU的AOD反演算法,從GPU線程、寄存器兩個方面進(jìn)行性能分析并優(yōu)化。 (1)GPU線程 以計(jì)算SR步驟為例,研究GPU線程組織即線程塊與線程網(wǎng)格的設(shè)置對計(jì)算性能的影響,選取最佳的線程設(shè)置,線程塊設(shè)置與對應(yīng)數(shù)據(jù)執(zhí)行時間如圖6所示。 圖6 各組影像基于不同線程塊設(shè)置的執(zhí)行時間Fig.6 Each group of images is based on the runtime set by different thread blocks 計(jì)算環(huán)境的Tesla K40 GPU上每個線程塊最大線程數(shù)為256(每個線程使用編譯器默認(rèn)的114個寄存器),將GPU線程塊設(shè)置為2維,在1×1、2×2、4×4、8×8和16×16線程塊上執(zhí)行6組不同大小的影像數(shù)據(jù)計(jì)算時,線程塊8×8時各組遙感影像獲得最佳計(jì)算性能,8×8為最優(yōu)線程設(shè)置。 (2)寄存器使用 設(shè)置最優(yōu)線程塊8×8,調(diào)用nvcc使得線程寄存器數(shù)量在50~255之間變動,得到相對性能如圖7所示。 圖7 各組影像基于不同寄存器設(shè)置的執(zhí)行時間Fig.7 Each group of images is based on the runtime set by different register 編譯器默認(rèn)每個線程使用114個寄存器,當(dāng)設(shè)置寄存器數(shù)量大于114時,各組遙感數(shù)據(jù)執(zhí)行性能隨寄存器數(shù)量的增加而呈現(xiàn)下降趨勢;寄存器數(shù)量小于114時,除1000×1000大小的數(shù)據(jù)相對性能隨寄存器增加而增加,其余大小數(shù)據(jù)相對性能隨寄存器增加呈現(xiàn)先減后增的趨勢。 減少每個線程的寄存器數(shù)量可允許更多并行執(zhí)行的線程。如將每個線程使用的寄存器數(shù)量減少至57寄存器/線程,每個線程塊可以設(shè)置為32×32線程,增加并行性但部分?jǐn)?shù)據(jù)需要從比寄存器有更長延遲訪問的存儲器讀取,相比最優(yōu)8×8線程配置性能降低30%~40%,因此選擇不手動設(shè)置每個線程的最大寄存器數(shù)目,使用編譯器默認(rèn)的114寄存器。 對6組不同大小影像數(shù)據(jù)進(jìn)行了完整的地表反射率計(jì)算,其中串行執(zhí)行的數(shù)據(jù)讀取步驟在CPU端實(shí)現(xiàn),使用GNU編譯器gcc和編譯優(yōu)化選項(xiàng)“-O2”?;贕PU的并行算法通過CUDA-C實(shí)現(xiàn)。為保證遙感反演的精度,未使用“-use_fast_math”等編譯選項(xiàng)。CPU串行執(zhí)行和GPU并行加速執(zhí)行的運(yùn)行結(jié)果如表5所示。六組影像基于CPU串行執(zhí)行與GPU加速執(zhí)行的執(zhí)行時間比較如圖8所示。 表5 各組影像分別基于CPU與GPU的執(zhí)行時間與加速比Table 5 Each group of images based on the runtime and speed-up ratio of CPU and GPU 圖8 各組影像的基于CPU與GPU的執(zhí)行時間Fig.8 Each group of images based on the runtime of CPU and GPU GPU總執(zhí)行時間包括GPU驅(qū)動程序啟動、數(shù)據(jù)輸入、主機(jī)到設(shè)備的數(shù)據(jù)傳輸、GPU計(jì)算、從設(shè)備到主機(jī)的數(shù)據(jù)傳輸以及數(shù)據(jù)輸出的總和。CPU順序執(zhí)行僅包括數(shù)據(jù)輸入、計(jì)算以及數(shù)據(jù)輸出,沒有其他數(shù)據(jù)傳輸與驅(qū)動啟動。由圖8可知相比順序執(zhí)行,GPU端計(jì)算時長與總時長大幅縮短。 針對加速比(Speedup)對性能提升進(jìn)行分析,其中加速比是同一個任務(wù)在單處理器系統(tǒng)和并行處理器系統(tǒng)中運(yùn)行消耗的時間的比值,用來衡量并行系統(tǒng)或程序并行化的性能和效果,加速比計(jì)算公式為 式中:T1指順序執(zhí)行的時間,Tp為并行算法執(zhí)行時間。GPU端的計(jì)算加速比為計(jì)算時長與順序執(zhí)行時長的比值,總加速比為基于GPU計(jì)算的總時長包括了CPU-GPU之間數(shù)據(jù)傳輸與順序執(zhí)行時長的比值。GPU端的總加速比與計(jì)算加速比結(jié)果如圖9所示。 圖9 各組影像的基于CPU與GPU的加速比Fig.9 Each group of images based on the speedup of GPU all and calculation 對于六組不同大小的遙感數(shù)據(jù),隨著影像數(shù)據(jù)的增大,基于GPU并行算法的計(jì)算加速比可達(dá)到49.8。考慮數(shù)據(jù)I/O時,總執(zhí)行時間隨影像像元數(shù)的增多而增大,影像的平均總加速比為31.0。總加速比隨影像增大而增大,當(dāng)影像計(jì)算規(guī)模增大時,GPU啟動、CPU和GPU端的數(shù)據(jù)傳輸?shù)葧r間開銷在總執(zhí)行時間中的占比降低,隨著影像規(guī)模增大到一定程度,額外的時間開銷可忽略,此時GPU遙感反演并行算法的總加速比趨于穩(wěn)定。當(dāng)影像范圍較小如共有1000×1000像元數(shù)時,額外開銷占比過大,此時GPU計(jì)算的加速比最低。 考慮遙感反演流程關(guān)鍵步驟的執(zhí)行時間與加速比情況,對10240×10240像元數(shù)的GF-4數(shù)據(jù)進(jìn)行如表6所示。 表6 各步驟分別基于CPU與GPU的執(zhí)行時間與加速比Table 6 Each steps based on the runtime and speed-up ratio of CPU and GPU 分析GF-4大氣校正算法可并行步驟的加速比,云掩膜、估計(jì)SR、AOD計(jì)算、計(jì)算SR等步驟分別獲得了28.7、45.0、60.7、94.6的計(jì)算加速比,各步驟的平均加速比為57.3,均取得較高性能提升。 功耗是遙感數(shù)據(jù)反演計(jì)算時要重點(diǎn)考慮的指標(biāo),通常GPU具有極高的能耗而不適于遙感在軌處理和分析。采用功耗測量儀Christ CLM1000 Professional(Plus)對應(yīng)用運(yùn)行時的功率進(jìn)行采樣測量如表7所示,選擇10240×10240的一景GF-4 PMS遙感影像進(jìn)行地表反射率計(jì)算。 表7 不同計(jì)算環(huán)境能耗情況Table 7 Energy consumption of different computing environments 表7中,CPU多核執(zhí)行在1、2、4、8、16個線程時的最大記錄功率分別為34.9、55.1、66.5、93.4、137.7 W,當(dāng)服務(wù)更多線程時,運(yùn)行時間將大大減少。GPU的平均功耗約為101.3 W,其范圍分別相當(dāng)于CPU上的八個線程版本,并未達(dá)到其峰值功率220 W。對于所有測試,在統(tǒng)計(jì)信息中都排除了CPU主機(jī)端的功耗,多核與GPU加速的該部分功耗相等,而GPU閑置功耗僅存在于GPU節(jié)點(diǎn)中。GPU執(zhí)行的平均功耗為80 W,接近于8線程多核的功耗開銷。能耗基于功耗的運(yùn)行時間積分,對功耗逐秒采樣累加得到近似的執(zhí)行能耗,如圖10所示。 圖10 不同計(jì)算環(huán)境能耗情況Fig.10 Energy consumption of different computing environments GPU并行執(zhí)行的1、2、4、8、16線程時的能耗分別為67.7、59.9、47.2、41.4、39.1 kJ,而GPU并行執(zhí)行的AOD反演模型計(jì)算因執(zhí)行時間較短,總能耗僅為6.4 kJ,僅占能耗最低的8線程多核并行的15.5%。 針對GF-4衛(wèi)星實(shí)現(xiàn)高效率大氣校正、快速得到地表反射率產(chǎn)品的需求,對GF-4大氣校正并行算法進(jìn)行研究,大氣校正算法基于輻射傳輸模型,在MODIS DT、DB算法基礎(chǔ)上考慮地表參數(shù)化與氣溶膠參數(shù)等,對最優(yōu)AOD進(jìn)行計(jì)算并作為6SV查找表輸入得到地表反射率產(chǎn)品。針對反演流程的可并行步驟,基于CUDA-C完成內(nèi)核的設(shè)計(jì)與實(shí)現(xiàn),針對線程組織、寄存器使用等進(jìn)行了分析與優(yōu)化,詳細(xì)分析了GPU并行加速的結(jié)果精度、計(jì)算性能、能耗等問題。結(jié)果表明基于GPU加速的地表反射率計(jì)算結(jié)果在可見光波段的典型地物類型對比中精度高,在執(zhí)行性能與計(jì)算能耗上顯示出優(yōu)勢,單景實(shí)驗(yàn)數(shù)據(jù)取得57.3的加速比,總體能耗僅占CPU多核并行的15.5%。GF-4地表反射率并行算法,產(chǎn)品取得較高精度,算法具有較好加速效果,后續(xù)工作還需進(jìn)一步針對GF-4等國產(chǎn)衛(wèi)星的其他專題產(chǎn)品應(yīng)用進(jìn)行相關(guān)并行優(yōu)化。1.3 GF-4地表反射率產(chǎn)品精度驗(yàn)證
2 并行計(jì)算分析與設(shè)計(jì)
2.1 GF-4計(jì)算流程并行特征
2.2 GF-4算法并行設(shè)計(jì)
3 算法實(shí)現(xiàn)與分析
3.1 AOD反演并行算法實(shí)現(xiàn)
3.2 性能分析與優(yōu)化
3.3 性能比較
3.4 GPU功耗與能耗
4 結(jié)論