彭檢貴+張良+李維良+李林華+周佳雯



摘要:介紹了桌面遙感影像處理系統對高性能計算的需求及其現狀,針對多核CPU與GPU這兩種當前單機系統中最重要計算資源的結構與功能差異,總結不同并行架構所具有的運算特點及適用范圍,以遙感影像多項式幾何校正為例,對比分析了同時代多核CPU與GPU在進行高計算密集度且運算邏輯較簡單算法的高性能處理之間的性能差異,探討了并行處理架構選擇的實踐準則。
關鍵詞:并行架構;遙感圖像處理系統;多核CPU;CUDA
中圖分類號:TP317.4
文獻標識碼:A
文章編號:16727800(2017)004020104
0引言
面向桌面級應用的遙感影像高性能計算,從本質上講,是充分利用現有單機系統所提供的計算資源來提高遙感影像處理運算效率的一種有效途徑。多核CPU與GPU作為現有計算機中配置的兩種最常見的并行處理器,構成了當前單機系統上能夠被開發的最主要的計算資源,也勢必會在桌面遙感影像處理系統的高性能處理過程中發揮重要作用。目前,國內外有不少專家學者都對此做了大量工作。Shahbahrami A等[1]從任務并行和數據并行兩個角度研究了基于多核CPU的GLCM影像紋理特征提取;Fitzgerald D F等[2]研究與探討了基于多核CPU的遙感影像分割算法實現,提出了一種影像數據子圖塊不匹配的應對策略;Paz Abel等[3]研究對比了集群環境下與GPU環境下的高光譜遙感影像目標與異常檢測;Antonio Plaza等[4]對比研究了Beowulf集群、可編程門陣列(FPGA)以及GPU(CUDA)架構下高光譜影像像素純度指數的計算;Fan Zhang等[5]對基于GPU的復雜場景合成孔徑信號模擬方法進行了深入研究。 本文針對桌面遙感影像處理系統高性能計算中所使用的多核CPU與GPU這兩種主要并行架構,通過理論分析與對照實驗相結合的方法,對各自的結構與功能特點進行深入研究,總結不同并行架構之間不同的運算特點及適用范圍,同時從算法運算邏輯復雜度與數據存儲復雜度對各關鍵算法進行對比分析與實驗,提出一系列并行架構選擇的實踐準則。最后,以遙感影像多項式幾何校正為例,對比分析同時代多核CPU與GPU在進行高計算密集度且運算邏輯較簡單算法的高性能處理之間的性能差異,對并行處理架構選擇的實踐準則作進一步說明。
1并行處理架構對比分析與選擇
1.1多核CPU與GPU在結構與功能上的不同
多核CPU與GPU作為桌面遙感影像處理系統所使用的兩種主要并行架構,具有不同的結構與功能特性[6]。如圖1所示,CPU的設計目標是使執行單元以很低延遲獲取數據和指令,能夠適應各種不同的運算環境,擅長復雜邏輯運算,因此將大量晶體管用于復雜控制邏輯單元及大容量的緩存單元;而GPU的設計目標是使大量線程實現面向吞吐量的數據并行計算,因此大量晶體管被用于執行單元來運行更多相對簡單的執行線程,而邏輯控制和緩存單元則相對較少[8]。 正是由于CPU與GPU這兩種處理器設計結構上的差異,導致兩者在處理功能上也有明顯不同。從功能上講,CPU對延遲更敏感,而GPU則側重于提高整體的數據吞吐量。多核CPU較GPU而言盡管在處理速度上有很大劣勢,但是由于復雜的控制邏輯、分支預測和大量緩存等關鍵技術的應用,多核CPU對復雜運算的并行化支持力度更大;GPU是特地為支持計算密集、并行度高的運算而設計,但是由于緩存單元與邏輯控制單元相對較少,對于邏輯復雜、并行度不大的運算,GPU并不能很好地支持其并行化。
1.2高性能計算中并行架構選擇準則
GPU能夠處理大量數據的通用并行計算問題,但并不意味著所有遙感影像處理算法的高性能計算問題都能利用GPU技術輕易實現。因此,理清GPU在各類算法實現中的優勢與缺陷,對桌面遙感影像處理系統的高性能計算非常重要。面向桌面應用的遙感影像高性能計算,首先應根據自身特點從全局上對各關鍵算法進行分類,綜合把握,根據算法自身特點選擇最合適的并行處理架構。根據多核CPU與GPU兩者之間的硬件結構與程序運行的特點,本文提出3點并行架構選擇的實踐準則:①待并行化處理的算法在運算過程中,結果影像各像素的確定過程是否彼此獨立,互不影響,即結果影像各像素值在確定過程中是否需要獲取鄰近像素或者像素集合的基本信息;②待并行化處理的算法在運算時,結果影像中是否逐漸形成多個具有某種邏輯關聯的像素集合,且后續運算過程需要獲取這些集合中像素的光譜信息或相關空間統計信息,即同一遍渲染過程使用前面像素集合的計算結果;③待并行化處理的算法在運算過程中是否會頻繁或不規律地出現內存與外設(如磁盤文件)之間影像數據或算法實現過程中相關輔助數據的轉存與交換現象,即在整個運算過程中,處理器所需要的影像數據或者相關輔助數據是否一直位于內存中,而無需從相關磁盤文件中調度所需數據。 利用多核CPU與GPU兩種架構提升桌面遙感影像處理系統的運行效率,需要根據這兩種并行處理器的功能特性,結合算法本身的運算邏輯與實現方式,對需要進行并行化處理的遙感影像處理算法進行類別劃分,即適合利用多核CPU進行高性能處理的算法、適合利用GPU進行高性能處理的算法。根據以上3個準則,在桌面遙感影像處理軟件內置的主要算法中,同時滿足以上3個條件的算法一般具有邏輯相對簡單、并行度較大的特點,包含了多數較為常見的影像處理算法,如:影像幾何校正、影像監督分類、影像卷積運算等,通常非常適合利用GPU進行算法加速處理,本文稱這類算法為“簡單算法”。而不能完全滿足以上3個條件算法的高性能處理采用GPU一般不易實現。具體而言,在CUDA架構下,一般采用大量線程來執行計算密集、并行度高的指令,在桌面遙感影像處理系統高性能計算中,通常一個線程會對應一個像素的計算處理。當算法不滿足條件(1)或(2),即運算邏輯較為復雜,算法在運行過程中目標影像會形成若干具有內在邏輯的像素集合,且后續運算需要獲取同類集合中像素的光譜信息或相關空間信息時,CUDA程序會變得較難編寫,即使勉強編寫出來,也會嚴重影響CUDA計算性能的發揮,有違CUDA設備的設計初衷。此類算法的代表有KMeans非監督分類、Isodata非監督分類、多尺度分割等特征級影像處理方法。CUDA設備在計算過程中的直接數據來源為顯存,顯存與磁盤文件之間數據交換、轉存的實現遠比CPU內存與磁盤文件之間數據交換、轉存的實現復雜。當算法無法滿足條件(3)時,即一個算法在運行過程中,需要頻繁地或者不規律地將顯存中的數據交換到磁盤文件或從磁盤文件中調度相關數據進入顯存,編寫CUDA程序也會變得困難,此類算法的代表為遙感影像多尺度分割算法。當算法無法同時滿足以上3個條件,一般而言,利用CUDA技術難以進行其高性能計算工作,然而算法在實現過程中確實能夠做到一定程度的并行執行,在這種情況之下,可以考慮采用多核CPU進行處理,本文稱這類算法為復雜算法。 一般而言,簡單算法易于利用CUDA進行算法加速處理,當然,需要注意的是,簡單算法同樣也可比較容易地利用多核CPU進行并行化處理。從理論上講,由于GPU在處理簡單算法運算時的速度一般高于同時代的多核CPU,因此,推薦使用GPU,下文將對此問題進行對比實驗,以實驗驗證來提升理論分析的嚴密性。〖HJ*3〗 無論復雜算法還是簡單算法,在高性能處理過程中,鑒于所選用的并行架構與遙感影像本身的特點,其都會面臨著一系列待解決的關鍵問題。復雜算法在不滿足條件(1)和(2)時,可能會出現各個數據分塊在并行處理完畢之后接邊不能很好地吻合而無法直接合并的問題;復雜算法在不滿足條件(3)時,在影像數據量較大的情況下,可能會出現影像數據子區的多線程讀寫問題。簡單算法實現起來相比于復雜算法較為容易,一般不存在數據分塊之間的接邊問題,大數據量影像的處理問題一般也較易解決,簡單算法高性能處理問題的關鍵在于如何利用CUDA設備特殊的結構與功能特性進行算法優化,其中,影像數據以及相關輔助數據的存儲與訪問策略優化顯得尤為重要。 當然,需要指出的是,本文所提出的一系列原則只是針對多數常用遙感影像處理算法在選擇高性能計算架構的問題而言,可能無法涵蓋所有處理算法,這些有待于后續的深入研究。
2運算邏輯較簡單情況下并行架構對比分析
在桌面遙感影像處理軟件中,當某個算法能夠同時滿足上文提到的3個并行架構選擇的實踐準則時,一般而言,算法便于利用GPU進行并行化處理,當然,也同樣便于在多核CPU架構下進行高性能計算。從上述分析可知,同時代GPU運算速度一般快于多核CPU,因此為達到遙感影像高性能計算運算效率的最大化,優先采用GPU進行并行化實現。為了證明這一點,本節以遙感影像多項式幾何校正為例,對比利用GPU與利用多核CPU進行簡單算法高性能計算的效率提升程度。 本節研究的重點是在滿足較輕易實現算法高性能計算條件下,對比同時代多核CPU與GPU的計算速度差異,因此對于利用多核CPU或者GPU實現遙感影像高性能計算的詳細過程和所面臨的關鍵問題及解決方法不作討論。
2.1多項式幾何校正算法
遙感影像幾何校正是以某種預先確定的數學模型來校正成像過程中所造成的各種幾何畸變,產生一幅符合某種地圖投影或圖形表達要求的新影像。校正前后的影像空間分別為畸變空間和校正空間。
遙感影像幾何校正首先要確定從畸變空間到校正空間的變換函數。基于多項式變換的校正方法是實踐中經常使用的一種方法,原理直觀,對各種類型的傳感器有良好適用性。多項式變換校正法的基本思想是:使用多項式來擬合圖像校正過程中從畸變空間到校正空間的正向變換函數,然后用向后映射重采樣方法(又稱間接法)來完成輸入圖像到輸出圖像的幾何校正,如圖2所示。假設正向變換函數為:
本文以完全二次多項式為例來討論算法實現,式(5)和(6)、式(7)和(8)分別表示正向和逆向變換函數。正向變換函數中的參數,對于系統幾何校正而言,是利用已知的或可預測的參數,如衛星軌道參數、傳感器姿態參數等來直接構成,而對于幾何校正,則需利用控制點數據來求取[8]。本文實驗所采用的正向變換函數均為根據利用控制點數據來求取擬合得到的完全二次多項式。
算法有像素坐標變換與像素亮度的重采樣兩個基本環節,校正的主要處理過程如圖3所示。首先,根據式(5)和式(6)求出輸出影像的范圍,如圖2右邊校正空間中實線內的范圍,一般通過計算圖像的全局邊界來加以確定;由于校正算法采用向后映射方式進行,因此第二步必須求取從校正空間到畸變空間的逆向多項式變換函數,如式(7)和式(8),逆變換的參數是利用輸入和輸出圖像上的若干個同名像點對,按最小二乘原理求解;第三步是幾何位置變換,將前面確定的輸出圖像范圍內的像素坐標(u,v)逐個代入逆變換函數得到其在輸入影像中的對應位置;第四步則是根據輸入影像位置(x,y)周圍像素的灰度值,按某種重采樣算法得到校正影像(u,v)處的灰度值。
常用的重采樣算法包括雙三次卷積、雙線性插值和最鄰近像素法等。本文以雙線性插值算法為例加以介紹,如果選擇一個坐標系統使得4個已知點的坐標分別為(0,0),(0,1),(1,0),(1,1),那么插值公式可以表示為:p(x,y)=p(0,0)(1-x)(1-y)+p(1,0)x(1-y)+p(0,1)(1-y)y+p(1,1)xy(9)
遙感影像幾何校正過程中,第一步求取輸出圖像的范圍(只需要邊界像素坐標參與計算)和第二步用粗網格點求取逆變換函數的參數,相對于后兩個步驟而言計算量很小,幾乎可以忽略不計,并行化的重點是在第三步幾何位置變換和第四步灰度值重采樣上,將這兩個步驟統稱為重采樣。
2.2實驗結果與分析
根據以上研究思路,本節以遙感影像多項式幾何校正為例,重點在于對比同時代多核CPU與CUDA設備在同時滿足能夠較輕易實現算法并行處理情況下的計算速度差異。本次實驗所使用的硬件實驗環境為:NVIDIA GEFORCE GT 425M顯卡,該顯卡所使用的GPU內置兩個SM,每個SM擁有48個SP,共96個SP,顯存容量為1G;Intel CORE i5 CPU,該CPU擁有兩個核心;內存容量為2G。本次實驗軟件實驗環境為:Windows 7操作系統及Vs2010編譯器。
2.2.1幾何校正結果對比
實驗首先對比多核CPU架構、CUDA架構下幾何校正高性能計算與結果。實驗數據采用兩幅有重疊地區的GeoEye影像,尺寸均為500*500,兩幅影像的空間分辨率不同。為便于實驗觀察,以低空間分辨率影像為參考影像,高空間分辨率影像為畸變影像,如圖4所示。
幾何校正結果如圖5所示,其中圖5(a)為多核CPU架構下幾何校正高性能計算結果,圖5(b)為CUDA架構下幾何校正高性能計算結果。在結果影像中,畸變影像被校正到參考影像空間后所對應的部分為白色框所劃定的影像塊。
2.2.2幾何校正計算效率對比 接下來,對比多核CPU架構下幾何校正高性能計算與CUDA架構下幾何校正高性能計算的計算效率。實驗數據與2.1節中相同。實驗分四組進行,其中第一組為多核CPU架構下單線程程序運行時間,第二組為多核CPU架構下兩線程程序運行時間,第三組為多核CPU架構下四線程程序運行時間,最后一組為CUDA架構下幾何校正高性能計算的計算時間,實驗結果如表1所示。
由表1可知,遙感影像多項式幾何校正作為可在多核CPU與CUDA架構下同時實現高性能計算的運算邏輯并不復雜的代表性算法,多核CPU架構下的高性能計算方式可以在一定程度上提升其運算效率,這一點可以從第1列與第2列、第1列與第3列的數據對比中得出。然而,對比第1列與第4列的結果數據可知,同時代的CUDA設備對于算法的運行效率提升更為顯著。因此,在桌面遙感影像處理系統的高性能計算過程中,針對運算邏輯和數〖LL〗據存儲方式均較為簡單的算法,一般推薦在CUDA架構下進行高性能計算,以達到程序運算效率提升的最大化。
3結語
本文主要介紹在進行桌面遙感影像處理系統高性能計算時針對算法的內在特點所面臨的并行架構選擇問題。深入研究多核CPU與GPU這兩種當前單機系統中最重要計算資源的結構與功能差異,總結不同并行架構所具有的運算特點及適用范圍。從全局上統籌分析各關鍵算法運算邏輯復雜度與數據存儲復雜度,提出了一系列針對具體算法選擇合適并行處理架構的實踐準則。同時,以多項式幾何校正為例,驗證了在進行簡單算法的高性能計算時優先采用GPU的觀點,對實踐準則進行了補充闡述。 當然,本文所提出的一系列原則只是針對多數常用遙感影像處理算法在選擇高性能計算架構的問題而言,可能無法涵蓋所有處理算法,這些有待于后續深入研究。
參考文獻:
[1]ASADOLLAH SHAHBAHRAMI,TUAN ANHPHAM,KOEN BERTELS.Parallel implementation of gray level cooccurrence matrices and haralick texture features on cell architecture[J].Journal of Supercomputing,2012,59(3):14551477.
[2]FITZGERALD D F,WILLS D S,WILLS L M.Realtime, parallel segmentation of highresolution images on multicore platforms[J].Journal of RealTime Image Processing,2014.
[3]PAZ ABEL,PLAZA ANTONIO.Clusters versus GPUs for parallel target and anomaly detection in hyperspectral images[J].EURASIP Journal on Advances in Signal Processing,2010.
[4]ANTONIO PLAZA,JAVIER PLAZA,HUGO VEGAS.Improving the performance of hyperspectral image and signal processing algorithms using parallel,distributed and specialized hardwarebased systems[J].Journal of Signal Processing Systems,2010,61(3):293315.
[5]FAN ZHANG,ZHENGLI,BINGNANWANG,et al.Hybrid generalpurpose computation on GPU (GPGPU) and computer graphics synthetic aperture radar simulation for complex scenes[J].International Journal of Physical Sciences,2012,7(8):12241234.
[6]HWU W.Rethinking computer architecture for throughput computing[C].Keynote of 2013 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS),Greece,2013:129.
[7]周海芳.遙感圖像并行處理算法的研究與應用[D].長沙:國防科學技術大學,2003.
[8]陳國良.并行計算——結構·算法·編程[M].第3版.北京:高等教育出版社,2011.
(責任編輯:孫娟)