張曉東 孔祥輝 張歡陽
(西安電子工程研究所 西安 710100)
合成孔徑雷達(dá)因具有全天候、全天時(shí)、遠(yuǎn)距離成像等特點(diǎn),可以大大提高雷達(dá)的捕獲信息能力,因而成為雷達(dá)技術(shù)的熱門研究領(lǐng)域,在戰(zhàn)場(chǎng)感知和災(zāi)情監(jiān)測(cè)等方面有著不可替代的作用[1]。隨著SAR成像技術(shù)的發(fā)展,對(duì)回波數(shù)據(jù)實(shí)現(xiàn)實(shí)時(shí)處理的要求也越來越迫切。這就意味著信號(hào)處理器能夠滿足SAR信號(hào)處理過程中大運(yùn)算量的快速運(yùn)算等處理能力的要求,由于SAR成像算法本身的復(fù)雜度和雷達(dá)數(shù)據(jù)的高速率,實(shí)時(shí)處理面對(duì)很大的挑戰(zhàn)性,使用單處理器或處理芯片幾乎難以實(shí)現(xiàn),為了在不影響成像精度的前提下獲得更好的實(shí)時(shí)性,并行處理成為解決這一問題的關(guān)鍵技術(shù)。
受到游戲市場(chǎng)和軍事實(shí)景仿真的要求,圖形處理器(Graphics Processing Unit)性能提高速度很快,大大超過了摩爾定律,支持越來越復(fù)雜的運(yùn)算,其編程性和功能都大大擴(kuò)展了。GPU通用計(jì)算性能的提高為高效SAR成像算法提供了具有發(fā)展前景的新型運(yùn)算平臺(tái)。GPU在處理能力和存儲(chǔ)帶寬上相對(duì)CPU有明顯的優(yōu)勢(shì),在成本和功耗上也不需要付出太大代價(jià),從而為SAR實(shí)時(shí)成像提供了新的解決方案。
當(dāng)前的NIVIDA GPU中有1~60個(gè)包含完整前端的流多處理器(SM),每個(gè)流多處理器可以看作一個(gè)包含8個(gè)1D流處理器的SIMD處理器。顯卡就是利用多個(gè)流多處理器間的粗粒度任務(wù)級(jí)或數(shù)據(jù)級(jí)并行,以及流多處理器內(nèi)的細(xì)粒度數(shù)據(jù)并行。盡管GPU的運(yùn)行頻率比一般的CPU低,但是更多的執(zhí)行單元數(shù)量還是使GPU能夠在浮點(diǎn)處理能力上獲得優(yōu)勢(shì)。DUDA(Compute Unified Device Architecture)是NIVIDA公司推出的一種不需借助圖形學(xué)API就可以使用類C語言進(jìn)行通用計(jì)算的開發(fā)環(huán)境和軟件體系。采用C語言作為編程語言,進(jìn)行了適度的擴(kuò)展,提供大量的高性能計(jì)算指令開發(fā)能力,使開發(fā)者能夠在GPU強(qiáng)大計(jì)算能力的基礎(chǔ)上建立起一種效率更高的密集數(shù)據(jù)計(jì)算解決方案。CUDA對(duì)圖形硬件和API進(jìn)行封裝,讓開發(fā)人員把GPU看成一個(gè)具有多核多線程的處理器,并在類似于CPU的編程環(huán)境下對(duì)GPU進(jìn)行編程,開發(fā)GPU通用程序,降低了軟件開發(fā)時(shí)間和成本。
本文采用最常用的RD算法。RD算法首先對(duì)距離進(jìn)行脈沖壓縮,然后進(jìn)行距離徙動(dòng)校正,運(yùn)動(dòng)補(bǔ)償,然后進(jìn)行方位向壓縮,具體算法參考文獻(xiàn)[1]。RD算法的本質(zhì)是將SAR成像的二維處理分解為兩個(gè)一維處理過程,分別為距離向處理和方位向處理。RD算法的并行化程度成為獲取高加速比的關(guān)鍵。距離脈壓和方位脈壓通常使用頻域匹配濾波的實(shí)現(xiàn)方式,主要涉及的算法是FFT、點(diǎn)乘和IFFT。GPU開發(fā)軟件CUDA有自身的FFT庫可以實(shí)現(xiàn)快速的并行FFT變換,對(duì)于點(diǎn)乘運(yùn)算,由于距離向和方位向壓縮和距離徙動(dòng)校正和運(yùn)動(dòng)補(bǔ)償都是點(diǎn)乘,所以可以將其中的部分運(yùn)算合并以減少運(yùn)算次數(shù)提高計(jì)算速度。
利用GPU實(shí)現(xiàn)的基于RD算法的SAR成像算法實(shí)現(xiàn)的流程如下:
第一、把原始數(shù)據(jù)從通過CPU傳輸?shù)紾PU,計(jì)算徙動(dòng)補(bǔ)償所要的參數(shù)。
第二、距離向的壓縮和走動(dòng)校正。具體描述為:首先將原始數(shù)據(jù)沿距離向做FFT,然后乘以通過內(nèi)核函數(shù)生成的距離向匹配函數(shù)和走動(dòng)校正函數(shù)完成距離向包絡(luò)移動(dòng),再利用距離向IFFT完成距離向壓縮。然后再進(jìn)行一次相位校正。
第三、將做完走動(dòng)校正的數(shù)據(jù)進(jìn)行轉(zhuǎn)置。
第四、利用慣性導(dǎo)航系統(tǒng)數(shù)據(jù)通過內(nèi)核函數(shù)生成運(yùn)動(dòng)補(bǔ)償函數(shù),對(duì)數(shù)據(jù)進(jìn)行運(yùn)動(dòng)補(bǔ)償。
第五、通過內(nèi)核函數(shù)生成方位向匹配函數(shù)并進(jìn)行FFT,對(duì)數(shù)據(jù)進(jìn)行FFT然后點(diǎn)乘,在進(jìn)行IFFT,完成方位向的脈沖壓縮
第六、將方位向脈壓完的數(shù)據(jù)即圖像傳回主機(jī)。
圖1 GPU SAR成像算法流程
為了測(cè)試本文所提出的SAR成像方法的有效性,本部分介紹實(shí)驗(yàn)及其結(jié)果。本試驗(yàn)采用的計(jì)算機(jī)為普通商用計(jì)算機(jī)CPU為E8400,顯卡為NIVIDA公司的9500GT,板載顯存為1G字節(jié),運(yùn)算能力為1.1,其SM數(shù)量只有4個(gè),運(yùn)算精度為單精度;軟件使用的是Windows XP下的CUDA3.0。數(shù)據(jù)來源為某機(jī)載雷達(dá)的真實(shí)回波,PRF為1KHz,采用慣性導(dǎo)航單元進(jìn)行運(yùn)動(dòng)補(bǔ)償,圖像分辨率為1m,一次成像所需的數(shù)據(jù)長(zhǎng)度為8192×8192復(fù)數(shù)。由于顯卡上的存儲(chǔ)器容量有限,所以在處理的數(shù)據(jù)較大時(shí)不能完全將數(shù)據(jù)一次性放入顯卡上的存儲(chǔ)器,要將數(shù)據(jù)分成幾部分處理,本文在進(jìn)行距離壓縮時(shí)分成4個(gè)部分,在進(jìn)行方位壓縮時(shí)分成8個(gè)部分進(jìn)行。成像所需時(shí)間為4.21s,成像各個(gè)部分的運(yùn)算時(shí)間分布如表1所示,這其中還包含了由于顯卡現(xiàn)存不足,轉(zhuǎn)置的過程中在內(nèi)存和顯存之間緩沖數(shù)據(jù)的時(shí)間0.35s,在PRF=1KHz時(shí),采集一幅圖像數(shù)據(jù)時(shí)間為8s,所以本系統(tǒng)可以達(dá)到實(shí)時(shí)成像的要求,成像結(jié)果如圖2所示。
表1 SAR成像時(shí)間統(tǒng)計(jì)(單位:s)
圖2 利用GPU實(shí)現(xiàn)的RD成像結(jié)果
由測(cè)試結(jié)果可知,本文提出的利用CUDA實(shí)現(xiàn)的基于GPU的RD成像算法具有極高的效率,相比傳統(tǒng)的基于CPU的SAR成像算法,效率得了顯著的提升,達(dá)到了實(shí)時(shí)處理的速度。并且成像效果并未受到多大的影響,完全可以滿足下一步處理的需求。
本文提出了利用GPU實(shí)現(xiàn)RD成像算法。該成像算法利用GPU通用計(jì)算的編程模型,極大地發(fā)揮出了GPU并行計(jì)算的優(yōu)勢(shì)。通過實(shí)驗(yàn)表明:本文提出的基于GPU的SAR成像方案實(shí)現(xiàn)了實(shí)時(shí)RD成像的要求,具有較好的成像效果。為了使當(dāng)前的研究結(jié)果更加完善,在將來可以利用CPU和GPU進(jìn)行協(xié)同合作,并開發(fā)更加完善的并行算法,提高并行度,進(jìn)一步提高運(yùn)算速度。
[1]保錚,邢孟道,王彤.雷達(dá)成像技術(shù)[M].北京:電子工業(yè)出版社,2005.
[2]張舒,褚艷利.CPU高性能運(yùn)算之CUDA[M].中國(guó)水利水電出版社,2009.
[3]NVIDIA.NVIDIA CUDA Programming Guide Version 3.0[Z].2010.
[4]肖江,胡柯良,鄧元勇.基于CUDA的矩陣乘法和FFT性能測(cè)試[J].計(jì)算機(jī)工程,2009.