李曉敏,侯朝煥,鄢社鋒
(中國(guó)科學(xué)院聲學(xué)研究所聲學(xué)智能制導(dǎo)實(shí)驗(yàn)室,北京 100190)
傳統(tǒng)意義上的GPU主要針對(duì)圖形圖像處理和游戲加速,其功能受到一定限制。NVIDIA公司于2007年發(fā)布了CUDA以及相應(yīng)的GPU版本。這類GPU內(nèi)核有很多流處理器,每個(gè)流處理器內(nèi)包含相當(dāng)多數(shù)量的并行執(zhí)行單元,可以高效執(zhí)行各種模型的大規(guī)模科學(xué)計(jì)算,因此受到學(xué)術(shù)界和產(chǎn)業(yè)界的追捧,被廣泛應(yīng)用于金融、石油、天文學(xué)、流體力學(xué)、信號(hào)處理、電磁仿真、模式識(shí)別、圖像處理和視頻壓縮等眾多領(lǐng)域[1-7]。然而,目前國(guó)內(nèi)外將GPU通用計(jì)算應(yīng)用到聲納信號(hào)處理的案例還很少。
聲納信號(hào)處理的手段主要分為兩類。一類為以CPU為代表的處理平臺(tái),另一類為基于FPGA和DSP等大規(guī)模集成電路芯片的陣列信號(hào)處理平臺(tái)。前者耗時(shí)嚴(yán)重,實(shí)時(shí)性差;后者雖然能夠完成實(shí)時(shí)信號(hào)處理,但也具有開(kāi)發(fā)周期長(zhǎng)、板卡眾多和成本高等眾多缺點(diǎn)。
基于以上因素,本文采用基于CUDA編程架構(gòu)的GPU,實(shí)現(xiàn)了LFM及CW信號(hào)的幾種經(jīng)典波束形成和匹配濾波過(guò)程,該系統(tǒng)具有實(shí)時(shí)性、開(kāi)發(fā)周期短、性價(jià)比高和使用靈活等眾多優(yōu)點(diǎn)。
CUDA是一種將GPU作為數(shù)據(jù)并行計(jì)算設(shè)備的軟硬件體系,采用了比較容易掌握的類C語(yǔ)言進(jìn)行開(kāi)發(fā)。它是一個(gè)SIMD(Single Instruction Multiple Data)系統(tǒng),即一個(gè)程序編譯一次以后,CUDA將計(jì)算任務(wù)映射為大量的可以并行執(zhí)行的線程,并由擁有大量?jī)?nèi)核的硬件動(dòng)態(tài)調(diào)度和執(zhí)行這些線程,從而顯著提高運(yùn)算速度。如圖1所示,將一個(gè)可以并行化執(zhí)行的任務(wù)首先分配給若干個(gè)線程網(wǎng)格(Grid),其次將每個(gè)Grid內(nèi)的任務(wù)分配給若干個(gè)線程塊(Block),最后再將每個(gè)Block內(nèi)的任務(wù)細(xì)分給若干個(gè)線程(Thread)。Grid中的所有Blocks并行執(zhí)行,Block中的所有Threads并行執(zhí)行,這種兩層并行模型是 CUDA 最重要的創(chuàng)新之一[8-9]。
圖1 GPU內(nèi)線程結(jié)構(gòu)
圖2是一個(gè)簡(jiǎn)單的主動(dòng)聲納信號(hào)處理過(guò)程框圖。
圖2 主動(dòng)聲納信號(hào)處理基本框圖
接收基陣接收到M路回波信號(hào),通過(guò)波束形成實(shí)現(xiàn)DOA估計(jì),并將波束匯聚后送入匹配處理器,最終得到目標(biāo)距離和速度。
2.1.1 自適應(yīng) MVDR 波束形成器[10-11]
MVDR波束形成器的加權(quán)向量為
其中,as(θ)為θ方向上的導(dǎo)向向量。
方位譜為
其中,對(duì)Rx進(jìn)行特征分解為Rx=UΓUH,M為基陣陣元數(shù)
圖3為在GPU上實(shí)現(xiàn)MVDR波束形成器的任務(wù)分配圖。其中,s為掃描角度數(shù)目,一般取掃描范圍為[0:1:180]°,則s=181。
圖3 MVDR波束形成器GPU內(nèi)部kernel任務(wù)分配圖
2.1.2 LSMI波束形成器[10-11]
LSMI波束形成器的加權(quán)向量為
其中λ為對(duì)角加載量,經(jīng)驗(yàn)值為10。
方位譜為
的第k個(gè)元素;B為對(duì)角陣,Bk為B的第k個(gè)元素。圖4為在GPU上實(shí)現(xiàn)LSMI波束形成器的任務(wù)分配圖。
圖4 LSMI波束形成器GPU內(nèi)部kernel任務(wù)分配圖
2.1.3 RCB 波束形成器[10-11]
RCB波束形成器的加權(quán)向量為
方位譜為
其中,B為對(duì)角陣,λλk為B的第k個(gè)元素。令ε0為一個(gè)趨近于0的正小數(shù),則λ可通過(guò)(8)求解
圖5為在GPU上實(shí)現(xiàn)RCB波束形成器的任務(wù)分配圖。
對(duì)于RCB波束形成器,仍然使用s個(gè)Blocks,每個(gè)Block內(nèi)包含M個(gè)并行處理Threads。
圖5 RCB波束形成器GPU內(nèi)部kernel任務(wù)分配圖
寬帶波束形成器的實(shí)現(xiàn)包括頻域FFT實(shí)現(xiàn)和時(shí)域FIR實(shí)現(xiàn)兩種方式。本文采用頻域FFT實(shí)現(xiàn)方法,首先使用離散傅里葉變換將陣列數(shù)據(jù)分解為若干頻帶上的子窄帶,然后針對(duì)每個(gè)子帶進(jìn)行[0:1:180]°掃描窄帶波束形成,最后將各子帶方位譜累加從而估計(jì)出目標(biāo)方位[11],實(shí)現(xiàn)流程如圖6所示。
圖6 寬帶波束形成算法實(shí)現(xiàn)流程圖
其中,M為陣元數(shù),fftnum為采樣數(shù)據(jù)長(zhǎng)度,ST為分解后的特征值,UT為分解后的特征向量,angledis為波束掃描間隔角度。在寬帶波束形成器的實(shí)現(xiàn)過(guò)程中,只需要針對(duì)每個(gè)子窄帶使用2.1節(jié)介紹的過(guò)程即可。
匹配濾波常用來(lái)檢測(cè)淹沒(méi)在加性高斯白噪聲中的信號(hào),它是一種使輸出峰值信噪比最大的最優(yōu)濾波技術(shù)。在主動(dòng)聲納系統(tǒng)中,匹配濾波接收輸出波束的時(shí)間序列,并將處理后的結(jié)果直接作為檢測(cè)器的輸入,與門限進(jìn)行比較,進(jìn)而判定目標(biāo)是否存在[12]。
由于匹配濾波器對(duì)頻移信號(hào)沒(méi)有適應(yīng)性,因此需要產(chǎn)生發(fā)射信號(hào)的多種頻率版本,以匹配由多普勒頻移造成的接收信號(hào)頻率與發(fā)射信號(hào)頻率不一致,這個(gè)過(guò)程通常被稱為拷貝相關(guān)。圖7展示了采用匹配濾波的過(guò)程。
圖7 匹配濾波示意圖
上圖中,每個(gè)陰影區(qū)域即代表某頻移點(diǎn)上的拷貝相關(guān)??紤]到信號(hào)點(diǎn)數(shù)length(length=快拍數(shù)snapnum*FFT點(diǎn)數(shù) fftnum)遠(yuǎn)大于 GPU內(nèi)每個(gè)Block擁有的最大線程數(shù)512,無(wú)法將每個(gè)陰影區(qū)的執(zhí)行單獨(dú)分配給1個(gè)Block。因此,將各個(gè)陰影區(qū)域之間串行執(zhí)行,而每個(gè)陰影區(qū)域內(nèi)部并行執(zhí)行。并行任務(wù)分配給snapnum個(gè)Blocks,每個(gè)Block內(nèi)有fftnum個(gè)Threads,所有的Threads均完成一次點(diǎn)乘。
表1 硬件平臺(tái)
本文采用諾基亞公司開(kāi)發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序框架Qt實(shí)現(xiàn)系統(tǒng)輸入輸出界面,圖8所示為系統(tǒng)主界面。
圖8 系統(tǒng)主界面
右側(cè)藍(lán)色方框內(nèi)為目標(biāo)參數(shù)輸入?yún)^(qū)和系統(tǒng)參數(shù)輸入?yún)^(qū),左側(cè)紫色方框內(nèi)為信號(hào)處理結(jié)果顯示區(qū)。
假設(shè)目標(biāo)在[40~140]°之間以5°間隔來(lái)回運(yùn)動(dòng),設(shè)置完成各項(xiàng)參數(shù)后,點(diǎn)擊“開(kāi)始”按鈕,輸出方位譜圖將會(huì)顯示每個(gè)時(shí)刻的方位譜,輸出方位歷程圖將會(huì)記錄下所有時(shí)刻目標(biāo)的方位情況,并一幀一幀刷新。點(diǎn)擊方位歷程圖上任意一點(diǎn),將會(huì)在輸出頻譜圖上顯示相應(yīng)時(shí)間和方位上的輸出信號(hào)頻譜。
同時(shí),每個(gè)時(shí)刻目標(biāo)方位、目標(biāo)距離和目標(biāo)速度都以文字形式顯示在主界面最左側(cè)。由于該系統(tǒng)具備實(shí)時(shí)性,處理時(shí)間始終小于采樣時(shí)間。
點(diǎn)擊主界面上“顯示換能器通道數(shù)據(jù)”按鈕將彈出一個(gè)新界面,如圖9所示。通過(guò)下拉框選擇想查看的通道,點(diǎn)擊“確定”按鈕,該界面將與主界面同步顯示當(dāng)前時(shí)刻某換能器通道輸入信號(hào)波形及其頻譜。
圖9 顯示換能器通道數(shù)據(jù)界面
在圖8中所示參數(shù)的基礎(chǔ)上,增大陣元數(shù)為32,增大子帶數(shù)為21,減小掃描間隔為1°,從而增大掃描角度次數(shù)。表2展示了Matlab、CPU和GPU三種平臺(tái)在此參數(shù)條件下采用不同的算法執(zhí)行處理過(guò)程的時(shí)間以及加速比。
表2 各種平臺(tái)執(zhí)行時(shí)間及加速比
表2中所示的4種處理算法,從上到下運(yùn)算量依次增大。從表2可以看出,處理同樣的數(shù)據(jù),GPU相比于CPU要快兩倍多。當(dāng)數(shù)據(jù)量增大到一定程度時(shí),Matlab和CPU已經(jīng)無(wú)法在采樣一幀數(shù)據(jù)的時(shí)間內(nèi)完成對(duì)上一幀數(shù)據(jù)的處理,而GPU卻仍然可以滿足處理的實(shí)時(shí)性。
在不考慮實(shí)時(shí)性的前提下,繼續(xù)增大運(yùn)算量,上面四個(gè)表格中的加速比會(huì)越來(lái)越大,GPU的加速優(yōu)勢(shì)會(huì)越來(lái)越明顯。圖10和圖11分別展示了在表2所示參數(shù)基礎(chǔ)上,CPU和GPU這兩種平臺(tái)執(zhí)行“LSMI+匹配處理”的時(shí)間隨著陣元數(shù)和子帶數(shù)增加的變化趨勢(shì)。
圖10 各平臺(tái)執(zhí)行時(shí)間隨陣元數(shù)M的變化
圖11 個(gè)平臺(tái)執(zhí)行時(shí)間隨子帶數(shù)subband的變化
可以看出,當(dāng)數(shù)據(jù)量增大時(shí),GPU相較于CPU的執(zhí)行速度優(yōu)勢(shì)更加明顯,這正應(yīng)證了GPU處理大數(shù)據(jù)量的優(yōu)良性能。
本文設(shè)計(jì)了一種主動(dòng)聲納信號(hào)處理系統(tǒng),采用具有眾多并行內(nèi)核的GPU實(shí)現(xiàn)其實(shí)時(shí)性。該系統(tǒng)相較于CPU有約一個(gè)數(shù)量級(jí)的加速,相較于同樣處理速度的DSP平臺(tái),則體現(xiàn)了開(kāi)發(fā)周期短、成本低和操作簡(jiǎn)單等優(yōu)點(diǎn)。隨著聲納信號(hào)處理數(shù)據(jù)量的日益增大,將GPU強(qiáng)大的通用計(jì)算能力應(yīng)用到聲納領(lǐng)域的各個(gè)環(huán)節(jié),是一個(gè)值得繼續(xù)深入研究的課題。
[1]杜歆,顏瑞,劉加海.監(jiān)控?cái)z像機(jī)視頻去隔行和CUDA加速[J].傳感技術(shù)學(xué)報(bào),2010,23(3):393-398.
[2]趙欣,李鳳霞,戰(zhàn)守義,等.基于粒子系統(tǒng)實(shí)現(xiàn)船舶航跡仿真的加速方法[J].大連海事大學(xué)學(xué)報(bào),2008,34(1):54-57.
[3]程廣斌,馬承華,郝立巍.基于圖形處理器加速的醫(yī)學(xué)圖像分割算法研究[J].醫(yī)療衛(wèi)生裝備,2008,29(2):6-8.
[4]李蔚清,吳慧中.一種基于GPU的雷達(dá)探測(cè)區(qū)域快速可視化方法[J].系統(tǒng)仿真學(xué)報(bào),2008,(20):323-327.
[5]Balz T,Stilla U.Hybrid GPU-Based Single-and Double-Bounce SAR Simulation[J].IEEE Transactions on Geoscience and Remote Sensing,2009,47(10):3519-3529.
[6]柳彬,王開(kāi)志,劉興釗,等.利用CUDA實(shí)現(xiàn)的基于GPU的SAR成像算法[J].信息技術(shù),2009,11:62-67.
[7]Yubo Tao,Hai Lin,Hujun Bao.GPU-Based Shooting and Bouncing Ray Method for Fast RCS Prediction[J].IEEE Transactions on Antennas and Propagation,2010,58(2):494-502.
[8]Garland M,Le Grand S,Nickolls J,et al.Parallel Computing Experiences with CUDA[J].Micro,IEEE,2008,28(4):13-27.
[9]張舒,諸艷麗,趙開(kāi)勇,等.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,2009:1-100.
[10]朱埜.主動(dòng)聲納檢測(cè)信息原理[M].北京:海洋出版社,1990:32-50.
[11]鄢社鋒,馬遠(yuǎn)良.傳感器陣列波束優(yōu)化設(shè)計(jì)及應(yīng)用[M].北京:科學(xué)出版社,2009:48-93.
[12]豐平.基于VPX規(guī)范的新型陣列信號(hào)處理機(jī)系統(tǒng)設(shè)計(jì)[D].北京:中科院,2010:18-19.