靳璐
摘要:充分發(fā)揮GPU(圖形處理器)并行運(yùn)算能力突出的優(yōu)勢(shì),可以彌補(bǔ)CPU(中央處理器)平臺(tái)在處理雷達(dá)信號(hào)時(shí)難以滿足運(yùn)行要求的不足。任務(wù)級(jí)、數(shù)據(jù)級(jí)和線程級(jí)三級(jí)并行策略同時(shí)運(yùn)行在中央處理器-圖形處理器組成的異構(gòu)系統(tǒng)中,規(guī)劃了多GPU并行運(yùn)算處理雷達(dá)信號(hào)處理的算法。
關(guān)鍵詞:軟件雷達(dá)信號(hào);處理技術(shù);并行計(jì)算
一、前言
目前,雷達(dá)正在向數(shù)字化和軟件化的方向發(fā)展,軟件雷達(dá)采用開放式、標(biāo)準(zhǔn)化、通用化的硬件平臺(tái),通過現(xiàn)場(chǎng)加載的模塊化軟件實(shí)現(xiàn)雷達(dá)的各種功能,使軟件雷達(dá)擁有多功能、多模式的發(fā)展?jié)摿?,同時(shí)具有研制和改進(jìn)周期短、費(fèi)用低、維護(hù)方便等諸多優(yōu)勢(shì)。因而,近年來成為相關(guān)領(lǐng)域的研究熱點(diǎn)。
一直以來,軟件雷達(dá)實(shí)現(xiàn)的瓶頸問題之一是實(shí)時(shí)性問題。其中信號(hào)處理的實(shí)時(shí)性更為突出,因而相當(dāng)一部分工作都是集中在信號(hào)處理的軟件化工作上,研究的主流方案一般都采用軟件和硬件耦合緊密的多DSP+FPGA板實(shí)現(xiàn)。近年來,基于通用計(jì)算機(jī)平臺(tái)的計(jì)算機(jī)圖形處理器(Graphic Process Unit,GPU)運(yùn)算能力的提升逐漸可為軟件雷達(dá)的實(shí)現(xiàn)提供硬件支持。目前,GPU的主要用途由圖形渲染已經(jīng)過渡到通用計(jì)算方面,其含義也已由圖形處理器演變?yōu)橥ㄓ锰幚砥鳌PU屬于眾核架構(gòu),擁有數(shù)以百計(jì)的計(jì)算單元,單精度浮點(diǎn)處理能力已超過1TFlops,同時(shí)其雙精度浮點(diǎn)處理能力也得到了加強(qiáng),最高可達(dá)到600GFlops。針對(duì)基于GPU架構(gòu)的并行計(jì)算研究也成為熱點(diǎn)。在GPU加速雷達(dá)信號(hào)處理領(lǐng)域,提出基于GPU對(duì)軟件雷達(dá)體系的設(shè)計(jì),主要工作集中在信號(hào)的下變頻和I和Q兩路的分解。提出利用GPU硬件加速來提高連續(xù)波雷達(dá)的頻譜分析和譜峰搜索實(shí)時(shí)性,將頻譜分析和譜峰搜索移植至GPU進(jìn)行運(yùn)算,有效地縮短了系統(tǒng)的整體響應(yīng)時(shí)間。
二、雷達(dá)信號(hào)處理在CPU-GPU系統(tǒng)中的執(zhí)行策略
軟件化雷達(dá)的硬件平臺(tái)由天線系統(tǒng)、變頻組件、A/D采樣組件、通用處理計(jì)算機(jī)和雷達(dá)終端設(shè)備組成,如圖1所示。
圖1軟件雷達(dá)系統(tǒng)組成框圖
雷達(dá)接收信號(hào)在變頻組件內(nèi)經(jīng)下變頻轉(zhuǎn)換為中頻信號(hào),送到高速A/D采樣器件,轉(zhuǎn)換為數(shù)字信號(hào)送通用處理計(jì)算機(jī)進(jìn)行信號(hào)處理,雷達(dá)信號(hào)的檢測(cè)和處理由軟件來實(shí)現(xiàn)。由于雷達(dá)信號(hào)處理過程呈流水線模式,數(shù)據(jù)采樣率高,通用處理計(jì)算機(jī)利用CPU完成預(yù)處理并控制信號(hào)處理的任務(wù)調(diào)度和負(fù)載分配,按照雷達(dá)信號(hào)處理流程,將數(shù)據(jù)通過PCI-E總線分塊傳輸至顯存,利用GPU特有的SIMT(Single Instruction Multiple Thread)方式實(shí)現(xiàn)線程并行化計(jì)算。每個(gè)脈沖重復(fù)周期(PRF)所包含的采樣數(shù)據(jù)處理的方式相同,利于發(fā)揮GPU多線程、細(xì)粒度并行處理的優(yōu)勢(shì)。處理過程通過創(chuàng)建流來異步執(zhí)行,使得前一個(gè)脈沖重復(fù)周期數(shù)據(jù)的計(jì)算與下一個(gè)周期數(shù)據(jù)流的傳輸并行進(jìn)行,最大程度地重疊通信與計(jì)算的時(shí)間,如圖2所示。
圖2雷達(dá)信號(hào)處理并行執(zhí)行過程
訪存優(yōu)化是提高GPU多線程并行計(jì)算的重要途徑。為提高數(shù)據(jù)傳輸帶寬,在本文研究過程中,對(duì)采樣點(diǎn)開辟頁(yè)鎖定內(nèi)存,通過GPU的zero-copy功能將主機(jī)端指針映射到GPU地址空間,信號(hào)處理模塊中的內(nèi)核函數(shù)可直接進(jìn)行主機(jī)和設(shè)備端的通信,減少分配顯存和數(shù)據(jù)拷貝的時(shí)間;采用紋理存儲(chǔ)器來保存低通濾波器系數(shù),使用紋理內(nèi)核函數(shù)來讀取紋理存儲(chǔ)器。紋理存儲(chǔ)器的存儲(chǔ)方式為只讀,可以通過緩存加速訪問以優(yōu)化空間局部行為;共享存儲(chǔ)器的訪存速度幾百倍快于全局存儲(chǔ)器,應(yīng)用于雷達(dá)信號(hào)處理中的矩陣轉(zhuǎn)置,脈沖積累及恒虛警檢測(cè),把采樣數(shù)據(jù)分批劃分到共享內(nèi)存,通過共享存儲(chǔ)器合作計(jì)算可獲得更好的加速性能。
三、變頻數(shù)字信號(hào)并行處理
將軟件無線電技術(shù)應(yīng)用于雷達(dá)領(lǐng)域的軟件雷達(dá),其硬件平臺(tái)的組成成分一般包括通用處理計(jì)算機(jī)、高速模/數(shù)采樣器件、變頻組件和天線系統(tǒng)以及雷達(dá)顯控終端部分。在變頻組件內(nèi)通過下變頻轉(zhuǎn)換的作用可以將通過雷達(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)的處理過程。
基于多GPU的異構(gòu)計(jì)算機(jī)平臺(tái)處理信號(hào)的調(diào)度以及流程等全部由CPU負(fù)責(zé),首先將單個(gè)子模塊進(jìn)行運(yùn)算所需的內(nèi)存空間以及顯存空間開辟,在詳細(xì)了解GPU初始化參數(shù)的前提下通過創(chuàng)建主機(jī)端線程來實(shí)現(xiàn)對(duì)設(shè)備端管理,按照“主機(jī)-設(shè)備端-主機(jī)”的流程將獲取的數(shù)據(jù)自計(jì)算機(jī)主機(jī)內(nèi)存?zhèn)鬏斨猎O(shè)備顯存(通過PCI-E總線實(shí)現(xiàn)傳輸過程),然后即可進(jìn)行對(duì)數(shù)據(jù)的密集型計(jì)算。
四、軟件雷達(dá)信號(hào)并行處理的計(jì)算模型
(一)任務(wù)級(jí)并行
首先在軟件雷達(dá)的主機(jī)端創(chuàng)建任務(wù)隊(duì)列,用以中頻數(shù)據(jù)的采樣,并利用CPU主線程實(shí)現(xiàn)對(duì)任務(wù)的劃分和控制工作,使用CPU并行線程(由Open Multi-Processing開辟)實(shí)現(xiàn)任務(wù)調(diào)度以及配置設(shè)備端ID的工作,并對(duì)任務(wù)隊(duì)列進(jì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ù)。
(二)數(shù)據(jù)級(jí)并行
進(jìn)行正交相位檢波和脈沖壓縮計(jì)算時(shí),每個(gè)脈沖重復(fù)周期t內(nèi)采樣點(diǎn)在周期之間無關(guān)聯(lián)性,對(duì)獲取的采樣數(shù)據(jù)實(shí)施數(shù)據(jù)級(jí)并行處理可獲得接近幾乎線性的加速比。在數(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ì)算。
(三)線程級(jí)并行算法
線程級(jí)并行算法是根據(jù)信號(hào)處理的數(shù)學(xué)模型和GPU并行計(jì)算的硬件特性,將數(shù)值計(jì)算映射到GPU細(xì)粒度并發(fā)線程的具體實(shí)現(xiàn)過程。
1.正交相位檢波和脈沖壓縮。在軟件雷達(dá)處理信號(hào)時(shí),進(jìn)行正交相位檢波可以把中頻信號(hào)通過特殊方法轉(zhuǎn)變?yōu)榱阒蓄l的I、Q兩路正交信號(hào)。其實(shí)現(xiàn)過程為:通過高速模/數(shù)變換器的中頻信號(hào)能夠直接進(jìn)行采樣和變換過程得到數(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)的線程中。
我們可以通過仿真計(jì)算得到數(shù)字低通濾波器的相關(guān)系數(shù),并且可以根據(jù)紋理緩存將采樣數(shù)據(jù)的讀取速度不斷提高(這是因?yàn)镚PU的紋理存儲(chǔ)器有高速片上緩存)。因此可以在紋理存儲(chǔ)器存儲(chǔ)以權(quán)庫(kù)的形式表現(xiàn)的濾波器系數(shù),當(dāng)進(jìn)行正交相位檢波模塊時(shí)即可進(jìn)行讀取過程。在軟件雷達(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ù)即為開辟的顯存空間大小,開辟的顯存空間可以存儲(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í)需要通過線程索引號(hào)并發(fā)執(zhí)行來完成,其中每個(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)后串接一窄帶濾波器組,通過窄帶濾波器組實(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ǔ)起來,采用棋盤劃分的方式實(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í)將以棋盤劃分的方式把數(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ù)。然后將通過線程塊處理所得到的的每一列數(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ù)的頻率降低。在本文中采用共享存儲(chǔ)器數(shù)據(jù)復(fù)用可以避免由于重疊的數(shù)據(jù)元素引起的線程之間的訪問競(jìng)爭(zhēng)。
五、仿真分析與功能驗(yàn)證
以上所述為完整的雷達(dá)信號(hào)處理流程算法,為了對(duì)本文提出的基于多GPU并行處理雷達(dá)信號(hào)合理性,現(xiàn)記錄在不同的數(shù)據(jù)采樣頻率下處理雷達(dá)中頻數(shù)字信號(hào)的執(zhí)行時(shí)間,然后與CPU處理雷達(dá)信號(hào)的執(zhí)行時(shí)間進(jìn)行比較。軟件雷達(dá)系統(tǒng)的計(jì)算平臺(tái)采用NVIDIATeslaC2050的GPU以及IntelCorei7@2.67GHz的CPU。在對(duì)雷達(dá)信號(hào)進(jìn)行處理時(shí)GPU和CPU均采用相同的運(yùn)算模型和運(yùn)算參數(shù),而基于CPU的雷達(dá)信號(hào)處理算法中以O(shè)pen Multi-Processing展開并行執(zhí)行循環(huán)和迭代運(yùn)算,并且其對(duì)采樣數(shù)據(jù)進(jìn)行傅立葉變換是采用英特爾數(shù)學(xué)核心函數(shù)庫(kù)來實(shí)現(xiàn)的。
(一)仿真分析
在進(jìn)行仿真算例分析時(shí),采用線性調(diào)頻形式的雷達(dá)信號(hào),利用 8 點(diǎn) FFT 多普勒濾波器組和雙延遲線對(duì)消器實(shí)現(xiàn)動(dòng)目標(biāo)檢測(cè)以及顯示是。 設(shè)雷達(dá)中頻信號(hào)具有 6×107Hz 的中心頻率以及 1×107Hz 的中頻帶寬 ,為了顯示處理整體信號(hào)的執(zhí)行時(shí)間受采樣點(diǎn)數(shù)量影響的程度, 我們?cè)O(shè)雷達(dá)具有 0.6-2.0ms 的脈沖重復(fù)周期,所對(duì)應(yīng)的采樣點(diǎn)數(shù)量的變化為 4×104-1.6×105 。 在具有相同采樣點(diǎn)數(shù)的時(shí), 基于 CPU 處理的計(jì)算設(shè)備無法將處理信號(hào)的執(zhí)行時(shí)間縮短在 10 個(gè)脈沖重復(fù)周期內(nèi),而隨著并行 GPU 數(shù)量的不斷增多,處理信號(hào)的執(zhí)行時(shí)間不斷縮短,因此多任務(wù)并行化算法具有可擴(kuò)放性。
在采樣點(diǎn)數(shù)比較少的情況下,GPU*3 與 GPU*4 執(zhí)行速度很接近,并且與 GPU*1 相比執(zhí)行速度比并無明顯的提升現(xiàn)象;隨著采樣點(diǎn)數(shù)不斷增多, 基于多 GPU 的并行化算法執(zhí)行速度比具有明顯的優(yōu)勢(shì)。
(二)功能驗(yàn)證
在滿足信號(hào)處理的實(shí)時(shí)性前提下, 根據(jù)本文所提出的信號(hào)處理流程和算法, 利用某型雷達(dá)脈壓后提供的采樣數(shù)據(jù)進(jìn)行功能驗(yàn)證和分析,其中進(jìn)行實(shí)測(cè)數(shù)據(jù)的方位距離分辨單元為 4096×10000 個(gè)采樣點(diǎn) , 經(jīng)過正交相位檢波和脈沖壓縮 、MTI/MTD 以及脈沖積累和恒虛警檢測(cè)過程, 雷達(dá)信號(hào)中的噪聲和干擾信號(hào)得到了有效的抑制,其中的噪聲、云雨雜波強(qiáng)度、地物雜波等均有不同程度的降低,而且目標(biāo)回波的信噪比有了明顯的提高,及時(shí)被噪聲所覆蓋的信號(hào)也能被發(fā)現(xiàn)。 以上實(shí)例證明通過設(shè)計(jì)流程能較好的完成處理雷達(dá)信號(hào)過程。
六、結(jié)束語
基于多 GPU 并行運(yùn)算處理雷達(dá)信號(hào)算法, 能夠滿足軟件雷達(dá)標(biāo)準(zhǔn)化、模塊化、開放性等的相關(guān)要求。 通過仿真算法實(shí)例我們得知, 基于多 GPU 的多任務(wù)并行算法處理雷達(dá)信號(hào)時(shí)能夠滿足雷達(dá)工作的實(shí)時(shí)性。 也很好的證明 GPU 在加速雷達(dá)信號(hào)處理運(yùn)算上的可行性,具有很重要的現(xiàn)實(shí)意義。
參考文獻(xiàn):
[1]肖漢.基于CPU+GPU的影像匹配高效能異構(gòu)并行技術(shù)研究[D].武漢:武漢大學(xué), 2011(12):98-102.
[2]張波 薛正輝 任武等.基于圖形處理器的時(shí)域有限差分算法硬件加速[J].電波科學(xué)學(xué)報(bào), 2011(05):64-68.
[3]任新濤.雷達(dá)信號(hào)處理技術(shù)及仿真[J]. 現(xiàn)代電子技術(shù). 2012(03)