謝登召
摘 要:軟件雷達(dá)概括的說(shuō)就是在雷達(dá)領(lǐng)域中應(yīng)用軟件無(wú)線電技術(shù)。就目前來(lái)說(shuō),軟件雷達(dá)難以克服的困難就是軟件雷達(dá)信號(hào)處理的實(shí)時(shí)性。本文在中央處理器-圖形處理器異構(gòu)系統(tǒng)中采用任務(wù)級(jí)、數(shù)據(jù)級(jí)和線程級(jí)三級(jí)并行策略的基礎(chǔ)上設(shè)計(jì)了基于多GPU 的雷達(dá)信號(hào)處理并行算法,并取得了可觀的成就。
關(guān)鍵詞:軟件雷達(dá) 信號(hào)處理 技術(shù)
軟件雷達(dá)實(shí)現(xiàn)的瓶頸問(wèn)題之一是信號(hào)的實(shí)時(shí)處理。為提高軟件雷達(dá)信號(hào)處理的實(shí)時(shí)性,利用圖形處理器的并行運(yùn)算能力進(jìn)行雷達(dá)信號(hào)處理的硬件加速。設(shè)計(jì)雷達(dá)信號(hào)處理在系統(tǒng)中的執(zhí)行策略。對(duì)GPU并行計(jì)算特點(diǎn)對(duì)雷達(dá)信號(hào)處理算法進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果表明,通過(guò)與同期中央處理器(CPU)運(yùn)算平臺(tái)比較,GPU運(yùn)算可實(shí)現(xiàn)20倍以上的加速比,并且可以實(shí)時(shí)完成雷達(dá)信號(hào)處理的整個(gè)流程,體現(xiàn)出良好的工程價(jià)值與應(yīng)用前景。
1、頻數(shù)字信號(hào)并行處理
將軟件無(wú)線電技術(shù)應(yīng)用于雷達(dá)領(lǐng)域的軟件雷達(dá),其硬件平臺(tái)的組成成分一般包括通用處理計(jì)算機(jī)、高速模/數(shù)采樣器件、變頻組件和天線系統(tǒng)以及雷達(dá)顯控終端部分。在變頻組件內(nèi)通過(guò)下變頻轉(zhuǎn)換的作用可以將通過(guò)雷達(dá)接收到的信號(hào)轉(zhuǎn)換為中頻信號(hào),將中頻信號(hào)傳送至高速模/數(shù)采樣器件并將其轉(zhuǎn)換為數(shù)字信號(hào),然后再將轉(zhuǎn)換后的數(shù)字信號(hào)送至通用計(jì)算機(jī)平臺(tái)實(shí)現(xiàn)對(duì)雷達(dá)接受信號(hào)的處理過(guò)程?;诙郍PU 的異構(gòu)計(jì)算機(jī)平臺(tái)處理信號(hào)的調(diào)度以及流程等全部由由CPU 負(fù)責(zé), 首先將單個(gè)子模塊進(jìn)行運(yùn)算所需的內(nèi)存空間以及顯存空間開(kāi)辟,在詳細(xì)了解GPU 初始化參數(shù)的前提下通過(guò)創(chuàng)建主機(jī)端線程來(lái)實(shí)現(xiàn)對(duì)設(shè)備端管理,按照“主機(jī)-設(shè)備端-主機(jī)”的流程將獲取的數(shù)據(jù)自計(jì)算機(jī)主機(jī)內(nèi)存?zhèn)鬏斨猎O(shè)備顯存,然后即可進(jìn)行對(duì)數(shù)據(jù)的密集型計(jì)算。
2、軟件雷達(dá)信號(hào)并行處理的計(jì)算模型
2.1 任務(wù)級(jí)并行。首先在軟件雷達(dá)的主機(jī)端創(chuàng)建任務(wù)隊(duì)列, 用以中頻數(shù)據(jù)的采樣, 并利用CPU 主線程實(shí)現(xiàn)對(duì)任務(wù)的劃分和控制工作,使用CPU 并行線程實(shí)現(xiàn)任務(wù)調(diào)度以及配置設(shè)備端ID 的工作,并對(duì)任務(wù)隊(duì)列進(jìn)行按次序的訪問(wèn)。給基于多GPU 異構(gòu)系統(tǒng)上的GPU 采取輪轉(zhuǎn)的形式分配各個(gè)任務(wù),將獲取的第n 個(gè)數(shù)據(jù)以迭代的形式傳輸至第n mod q 個(gè)GPU,這樣可以保證多塊GPU 的工作獲得負(fù)載平衡, 其中q 為并行GPU 的個(gè)數(shù)。
2.2 數(shù)據(jù)級(jí)并行。進(jìn)行正交相位檢波和脈沖壓縮計(jì)算時(shí),每個(gè)脈沖重復(fù)周期t內(nèi)采樣點(diǎn)在周期之間無(wú)關(guān)聯(lián)性,對(duì)獲取的采樣數(shù)據(jù)實(shí)施數(shù)據(jù)級(jí)并行處理可獲得接近幾乎線性的加速比[1]。在數(shù)據(jù)級(jí)并行處理時(shí)為了得到較高的計(jì)算訪存比,我們可以將整個(gè)脈沖壓縮后的rn×k 的二維數(shù)組規(guī)劃成q 個(gè)n×m 數(shù)據(jù)部分,其中的二維數(shù)組域中每一行均含有m=k mod q 個(gè)采樣點(diǎn),并行GPU 的每塊GPU 對(duì)重構(gòu)后的數(shù)據(jù)部分進(jìn)行并行的計(jì)算,此時(shí)二維數(shù)據(jù)域?qū)Σ⑿蠫PU 的映射為一個(gè)線程網(wǎng)格。在數(shù)據(jù)級(jí)并行處理時(shí),并行GPU的單個(gè)GPU 只需對(duì)所屬的重構(gòu)數(shù)據(jù)域進(jìn)行迭代計(jì)算。
2.3 線程級(jí)并行算法。線程級(jí)并行算法是根據(jù)信號(hào)處理的數(shù)學(xué)模型和GPU 并行計(jì)算的硬件特性,將數(shù)值計(jì)算映射到GPU 細(xì)粒度并發(fā)線程的具體實(shí)現(xiàn)過(guò)程。1)正交相位檢波和脈沖壓縮。在軟件雷達(dá)處理信號(hào)時(shí),進(jìn)行正交相位檢波可以把中頻信號(hào)通過(guò)特殊方法轉(zhuǎn)變?yōu)榱阒蓄l的I、Q 兩路正交信號(hào)。其實(shí)現(xiàn)過(guò)程為:通過(guò)高速模/數(shù)變換器的中頻信號(hào)能夠直接進(jìn)行采樣和變換過(guò)程得到數(shù)字信號(hào), 將得到的數(shù)字信號(hào)與正交混頻信號(hào)進(jìn)行點(diǎn)乘、低通濾波處理即可得到零中頻的I、Q 兩路正交信號(hào)。在對(duì)正交混頻信號(hào)與采樣點(diǎn)進(jìn)行點(diǎn)乘處理時(shí),我們需要把正交混頻信號(hào)以及整段脈沖重復(fù)周期內(nèi)的采樣數(shù)據(jù)全部輸入到內(nèi)核函數(shù)中才能進(jìn)行點(diǎn)乘。由于內(nèi)核函數(shù)與整段重復(fù)周期內(nèi)的采樣點(diǎn)線程網(wǎng)格是相互對(duì)應(yīng)覆蓋的,所以在將正交混頻信號(hào)以及整段脈沖重復(fù)周期內(nèi)的采樣數(shù)據(jù)全部輸入到內(nèi)核函數(shù)時(shí)其中的每個(gè)線程塊都可以進(jìn)行n 維度的采樣數(shù)據(jù)計(jì)算,并且可以將每個(gè)采樣數(shù)據(jù)作為一個(gè)處理單元將其映射到相關(guān)的線程中。我們可以通過(guò)仿真計(jì)算得到數(shù)字低通濾波器的相關(guān)系數(shù),并且可以根據(jù)紋理緩存將采樣數(shù)據(jù)的讀取速度不斷提高。因此可以在紋理存儲(chǔ)器存儲(chǔ)以權(quán)庫(kù)的形式表現(xiàn)的濾波器系數(shù),當(dāng)進(jìn)行正交相位檢波模塊時(shí)即可進(jìn)行讀取過(guò)程。在軟件雷達(dá)處理信號(hào)時(shí)所進(jìn)行的正交相位檢波、動(dòng)目標(biāo)檢測(cè)以及頻域脈沖壓縮等計(jì)算時(shí)均需采用傅立葉變換(FFT)的方法進(jìn)行變換處理。2)MTI/MTD,在工程領(lǐng)域中我們較為常用的固定二次對(duì)消器一般都是由兩個(gè)固定的一次對(duì)消器級(jí)聯(lián)而成的。在一般結(jié)果的固定二次對(duì)消器設(shè)計(jì)中,輸入采樣數(shù)據(jù)信號(hào)尺寸的級(jí)聯(lián)倍數(shù)即為開(kāi)辟的顯存空間大小,開(kāi)辟的顯存空間可以存儲(chǔ)脈沖壓縮后產(chǎn)生的連續(xù)采樣回波數(shù)據(jù)信號(hào)。其中在顯存空間中存儲(chǔ)每個(gè)脈沖壓縮后的回波數(shù)據(jù)的形式為“先進(jìn)先出”的形式。對(duì)脈沖重復(fù)周期內(nèi)數(shù)字信號(hào)進(jìn)行迭代運(yùn)算時(shí)需要通過(guò)線程索引號(hào)并發(fā)執(zhí)行來(lái)完成,其中每個(gè)線程分別維護(hù)采樣值經(jīng)延遲線加權(quán)與相同距離分辨單元采樣點(diǎn)隔周期相減。動(dòng)目標(biāo)檢測(cè)也是一項(xiàng)必要的工作,其實(shí)現(xiàn)動(dòng)目標(biāo)檢測(cè)的原理為:在固定二次對(duì)消器(MTI)后串接一窄帶濾波器組,通過(guò)窄帶濾波器組實(shí)現(xiàn)對(duì)整個(gè)重復(fù)頻率范圍的覆蓋,其工作的根本為相參積累不同通道,在對(duì)采樣數(shù)據(jù)信號(hào)進(jìn)行濾波處理時(shí)可采用FFT濾波器組完成。在進(jìn)行MTD 運(yùn)算時(shí),將相鄰m 個(gè)重復(fù)周期的數(shù)據(jù)作為一維數(shù)組存儲(chǔ)起來(lái),采用棋盤(pán)劃分的方式實(shí)現(xiàn)矩陣轉(zhuǎn)置,對(duì)其相同距離單元即矩陣每一行的數(shù)據(jù)進(jìn)行FFT 運(yùn)算。3)脈沖積累和恒虛警檢測(cè)。如果要將算法效率有效提高,則需要對(duì)以共享存儲(chǔ)器做為中間數(shù)據(jù)訪存和線程通信載體進(jìn)行合理地利用。在軟件雷達(dá)對(duì)信號(hào)進(jìn)行處理時(shí), 在脈沖積累運(yùn)算時(shí)將以棋盤(pán)劃分的方式把數(shù)據(jù)域劃分給并行GPU,首先把矩陣設(shè)置成為一個(gè)n 行m 列的矩陣,并將整個(gè)線程網(wǎng)格劃分成n 個(gè)線程塊,對(duì)應(yīng)的單個(gè)線程塊即可實(shí)現(xiàn)對(duì)m 個(gè)數(shù)據(jù)的處理運(yùn)算,即得到一列的數(shù)據(jù)。然后將通過(guò)線程塊處理所得到的的每一列數(shù)據(jù)從顯存復(fù)制到線程塊中的共享存儲(chǔ)器,以并行歸約的方式將這些數(shù)據(jù)作求和處理,調(diào)用_syncthreads()函數(shù)對(duì)求和處理后的數(shù)據(jù)進(jìn)行柵欄同步,最后即可將每個(gè)線程塊內(nèi)運(yùn)算得到的相關(guān)結(jié)果存入全局存儲(chǔ)器(n 維)中。在進(jìn)行均值類恒虛警檢測(cè)算時(shí),則需要對(duì)每個(gè)距離單元兩側(cè)各點(diǎn)的采樣數(shù)據(jù)進(jìn)行求和處理,此外,將運(yùn)算數(shù)據(jù)分段復(fù)制到線程塊內(nèi)的共享存儲(chǔ)器可以將從全局存儲(chǔ)器中讀取數(shù)據(jù)的頻率降低。
基于多GPU 并行運(yùn)算處理雷達(dá)信號(hào)算法,能夠滿足軟件雷達(dá)標(biāo)準(zhǔn)化、模塊化、開(kāi)放性等的相關(guān)要求。通過(guò)仿真算法實(shí)例我們得知,基于多GPU 的多任務(wù)并行算法處理雷達(dá)信號(hào)時(shí)能夠滿足雷達(dá)工作的實(shí)時(shí)性。也很好的證明GPU 在加速雷達(dá)信號(hào)處理運(yùn)算上的可行性,具有很重要的現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1]張波,薛正輝,任武.基于圖形處理器的時(shí)域有限差分算法硬件加速[J].電波科學(xué)學(xué)報(bào),
2015,(05).
[2]熊超.基于GPU 的連續(xù)波雷達(dá)頻譜分析與譜峰搜索技術(shù)研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2014,(09).
[3]張波,薛正輝,任武,等.基于圖形處理器的時(shí)域有限差分算法硬件加速[J].電波科學(xué)學(xué)報(bào),2015.(09).