陶 亮
(中國電子科技集團第十四研究所 江蘇·南京 210000)
在GPU的基礎上構建軟件雷達終端,采用CPU(中央處理器)平臺常規(guī)處理雷達信號,和在CPU平臺上進行雷達信號處理的過程不同:CPU-GPU所組成的異構系統(tǒng)的平均計算速率比CPU平臺快了100倍以上,且遠遠未達到GPU的計算極限,最大誤差在5×10-4以下。這也就意味著,基于GPU的并行運算能力突出優(yōu)勢,與CPU互補,構建CPU-GPU的異構系統(tǒng),既能發(fā)揮軟件無線電技術的優(yōu)勢,有效地獲取各項數(shù)據(jù),又能實時進行數(shù)據(jù)處理,達到軟件雷達在信號處理方面的實效性要求,隨著回波采樣點等數(shù)據(jù)量的增加,信號處理的吞吐量也會不斷增加,很好地滿足了軟件雷達信號處理的大吞吐量及高實時性的需求,克服以往軟件雷達信號處理計算速度慢、計算量少等問題。
圖1:基于GPU的軟件雷達信號處理系統(tǒng)
軟件雷達,是無線電技術在雷達領域中的應用,其硬件平臺包含了通用處理計算機、變頻組件以及天線系統(tǒng)、雷達顯控終端以及高速模/數(shù)采樣器件等部分。其信號處理過程是,在變頻組件內(nèi)通過變頻轉換,將雷達接收到的信號轉換為中頻信號,并將其傳送到高速模/數(shù)采樣器件中,轉變?yōu)閿?shù)字信號,最后將數(shù)字信號輸送到計算平臺中,進行雷達信號處理?;贕PU的軟件雷達信號處理過程大體也是如此,主要包含三大模塊,一是數(shù)據(jù)讀取模塊,將接收機處理的基帶數(shù)據(jù)讀入后,獲取報文的各種標志、數(shù)據(jù)并重組,從而獲得預處理后的回波數(shù)據(jù);二是信號處理模塊,是整個信號處理系統(tǒng)的核心,將預處理后的回波數(shù)據(jù)先進行脈沖壓縮轉變?yōu)镻C數(shù)據(jù),再進行MTD或是MTI處理,并在MTD的結果上實施二維CFA R處理;三是信號輸出模塊,包含了CFAR結果輸出、信號處理模塊中間過程(PC結果等),且產(chǎn)生的數(shù)據(jù)可基于實際需求進行輸出與儲存。以下是具體的系統(tǒng)流程圖:
在整個雷達信號處理過程中,在CPU-GPU的異構系統(tǒng)中,信號的調(diào)度以及流程全部由CPU負責,先開辟單個子模塊運算所需的內(nèi)存空間以及顯存空間,并在獲取GPU初始化參數(shù)前提下創(chuàng)建主機端線程實現(xiàn)對雷達顯控終端的管理,通過“主機——設備端——主機”的流程,將獲取的數(shù)據(jù)從計算機主機內(nèi)存?zhèn)鬏數(shù)阶冾l組件,再對數(shù)據(jù)進行密集型計算輸送到雷達顯控終端。
基于GPU的軟件雷達信號處理,主要是通過CPU-GPU的異構系統(tǒng),實現(xiàn)多個模塊雷達信號處理,以滿足軟件雷達信號處理的標準化、實時性、模塊化等要求。以下是基于GPU的軟件雷達信號處理計算模型:
先要在軟件雷達的主機端創(chuàng)建任務列表,以采樣中頻數(shù)據(jù),通過CPU主線程實現(xiàn)對任務級別的劃分與管控,由Open-Multi-Processing開辟CPU并行線程,進行雷達信號處理的任務調(diào)度以及配置設備端ID工作,從而依次序訪問任務隊列。然后,則是在CPU-GPU異構系統(tǒng)上,通過GPU以輪轉的形式分配各個任務,將獲取的數(shù)據(jù)以迭代的形式傳輸?shù)较鄳腉PU上,從而實現(xiàn)多個GPU模塊并行且負載平衡。如,將第n個采集的數(shù)據(jù)以迭代的形式傳輸至第n mod q個GPU上,其中q是GPU的并行個數(shù)。
由于每個脈沖重復周期t內(nèi)的采樣點在周期內(nèi)沒有關聯(lián)性,進行正交相位檢波和脈沖壓縮計算時,可實現(xiàn)多個周期內(nèi)的采樣數(shù)據(jù)級的并行處理,從而得到近似線性的加速比。為了在數(shù)據(jù)級并行處理過程中,得到較高的計算訪存比,可把整個脈沖壓縮后的二維數(shù)組劃分成q個n×m數(shù)據(jù)部分,實現(xiàn)壓縮后的rn×k二維數(shù)組轉變?yōu)閚×m數(shù)據(jù),每個二維數(shù)組域內(nèi)中每一行都包含了m=kmodq個采樣點。如此一來,就能運用并行GPU中的每個GPU模塊對重構的q個n×m數(shù)據(jù)部分進行并行計算,且二維數(shù)據(jù)域對并行GPU的映射為一個線程網(wǎng)絡,以保證數(shù)據(jù)級并行處理時,單個的GPU只需要迭代計算所屬域內(nèi)的重構數(shù)據(jù)。
線程級的并行算法,主要是在信號處理的數(shù)學模型與GPU并行計算的硬件特性上,通過將數(shù)值計算映射到GPU細粒度并發(fā)線程,從而實現(xiàn)多個線程數(shù)據(jù)并行計算。
(1)在軟件雷達信號處理過程中,通過正交相位檢波將中頻信號轉變?yōu)榱阒蓄l的I、Q兩路正交信號。在轉變過程中要先把正交混頻信號以及整段脈沖重復周期內(nèi)的采樣數(shù)據(jù)輸入內(nèi)核函數(shù)后,再進行點乘處理,使得每個線程塊都能實現(xiàn)n維度的采樣數(shù)據(jù)計算,每個采樣數(shù)據(jù)都可以看作是一個處理單元,并能映射到相關線程之中。具體過程:通過仿真計算得到數(shù)字低通濾波器的相關系數(shù)后,依照紋理緩存不斷地提高采樣書籍的讀取速度(利用GPU紋理存儲器內(nèi)的高速片上緩存功能),使得以權庫的形式呈現(xiàn)的濾波器系數(shù),在正交相位檢波模塊中能即可讀取出來。
(2)利用MTI/MTD對輸入的采樣數(shù)據(jù)進行運算。由于顯存空間中都是以“先進先出”的形式儲存脈沖壓縮后的回波數(shù)據(jù),對于脈沖沖突周期內(nèi)的數(shù)字信號進行迭代運算,則應經(jīng)過線程檢索引號來執(zhí)行,每個線程需分別維護值經(jīng)延遲線加權與相同距離分辨單元采樣點隔周期。特別是動目標的檢測,應在固定二次消器(MTI)后以串聯(lián)窄帶濾波器組的方式,實現(xiàn)對整個重復頻率范圍的覆蓋,通過不同的數(shù)字通道,運用FFT濾波器處理采樣數(shù)據(jù)信號后再進行MTD運算。MTD的具體運算過程中,要把相鄰m個重復周期內(nèi)的數(shù)據(jù)作為一維數(shù)組儲存起來,再通過棋盤劃分進行矩陣轉置,對矩陣每一行數(shù)據(jù)進行FFT運算。
(3)通過脈沖積累和恒虛警檢測提高算法效率,將共享儲存器作為線程通信載體、實現(xiàn)中間數(shù)據(jù)的訪存,發(fā)揮共享儲存器的作用,高效地進行數(shù)據(jù)運算。利用共享儲存器的最大優(yōu)勢,在于實現(xiàn)數(shù)據(jù)復用的同時,避免由于重疊數(shù)據(jù)元素導致的線程之間訪問競爭問題,通過將運算數(shù)據(jù)分段復制到線程塊內(nèi)的共享儲存器中,降低全局儲存器中數(shù)據(jù)讀取的頻率?;贕PU的軟件雷達信號處理過程中,脈沖積累運算時可用棋盤的形式劃分整個數(shù)據(jù)域,并將劃分后的數(shù)據(jù)域輸送到并行GPU中,先將矩陣看成成n行m列的矩陣,然后把整個線程網(wǎng)絡劃分成n個線程塊,這樣每個線程塊就對應m各數(shù)據(jù)的運算,每個GPU的運算結果就是一列的數(shù)據(jù)。然后,則是將每個線程塊處理得到每列數(shù)據(jù)從顯存復制到共享儲存器,按照并行歸約的方式進行求和處理,調(diào)用sync-threads()函數(shù)將求和后的數(shù)據(jù)設置成柵欄同步,再將每個線程塊內(nèi)運算得到的結果輸入到全局存儲器(n維)中儲存起來。這樣一來,通過對每個距離單元兩側各點的采樣數(shù)據(jù)進行求和處理,就能完成均值類恒虛警檢測算。
軟件雷達系統(tǒng)的計算平臺,所采用的 GPU(NVIDIATeslaC2050)以及CPU(IntelCorei7@2.67GHz)選用相同的運算模型以及運行參數(shù),以OpenMulti-Processing展開并行執(zhí)行循環(huán)以及迭代運算,所有的采樣數(shù)據(jù)都通過用英特爾數(shù)學核心函數(shù)庫實現(xiàn)傅立葉變換。在仿真分析中,使用線性調(diào)頻形式的雷達信號,以8點FFT多普勒濾波器組和雙延遲線對消器實現(xiàn)動目標檢測與顯示。結果顯示,在采樣點數(shù)相同時,基于 CPU處理的計算機設備無法處理信號的執(zhí)行時間控制在10個脈沖重復周期內(nèi),隨著并行GPU數(shù)量的增加處理,信號處理的執(zhí)行時間會不斷縮短;在采樣點數(shù)較少的情況系,GPU*3與GPU*4執(zhí)行速度相似,但與GPU*1的執(zhí)行速度相比,其執(zhí)行速度沒有明顯的上升趨勢;采樣點數(shù)不斷增加后,基于 GPU的軟件雷達信號處理算法執(zhí)行速度才彰顯出明顯的優(yōu)勢。此外,基于CPU-GPU異構系統(tǒng)的軟件雷達信號處理方法,其實測數(shù)據(jù)處理效果更為顯著,無論是雷達信號中的噪聲和干擾信號,還是噪聲、云雨雜波強度、地物雜波等,都得到了有效的抑制,目標回波的信噪比顯著提升。
綜上所述,基于GPU(圖形處理器)與CPU(中央處理器)各自的優(yōu)勢,采用任務級、數(shù)據(jù)級和線程級三級并行策略,進行軟件雷達信號處理,有利于提高軟件雷達信號處理的實效性與計算速度。鑒于此,基于GPU進行軟件雷達信號處理,應針對軟件雷達的特點,根據(jù)無線電相關技術在雷達領域的應用情況,在任務級、數(shù)據(jù)級和線程級三級并行方案之上,構建CPU-GPU的異構系統(tǒng),實現(xiàn)多GPU并行處理軟件雷達信號,從而滿足軟件雷達信號處理的大吞吐量和高實時性要求。