田衛(wèi)明 劉富強(qiáng) 謝 鑫 王長軍 王 健 鄧云開,4
(1.北京理工大學(xué)信息與電子學(xué)院雷達(dá)技術(shù)研究所,北京 100081;2.北京中建建筑科學(xué)研究院有限公司,北京 100076;3.北京理工大學(xué)重慶創(chuàng)新中心,重慶 401135;4.北京理工大學(xué)衛(wèi)星導(dǎo)航電子信息技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,北京 100081)
SAR(Synthetic Aperture Radar,合成孔徑雷達(dá))因其全天時、全氣候的特點(diǎn),在軍事和民用領(lǐng)域得到了廣泛應(yīng)用[1]。隨著SAR 成像指標(biāo)的提高和回波數(shù)據(jù)量的增加,對SAR 數(shù)據(jù)處理的時效性提出了更高的要求[2]。后向投影成像算法采用逐點(diǎn)計(jì)算以獲取精確的聚焦圖像,能夠適應(yīng)任意運(yùn)動軌跡下的SAR 成像,但其運(yùn)算量大、效率低的缺點(diǎn)嚴(yán)重制約了SAR圖像獲取的時效性[3-4]。
為了提高后向投影成像算法的成像速度,只在算法層面降低后向投影算法的運(yùn)算量并不能滿足SAR 圖像獲取的高效性。因此,DSP(Digital Signal Processing,數(shù)字信號處理器)、FPGA(Field Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)和GPU(Graphics Processing Unit,圖像處理單元)等處理器被應(yīng)用于SAR 成像算法的優(yōu)化中。由于FPGA 和DSP 在并行系統(tǒng)中都使用了多塊芯片,導(dǎo)致硬件成本太高、結(jié)構(gòu)復(fù)雜且開發(fā)周期長等問題而漸漸被GPU 所取代。GPU 擁有強(qiáng)大的算力和高帶寬,使得在運(yùn)算量大、邏輯分支簡單、數(shù)據(jù)密度高的并行計(jì)算中具有巨大優(yōu)勢[5-6]。因此GPU 對后向投影成像算法的加速技術(shù)具有很好的工程應(yīng)用前景。
文獻(xiàn)[3]基于像素點(diǎn)并行實(shí)現(xiàn)了后向投影成像算法的優(yōu)化,并避免了內(nèi)存訪問沖突;文獻(xiàn)[4]基于GPU 對反投影結(jié)構(gòu)進(jìn)行優(yōu)化,實(shí)現(xiàn)了不同方位PRT的雷達(dá)數(shù)據(jù)處理的并行,但兩種方法的優(yōu)化速度均受限于像素點(diǎn)數(shù)和方位PRT 的數(shù)量,在像素點(diǎn)或PRT 數(shù)量增加時,算法加速性能將會明顯降低。文獻(xiàn)[7]基于多GPU 計(jì)算節(jié)點(diǎn)進(jìn)一步提高了程序執(zhí)行的并行性;文獻(xiàn)[8]基于GPU 鎖頁主機(jī)內(nèi)存提升了內(nèi)存和顯存之間的數(shù)據(jù)拷貝速度,優(yōu)化了圓跡SAR成像效率,但鎖頁主機(jī)內(nèi)存的使用一定程度上會降低主機(jī)系統(tǒng)的性能,影響成像算法處理效率。
本文以后向投影成像算法作為算法基礎(chǔ),從GPU 異步流并行技術(shù)、共享內(nèi)存、粗細(xì)粒度并行和混合精度運(yùn)算上展開研究,提出了一種基于GPU 后向投影成像算法并行優(yōu)化方案。該方案充分利用GPU 內(nèi)部計(jì)算資源和內(nèi)存資源對后向投影成像算法實(shí)現(xiàn)了并行優(yōu)化,使得SAR 成像處理效率得到明顯提升。該文第二部分介紹了SAR 后向投影成像算法基本原理,并分析了算法流程中各步驟的計(jì)算量。第三部分提出具體的并行優(yōu)化處理方案,從GPU 異步流并行、高效矩陣轉(zhuǎn)置、GPU 粗細(xì)粒度并行優(yōu)化了SAR 后向投影成像算法;提出一種基于混合精度的數(shù)據(jù)處理方法來優(yōu)化相參計(jì)算過程,進(jìn)一步提升了成像處理效率。第四部分基于實(shí)測數(shù)據(jù)驗(yàn)證了所提出的并行優(yōu)化方案的正確性與高效性。
后向投影成像算法是一種典型的時域成像算法,該算法不存在任何近似運(yùn)算,可實(shí)現(xiàn)精準(zhǔn)成像。算法通過對雷達(dá)運(yùn)動過程中獲取的場景回波信號先進(jìn)行距離向脈沖壓縮,實(shí)現(xiàn)距離維的高分辨聚焦,然后沿方位向進(jìn)行多普勒相位補(bǔ)償和相干疊加,實(shí)現(xiàn)方位維高分辨聚焦,以獲取二維高分辨SAR圖像。
圖1 所示為后向投影成像示意圖,其中雷達(dá)起始位置為(X0,Y0,H),雷達(dá)速度為V,成像網(wǎng)格大小為M×N,η1,η,ηn為雷達(dá)平臺運(yùn)行的三個不同方位時刻,P(m,n),P1(m1,n1),P2(m2,n2)為成像場景中的任意三個散射點(diǎn),R(η)為雷達(dá)平臺在η時刻與空間目標(biāo)點(diǎn)P之間的單程距離,表示為R(η,n,m)=其中m,n為成像場景中某像素點(diǎn)的位置坐標(biāo)。
圖1 后向投影幾何模型Fig.1 Backward projection geometric model
SAR 在η時刻對探測區(qū)域中某目標(biāo)點(diǎn)P(m,n)進(jìn)行探測,經(jīng)調(diào)制后的回波信號可表示為:
其中τ為距離維時間,η為方位維時間,A為回波信號幅度,fc為SAR發(fā)射信號載頻。
對SAR 回波信號與時域匹配濾波器h(t)進(jìn)行卷積,可得脈沖壓縮后信號模型如下:
對脈沖壓縮后信號進(jìn)行多普勒相位補(bǔ)償,并對結(jié)果沿著雷達(dá)飛行方向的進(jìn)行相干累加,可得到成像空間中最終圖像[9-11]:
圖2 所示為合成孔徑雷達(dá)后向投影處理流程圖,其分為距離維脈沖壓縮和方位維相參處理兩部分。在距離維度脈沖壓縮過程完成距離維度FT、參考函數(shù)相乘和距離維IFT,在方位維相參計(jì)算過程完成多普勒相位補(bǔ)償和相干累加運(yùn)算。
圖2 后向投影成像處理流程Fig.2 Backward projection imaging processing flow
假設(shè)回波矩陣大小為M×N,其中M為距離維點(diǎn)數(shù),N為方位維點(diǎn)數(shù),設(shè)成像場景大小為P×Q,其中P為場景距離維尺寸,Q為場景方位維尺寸,表1為整個成像處理流程中所包含的運(yùn)算量。
表1 后向投影算法運(yùn)算量Tab.1 Computation of backward projection algorithm
通過以上分析,SAR 后向投影成像算法的運(yùn)算量和回波尺寸與成像場景大小直接相關(guān)。在雷達(dá)回波數(shù)據(jù)一定條件下,如果在后向投影成像的流程中增加濾波和插值等操作或者增大成像場景,都將進(jìn)一步增加算法運(yùn)算量。因此,需要開展SAR 后向投影成像算法的高效處理技術(shù)研究。
GPU 是一種可進(jìn)行高效并行計(jì)算的處理器單元,擁有幾十至幾百個流處理器[12-14]。圖3(a)所示為GPU 內(nèi)部結(jié)構(gòu),每個流處理器包含有大量的整數(shù)計(jì)算單元(INT32)、浮點(diǎn)運(yùn)算單元(FP32)、寄存器(Register)等資源,并在每個時鐘周期執(zhí)行一次整數(shù)或者浮點(diǎn)計(jì)算指令。因此GPU 的計(jì)算峰值能力取決于其內(nèi)部擁有的計(jì)算核心數(shù)量和進(jìn)行協(xié)調(diào)線程資源的調(diào)度單元數(shù)量[15]。圖3(b)為GPU 內(nèi)部線程(Thread)、線程塊(Block)及網(wǎng)格(Grid)的層次結(jié)構(gòu)圖,線程之間彼此獨(dú)立,因此支持同時的并行計(jì)算。GPU 通過調(diào)度單元可實(shí)現(xiàn)線程對運(yùn)算核心的調(diào)度,完成數(shù)據(jù)矩陣的并行處理[16]。因此GPU 適合處理包含數(shù)據(jù)并行的計(jì)算密集型任務(wù),在大規(guī)模計(jì)算問題中能有效提高運(yùn)算處理速度和性能。
圖3 GPU 流處理器結(jié)構(gòu)圖和線程層次結(jié)構(gòu)圖[13]Fig.3 SM structure diagram of GPU and thread hierarchy diagram[13]
針對后向投影成像算法運(yùn)算量大的問題,結(jié)合GPU 的高性能并行處理能力,該文提出了合成孔徑雷達(dá)后向投影成像算法GPU 并行加速處理技術(shù)方案,通過數(shù)據(jù)傳輸和處理并行、矩陣轉(zhuǎn)置加速、線程和線程塊的粗細(xì)粒度并行、混合精度運(yùn)算等技術(shù),實(shí)現(xiàn)了高效處理,后向投影算法的GPU 并行處理流程如圖4所示,其中的關(guān)鍵技術(shù)如下:
圖4 基于GPU的后向投影算法處理流程Fig.4 GPU based backward projection algorithm processing flow
(1)基于異步流并行的數(shù)據(jù)傳輸與脈沖壓縮
針對原始回波數(shù)據(jù)量大導(dǎo)致數(shù)據(jù)傳輸與數(shù)據(jù)處理串行,提出一種基于異步流的數(shù)據(jù)傳輸和脈沖壓縮的異步并行技術(shù),實(shí)現(xiàn)了數(shù)據(jù)傳輸與數(shù)據(jù)處理的異步并行,減少了數(shù)據(jù)傳輸與數(shù)據(jù)處理的耗時。
(2)基于共享內(nèi)存的高效矩陣轉(zhuǎn)置方法
針對已有矩陣轉(zhuǎn)置方法需要借助輔助顯存和效率低的問題,提出一種基于共享內(nèi)存的高效矩陣轉(zhuǎn)置方法,實(shí)現(xiàn)對矩陣的高效轉(zhuǎn)置,減少對全局顯存的占用,可支持更大的原始回波矩陣。
(3)基于雙層粒度的后向投影算法并行處理技術(shù)
針對成像算法反投影過程運(yùn)算量大、運(yùn)算復(fù)雜的問題,提出一種粗細(xì)粒度并行的后向投影計(jì)算優(yōu)化技術(shù),通過線程和線程塊雙層粒度的并行,實(shí)現(xiàn)了粗細(xì)兩層粒度的并行,加速數(shù)據(jù)處理效率。
(4)基于混合精度數(shù)據(jù)處理方法
針對成像算法相參計(jì)算過程中雙精度數(shù)據(jù)處理效率低的問題,提出了基于混合精度的數(shù)據(jù)處理方法,在確保誤差可接受的范圍內(nèi)進(jìn)一步提高了算法效率。
異步流是GPU的一系列異步操作的集合。在同一個流中的異步操作有嚴(yán)格的執(zhí)行順序,而在不同流中的操作在執(zhí)行順序上不受限制。通過創(chuàng)建多個流,將任務(wù)分配到各個流上,處于同一個流內(nèi)的數(shù)據(jù)拷貝與計(jì)算是串行執(zhí)行的,但不同流之間的數(shù)據(jù)拷貝與計(jì)算可以同時執(zhí)行,因此可以有效掩藏數(shù)據(jù)傳輸時間。
因雷達(dá)回波數(shù)據(jù)需要跨平臺由CPU 端傳輸至GPU 端進(jìn)行脈沖壓縮處理,且不同PRT 間的處理彼此獨(dú)立,因此可結(jié)合GPU 異步流并行技術(shù)實(shí)現(xiàn)數(shù)據(jù)傳輸和脈沖壓縮分流并行處理。圖5 為GPU 異步流并行處理示意圖,通過將M個PRT 回波數(shù)據(jù)分成N個異步流并行傳輸,每個流執(zhí)行單個PRT 的數(shù)據(jù)傳輸和脈沖壓縮,多個流實(shí)現(xiàn)PRT 間數(shù)據(jù)傳輸與脈沖壓縮的并行,達(dá)到不同PRT 對應(yīng)距離維數(shù)據(jù)的傳輸與處理重疊,實(shí)現(xiàn)耗時的壓縮。流的數(shù)量由設(shè)備所能支持的最大并發(fā)內(nèi)核數(shù)量和所能調(diào)度的資源決定[12-13]。GPU 異步并行技術(shù)相比CPU/GPU 串行執(zhí)行,流之間的并行優(yōu)化實(shí)現(xiàn)了平臺間數(shù)據(jù)傳輸和脈沖壓縮的處理效率的大幅度提升。
圖5 基于GPU異步流脈沖壓縮的并行實(shí)現(xiàn)Fig.5 Parallel implementation of asynchronous stream pulse compression based on GPU
后向投影算法脈沖壓縮完成后需要對脈沖壓縮結(jié)果進(jìn)行矩陣轉(zhuǎn)置以重新排列數(shù)據(jù),提高方位濾波的數(shù)據(jù)訪問速度?,F(xiàn)有矩陣轉(zhuǎn)置算法主要將原數(shù)據(jù)矩陣按行讀取、按列寫入等大的輔存空間完成矩陣的轉(zhuǎn)置[7,17],該過程過度依賴輔存空間,會產(chǎn)生顯存不足的問題,并且數(shù)據(jù)的非連續(xù)訪存使得數(shù)據(jù)訪存速度慢,導(dǎo)致矩陣轉(zhuǎn)置效率低。
GPU 作為一個集成的高性能組織架構(gòu),其有兩種類型的內(nèi)存,一種是板載內(nèi)存,位于GPU 芯片外面;一種是片上內(nèi)存,位于GPU 芯片內(nèi)部。板載內(nèi)存屬于片外內(nèi)存,具有高延遲和低帶寬的特點(diǎn),如全局內(nèi)存。片上內(nèi)存具有低延遲和高帶寬的特點(diǎn),可以提供比全局內(nèi)存等片外內(nèi)存高得多的帶寬,具有較高的訪問速度,如共享內(nèi)存。此外,共享內(nèi)存允許線程塊內(nèi)所有線程的訪問,使得共享內(nèi)存所存儲數(shù)據(jù)可以被重復(fù)使用,可以大大降低核函數(shù)訪存所需的帶寬,但需要注意線程之間的訪問沖突,避免讀寫競爭帶來的計(jì)算錯誤。
該文提出了基于共享內(nèi)存的高效矩陣轉(zhuǎn)置方法,實(shí)現(xiàn)了大數(shù)據(jù)矩陣的高效轉(zhuǎn)置,其處理原理如下:如圖6,為了更好的適應(yīng)方陣回波數(shù)據(jù)和非方陣回波數(shù)據(jù),提高矩陣轉(zhuǎn)置方法的通用性,該文通過在GPU 端對數(shù)據(jù)矩陣sig 進(jìn)行補(bǔ)零形成方陣,并劃分成若干小方塊矩陣SM(Shared Memory,共享內(nèi)存),通過塊內(nèi)轉(zhuǎn)置與對應(yīng)塊間交換實(shí)現(xiàn)對補(bǔ)零方陣的轉(zhuǎn)置,表2 為矩陣轉(zhuǎn)置的算法實(shí)現(xiàn),其中block-Idx.x、blockIdx.y、threadIdx.x、threadIdx.y為GPU 內(nèi)部線程塊和線程的索引。如圖6(a),在GPU 端按行合并讀取子方陣SM 的行數(shù)據(jù)并寫入共享內(nèi)存中,從共享內(nèi)存中再按列讀取共享內(nèi)存列數(shù)據(jù),并合并寫入原子方陣中可實(shí)現(xiàn)子方陣的轉(zhuǎn)置。如圖6(b),按合并訪問方式將子方陣寫入原顯存空間轉(zhuǎn)置后所對應(yīng)的子方陣中,完成子方陣間數(shù)據(jù)交換,綜上兩步可完成數(shù)據(jù)矩陣的轉(zhuǎn)置。
表2 基于GPU共享內(nèi)存的矩陣轉(zhuǎn)置算法實(shí)現(xiàn)Tab.2 Realization of matrix transpose algorithm based on GPU shared memory
圖6 基于共享內(nèi)存的矩陣轉(zhuǎn)置Fig.6 Shared memory based matrix transpose
在GPU 中,線程塊和其所包含線程可同步執(zhí)行,通過合理分配GPU資源可充分體現(xiàn)GPU的高并行性[18]。文獻(xiàn)[3]是遍歷PRT,核函數(shù)的運(yùn)行次數(shù)受限于PRT 數(shù)量,當(dāng)PRT 數(shù)量增加時,核函數(shù)執(zhí)行次數(shù)也會增加,降低算法處理效率。文獻(xiàn)[7]是遍歷成像空間像素點(diǎn),核函數(shù)的運(yùn)行次數(shù)受限于成像網(wǎng)格中像素點(diǎn)的數(shù)量,當(dāng)成像空間像素點(diǎn)劃分巨大時,核函數(shù)執(zhí)行次數(shù)也會增加,降低算法處理效率。該文提出一種基于粗細(xì)粒度并行的后向投影優(yōu)化方法,通過結(jié)合線程和線程塊兩層粒度實(shí)現(xiàn)并行優(yōu)化處理,避免了成像場景尺寸和PRT 數(shù)量對核函數(shù)調(diào)用次數(shù)的影響,極大提高了算法效率,并基于共享內(nèi)存實(shí)現(xiàn)線程塊內(nèi)數(shù)據(jù)的累加,進(jìn)一步提高了內(nèi)存的訪存效率。
圖7 為基于GPU 粗細(xì)粒度并行的后向投影優(yōu)化原理圖,在細(xì)粒度層面將PRT 時刻映射為線程,為圖中Thread,粗粒度層面將成像空間像素點(diǎn)映射成線程塊,為圖中Block。細(xì)粒度層面表現(xiàn)為線程塊內(nèi)線程代表PRT,GPU 通過線程并行,使得線程塊內(nèi)所有線程并行運(yùn)算,每個線程完成每個PRT 時刻雙程距離計(jì)算、多普勒相位計(jì)算和多普勒相位補(bǔ)償,完成對應(yīng)PRT 時刻的像素點(diǎn)的處理。粗粒度層面表現(xiàn)為線程塊代表成像空間的像素點(diǎn),GPU 通過線程塊并行,可并行完成對整個成像空間中所有像素點(diǎn)的處理。在線程與線程塊并行下,式(4)、(5)、(6)可實(shí)現(xiàn)雙程距離計(jì)算、多普勒相位計(jì)算和多普勒相位補(bǔ)償:
圖7 基于GPU粗細(xì)粒度并行的后向投影優(yōu)化Fig.7 Backward projection optimization based on GPU coarse and fine granularity parallel
其中,bIdx.x,bIdx.y 為線程塊索引,表示線程塊Grid(bIdx.x,bIdx.y),可以在像素空間內(nèi)唯一標(biāo)識一個像素點(diǎn)Grid(bIdx.x,bIdx.y)。tIdx 為線程塊內(nèi)的線程索引,Position(tIdx)為方位時刻tIdx 雷達(dá)的空間坐標(biāo),ΔR為在方位時刻為tIdx 時,雷達(dá)坐標(biāo)距成像空間像素點(diǎn)的單程距離模值,φ為ΔR對應(yīng)的多普勒相位,Sig 為距離維脈沖壓縮結(jié)果,SM 為共享內(nèi)存矩陣,存儲單個像素點(diǎn)在每個PRT 處經(jīng)過多普勒相位補(bǔ)償后的結(jié)果。
在SM 中完成同一像素點(diǎn)在不同PRT 時刻數(shù)據(jù)的累加,可得到最終成像結(jié)果Image:
后向投影逐點(diǎn)運(yùn)算使得成像過程中雙程距離計(jì)算的運(yùn)算量大,3.4 節(jié)是基于雙精度浮點(diǎn)數(shù)對成像過程中相參計(jì)算進(jìn)行的優(yōu)化,保證了成像結(jié)果精度,但計(jì)算過程中雙精度浮點(diǎn)數(shù)(FP64)的指令調(diào)度開銷卻限制了數(shù)據(jù)的處理效率[19-21]。針對雙精度數(shù)據(jù)處理效率低的問題,該文提出一種基于混合精度的數(shù)據(jù)處理方法,在保證數(shù)據(jù)準(zhǔn)確性的條件下,實(shí)現(xiàn)GPU并行處理效率的進(jìn)一步提升。
定點(diǎn)化通過量化的思想實(shí)現(xiàn)浮點(diǎn)數(shù)據(jù)與整型數(shù)據(jù)的轉(zhuǎn)換,可以通過設(shè)計(jì)處理字長和數(shù)據(jù)格式降低數(shù)據(jù)傳輸帶寬,充分利用GPU 內(nèi)部資源,在保證成像精度的條件下的提高成像處理速度。圖8顯示了Lbit 定點(diǎn)數(shù)的數(shù)據(jù)格式,包含1 bit 符號位,F(xiàn)bit 小數(shù)位,L-1-Fbit 整數(shù)位,可表示數(shù)據(jù)范圍為[-2L-1-F,2L-1-F-1],數(shù)據(jù)精度為2-F,可見對于Lbit的定點(diǎn)數(shù),數(shù)據(jù)范圍與數(shù)據(jù)精度相互制約,因此可通過調(diào)節(jié)F的大小,調(diào)節(jié)數(shù)據(jù)精度。
圖8 L-bit定點(diǎn)數(shù)數(shù)據(jù)格式Fig.8 The fixed-point data format of L-bit
浮點(diǎn)數(shù)的定點(diǎn)化實(shí)現(xiàn)如式(8),其中F為小數(shù)位寬,2F為量化因子:
由于定點(diǎn)化后的數(shù)據(jù)類型的受bit數(shù)限制,因此xquantized存在最大表達(dá)范圍,則小數(shù)位數(shù)F應(yīng)滿足式(9):
如INT32 定點(diǎn)數(shù)表達(dá)范圍為[-231,231-1],則小數(shù)位寬F應(yīng)滿足式(10):
根據(jù)式(8),若將一個浮點(diǎn)數(shù)轉(zhuǎn)成定點(diǎn)數(shù),需要找到浮點(diǎn)數(shù)絕對值最大的值,然后確定F值滿足式(10)。
通過定點(diǎn)數(shù)原理,浮點(diǎn)數(shù)的乘法與加法分別可以通過式(11),式(12)來表示:
可見通過對浮點(diǎn)數(shù)進(jìn)行定點(diǎn)化處理,實(shí)現(xiàn)一個整型數(shù)據(jù)即可表達(dá)一個浮點(diǎn)型數(shù)據(jù),減少了數(shù)據(jù)的傳輸帶寬和浮點(diǎn)運(yùn)算的時間周期,提高了計(jì)算效率。
目前主流GPU支持INT8,INT16,INT32,F(xiàn)P32和FP64的計(jì)算核心,針對后向投影成像算法中雙精度浮點(diǎn)(FP64)計(jì)算精度高效率低,單精度浮點(diǎn)(FP32)計(jì)算效率高精度低的問題,該文提出了32 bit定點(diǎn)與雙精度浮點(diǎn)聯(lián)合處理的計(jì)算方案,通過對數(shù)據(jù)進(jìn)行歸一化處理將數(shù)據(jù)縮放,可使得小數(shù)位寬最大為31位,數(shù)據(jù)精度為2-31。在保證計(jì)算精度的同時大幅提高了計(jì)算效率。根據(jù)典型的后向投影算法成像模型,后向投影算法混合精度數(shù)據(jù)處理的設(shè)計(jì)方法如下:
(1)對雷達(dá)坐標(biāo)和成像區(qū)域坐標(biāo)進(jìn)行歸一化處理,并通過引入量化因子2F,實(shí)現(xiàn)浮點(diǎn)數(shù)據(jù)定點(diǎn)化,如式(13)、(14);
(2)將定點(diǎn)化后的數(shù)據(jù)采用定點(diǎn)計(jì)算方式計(jì)算定點(diǎn)斜距,并利用GPU并行處理實(shí)現(xiàn)加速,如式(15);
(3)將定點(diǎn)斜距通過量化因子和歸一化因子轉(zhuǎn)化回浮點(diǎn)數(shù),進(jìn)行后續(xù)反投處理,如式(16);
其中,2F為量化因子,xg,yg,zg為成像網(wǎng)格空間坐標(biāo),xg-int,yg-int,zg-int為其量化結(jié)果;xr,yr,zr為SAR 航跡坐 標(biāo),xr-int,yr-int,zr-int為其量化結(jié)果。該文采用INT32來存儲定點(diǎn)化數(shù)據(jù),即L=32,其符號位寬1位,數(shù)據(jù)位寬1 位,可容納數(shù)據(jù)范圍[-2,2),小數(shù)位寬F=30,可實(shí)現(xiàn)的數(shù)據(jù)精度為2-30。
該文通過32 bit定點(diǎn)數(shù)數(shù)據(jù)處理方法優(yōu)化運(yùn)算,實(shí)現(xiàn)4 byte 傳輸8 byte 數(shù)據(jù),減少了數(shù)據(jù)傳輸帶寬,并且浮點(diǎn)數(shù)據(jù)的定點(diǎn)化充分利用了GPU 中的整型資源,提高GPU資源利用率,提高了數(shù)據(jù)處理效率。
表3 為回波數(shù)據(jù)成像時所采用的CPU 及GPU型號和配置。
表3 CPU/GPU平臺型號參數(shù)Tab.3 CPU/GPU platform model parameters
該文以機(jī)載P 波段SAR 的實(shí)測數(shù)據(jù)為例,驗(yàn)證后向投影成像算法的并行加速效果。該SAR 的方位向采樣數(shù)目Na為2678,距離向采樣數(shù)目Nr為1024,成像空間網(wǎng)格大小M×N=601 ×1401,通過對兩個平臺處理結(jié)果對比分析,來判斷基于GPU 平臺雙精度數(shù)據(jù)處理的正確性及高效性。
為了證明該文所提出的基于GPU 平臺并行實(shí)現(xiàn)后向投影成像算法成像的準(zhǔn)確性與高效性,在保證后向投影計(jì)算之前的處理方法相同的條件下,將所提出的方法與文獻(xiàn)[3]和文獻(xiàn)[7]中所提出方案1和方案2進(jìn)行對比,結(jié)果如圖9所示。
圖9 CPU和GPU成像結(jié)果Fig.9 Imaging results of CPU and GPU
圖9(a)為北京市平谷區(qū)金海湖機(jī)場(E117.23°,N40.19°)附近農(nóng)田的場景照片。圖9(b)、(c)、(d)所示分別為基于CPU 和GPU 平臺獲得的成像結(jié)果。表4 為CPU 與GPU 平臺耗時及不同方案加速比,相較于CPU 成像方案,本方案的雙精度成像加速比達(dá)到了12.82,混合精度加速比達(dá)到了93.84 倍;相較于方案1和方案2,本方案大幅度縮短了成像耗時。
表4 CPU與GPU平臺耗時及加速比Tab.4 CPU and GPU platform time and speed ratio
以GPU 平臺下雙精度的成像結(jié)果為真值,表5所示為GPU 在不同處理精度下幅度和相位誤差的標(biāo)準(zhǔn)差和均值,其中GPU 雙精度結(jié)果的幅度和相位下相對誤差的均值分別為10-13和10-12量級,可以視為與CPU 端雙精度處理的圖像完全一致。GPU 單精度結(jié)果的幅度和相位下相對誤差的均值分別為10-3和10-3量級,GPU混合精度結(jié)果的幅度和相位下相對誤差的均值分別為10-7和10-6量級,可見混合精度相對于單精度提高了精度。圖10 為不同精度下幅度和相位的相對誤差點(diǎn)數(shù)量分布圖,可看出混合精度相對于單精度在一定程度上實(shí)現(xiàn)了成像結(jié)果精度的提升,且進(jìn)一步縮小了誤差的范圍。因此混合精度對后向投影并行處理的進(jìn)一步優(yōu)化,可以更好的控制數(shù)據(jù)處理過程中產(chǎn)生的誤差,并且驗(yàn)證了基于GPU 的成像算法的并行加速方案是正確可行的。
表5 不同處理精度下的幅度和相位誤差的標(biāo)準(zhǔn)差及均值Tab.5 Standard deviation and mean value of amplitude and phase errors under different processing precision
圖10 GPU在不同精度下幅度和相位的相對誤差分布圖Fig.10 The relative error distribution of GPU amplitude and phase under different precision
該文基于GPU 平臺,針對SAR 后向投影算法處理時效性不足的問題,提出了一種SAR 后向投影成像算法GPU 并行加速處理方法。通過異步流并行技術(shù)、矩陣轉(zhuǎn)置、粗細(xì)粒度并行技術(shù)對成像算法流程進(jìn)行了初步優(yōu)化。針對數(shù)據(jù)處理精度和數(shù)據(jù)處理效率之間存在的制約關(guān)系,通過分析浮點(diǎn)數(shù)和定點(diǎn)數(shù)數(shù)據(jù)格式及精度差異,提出了基于混合精度的數(shù)據(jù)處理方法,充分利用GPU 資源,在保證誤差可接受范圍內(nèi),進(jìn)一步提高了算法處理效率。在GPU 平臺上對SAR 實(shí)測數(shù)據(jù)進(jìn)行了成像驗(yàn)證和結(jié)果誤差對比分析,驗(yàn)證了對算法優(yōu)化的高效性和正確性。