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