詹 飛,馬曉川,吳永清,王 磊,楊 力
(1.中國科學(xué)院聲學(xué)研究所,北京 100190; 2.中國科學(xué)院大學(xué),北京 100049)
現(xiàn)代主動(dòng)聲吶系統(tǒng)常采用大時(shí)間帶寬積的線性調(diào)頻(Linear Frequency Modulated,LFM)信號(hào)[1-2]來提高對水下目標(biāo)速度和距離的估計(jì)精度。LFM信號(hào)帶寬或脈寬增加會(huì)帶來信號(hào)多普勒容限的變化,傳統(tǒng)單通道匹配濾波處理方法由于未考慮多普勒效應(yīng)的影響,會(huì)導(dǎo)致系統(tǒng)檢測性能的損失。由于LFM信號(hào)在分?jǐn)?shù)階傅里葉變換(Fractional Fourier Transform,F(xiàn)RFT)域的強(qiáng)能量聚集特性[3],F(xiàn)RFT已廣泛應(yīng)用于LFM信號(hào)的檢測與估計(jì)[4-6]。在主動(dòng)聲吶系統(tǒng)水下目標(biāo)探測方面,利用FRFT可提升低信噪比環(huán)境[7]和強(qiáng)混響背景[8-9]下系統(tǒng)的檢測性能,實(shí)現(xiàn)對LFM回波信號(hào)的檢測與參數(shù)估計(jì),進(jìn)而獲得目標(biāo)距離與速度的有效估計(jì)信息。但理論計(jì)算表明相同條件下FRFT算法的計(jì)算復(fù)雜度是單副本匹配濾波方法的數(shù)百倍,這限制了算法的應(yīng)用環(huán)境,尤其是在具有強(qiáng)實(shí)時(shí)性處理要求的無人水下航行器(Unmanned Underwater Vehicle,UUV)平臺(tái)上的應(yīng)用。傳統(tǒng)基于數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)的UUV信號(hào)處理系統(tǒng)受航行器體積、重量和功耗等的約束,系統(tǒng)規(guī)模和運(yùn)算能力無法大幅提升,導(dǎo)致FRFT方法的實(shí)現(xiàn)難以滿足UUV平臺(tái)的實(shí)時(shí)處理要求。
近年來,具有眾核處理架構(gòu)、高存儲(chǔ)器帶寬以及強(qiáng)大運(yùn)算能力的圖形處理器(Graphics Processing Unit,GPU)在雷達(dá)和聲吶領(lǐng)域得到了廣泛的應(yīng)用。與傳統(tǒng)實(shí)現(xiàn)方案相比,GPU實(shí)現(xiàn)方案通??色@得數(shù)倍至數(shù)百倍的性能加速[10-12]。在UUV平臺(tái)信號(hào)處理系統(tǒng)設(shè)計(jì)方面,文獻(xiàn)[13]研究表明嵌入式GPU平臺(tái)比傳統(tǒng)DSP平臺(tái)更有優(yōu)勢,能滿足UUV探測系統(tǒng)低功耗和高實(shí)時(shí)性的應(yīng)用需求。
本文首先介紹了基于FRFT的LFM回波檢測算法實(shí)現(xiàn)流程,分析了算法的計(jì)算復(fù)雜度。隨后通過優(yōu)化算法的數(shù)據(jù)處理流程和設(shè)計(jì)算法的GPU映射框架,降低了算法計(jì)算復(fù)雜度,并使算法可以在GPU上高效并行實(shí)現(xiàn)。最后利用UUV平臺(tái)湖上實(shí)驗(yàn)數(shù)據(jù)對GPU優(yōu)化實(shí)現(xiàn)方案進(jìn)行了測試。
基于FRFT算法的LFM回波檢測流程如圖1所示。假設(shè)UUV平臺(tái)發(fā)射脈寬為Δt、起始頻率為fl、調(diào)頻斜率為m0的LFM脈沖信號(hào),平臺(tái)與目標(biāo)相對徑向速度為vd。圖1中GPU端主要實(shí)現(xiàn)對接收回波按窗(處理窗寬T≥Δt,系統(tǒng)采樣率fs,處理窗寬N=Tfs)執(zhí)行多方向波束形成、以變換階數(shù)p為變量的FRFT,以及對歸一化結(jié)果的峰值搜索等過程。執(zhí)行FRFT運(yùn)算前可根據(jù)搜索目標(biāo)速度范圍確定理論最佳變換階數(shù)p的范圍,公式如下:
(1)
式中η≈1+2vd/c為目標(biāo)多普勒壓縮因子,上式中p和η均表示為向量形式。FRFT的實(shí)現(xiàn)采用離散采樣型FRFT快速算法[14],公式為
(2)
(3)
(4)
結(jié)合處理窗編號(hào)即可計(jì)算出目標(biāo)回波時(shí)延,從而得到目標(biāo)距離估計(jì)。
圖1 基于FRFT的LFM回波檢測流程
根據(jù)變換階數(shù)的獨(dú)立性,所有變換階數(shù)的FRFT運(yùn)算可并行執(zhí)行。在此基礎(chǔ)上,本文將經(jīng)過數(shù)據(jù)處理流程優(yōu)化后的回波檢測算法分為以下幾個(gè)步驟:
(2)C_MUL1步驟:插值后的信號(hào)y與LFM信號(hào)1進(jìn)行時(shí)域乘法運(yùn)算得
(5)
(3)C_CONV步驟:將g與LFM信號(hào)2進(jìn)行卷積運(yùn)算。將時(shí)域卷積轉(zhuǎn)換到頻域相乘,結(jié)果為
(6)
(7)
(8)
經(jīng)過數(shù)據(jù)處理流程優(yōu)化后各步驟的計(jì)算復(fù)雜度公式如表1所示。式中M為基陣陣元數(shù),N為一幀數(shù)據(jù)長度(處理窗寬),為利用FFT快速實(shí)現(xiàn),N通常取2的整數(shù)次冪,卷積步驟中FFT運(yùn)算的信號(hào)最小長度為16N。NB為執(zhí)行波束形成的波束數(shù)量,NBW為工作頻帶內(nèi)頻域子帶數(shù)量,NP為變換階數(shù)p的數(shù)量,Om和Oa分別表示復(fù)數(shù)乘法和復(fù)數(shù)加法所需的浮點(diǎn)運(yùn)算次數(shù),并且有Om=6,Oa=2。當(dāng)M=32,N=8192,NBW=768,NB=21,NP=81時(shí)各步驟計(jì)算復(fù)雜度見表1。
UUV平臺(tái)信號(hào)處理系統(tǒng)對回波數(shù)據(jù)進(jìn)行采集和處理時(shí),為保證在單個(gè)處理窗內(nèi)獲得完整目標(biāo)回波,一般要求采樣數(shù)據(jù)按照50%重疊,并且處理窗寬為兩倍發(fā)射信號(hào)脈寬。為滿足實(shí)時(shí)性要求,系統(tǒng)對單窗數(shù)據(jù)的處理時(shí)間應(yīng)小于半窗數(shù)據(jù)的更新時(shí)間N/(2fs)。處理窗寬為8192點(diǎn)時(shí),數(shù)據(jù)更新時(shí)間約120 ms。實(shí)際測試結(jié)果顯示,在UUV平臺(tái)嵌入式GPU處理系統(tǒng)中執(zhí)行16 N點(diǎn)批處理FFT運(yùn)算的計(jì)算吞吐量約80 GFlops。C_CONV步驟中FFT的計(jì)算復(fù)雜度為18.95 GFloats,運(yùn)算時(shí)間約237 ms,無法滿足UUV平臺(tái)主動(dòng)聲吶系統(tǒng)的采集數(shù)據(jù)更新時(shí)間要求,因此實(shí)際應(yīng)用時(shí)需要適當(dāng)減少波束數(shù)量NB或變換階數(shù)數(shù)量NP。
表1 FRFT算法各步驟計(jì)算復(fù)雜度
算法部分步驟涉及前后補(bǔ)零操作,但補(bǔ)零方式不適合采用大數(shù)據(jù)塊拷貝方式高效實(shí)現(xiàn)。此外,數(shù)據(jù)的重復(fù)利用率也較低,導(dǎo)致訪存時(shí)間開銷極大限制了并行程序性能。為降低算法計(jì)算復(fù)雜度,使算法易于高效并行實(shí)現(xiàn),本文對處理流程進(jìn)行了優(yōu)化,包括以下幾個(gè)方面:
(1)圖2(a)和2(b)分別給出了基于頻域DFT的寬帶波束形成和基于FFT的兩倍插值步驟的實(shí)現(xiàn)過程。波束形成輸出時(shí)域數(shù)據(jù)需要經(jīng)過Hilbert變換后,才能進(jìn)行FRFT運(yùn)算。將波束形成和兩倍插值步驟合并為BF_IN步驟,省略將頻域波束加權(quán)數(shù)據(jù)通過IFFT運(yùn)算轉(zhuǎn)換為時(shí)域數(shù)據(jù)的過程,直接將頻域數(shù)據(jù)及其變換形式寫入對應(yīng)的頻點(diǎn)位置,再執(zhí)行IFFT運(yùn)算,即可得到兩倍插值后的采樣數(shù)據(jù)解析形式,如圖2(c)所示。
圖2 BF_IN步驟實(shí)現(xiàn)流程
圖3給出該步驟優(yōu)化前后計(jì)算復(fù)雜度的變化趨勢。該步驟的計(jì)算復(fù)雜度隨波束數(shù)量NB的增加而線性增加。當(dāng)NB=3時(shí),優(yōu)化前計(jì)算復(fù)雜度約0.036 GFloats,優(yōu)化后計(jì)算復(fù)雜度約0.024 GFloats,計(jì)算復(fù)雜度降低約33%。當(dāng)NB=21時(shí),優(yōu)化前計(jì)算復(fù)雜度約0.152 GFloats,優(yōu)化后計(jì)算復(fù)雜度約0.069 GFloats,計(jì)算復(fù)雜度降低約54.6%。隨著波束數(shù)量的增加,計(jì)算復(fù)雜度顯著降低。
圖3 優(yōu)化前后BF_IN步驟計(jì)算復(fù)雜度變化
(2)由于CPU和GPU端的數(shù)據(jù)傳輸速率較慢,為精簡數(shù)據(jù)傳輸過程中的冗余操作,提升程序執(zhí)行效率,可預(yù)先將部分?jǐn)?shù)據(jù)寫入硬盤文件。在系統(tǒng)主程序初始化時(shí)將文件導(dǎo)入系統(tǒng)內(nèi)存,保證GPU程序執(zhí)行時(shí)可直接訪問所需數(shù)據(jù)。分析回波檢測算法的實(shí)現(xiàn)流程,首先根據(jù)波束方向和工作頻帶范圍,生成寬帶常規(guī)波束形成的波束加權(quán)向量,存儲(chǔ)到硬盤文件。另外,根據(jù)FRFT變換階數(shù)范圍,生成LFM信號(hào)1時(shí)域數(shù)據(jù)以及LFM信號(hào)2頻域數(shù)據(jù),存儲(chǔ)到硬盤文件。在程序初始化時(shí)完成加權(quán)向量文件和LFM信號(hào)的讀取操作。
圖4給出了優(yōu)化前后算法總計(jì)算復(fù)雜度的變化趨勢,算法的總計(jì)算復(fù)雜度隨波束數(shù)量NB和變換階數(shù)數(shù)量NP的增加而線性增加。當(dāng)NB=3,NP=81時(shí),優(yōu)化前算法的計(jì)算復(fù)雜度約為8.47 GFloats,優(yōu)化后算法的計(jì)算復(fù)雜度約為5.68 GFloats,計(jì)算復(fù)雜度降低約33%。
圖4 優(yōu)化前后算法總的計(jì)算復(fù)雜度變化
本文采用NVIDIA公司統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA)支持的Unified Memory編程模型,用于簡化內(nèi)存管理。表2給出了LFM回波檢測算法的CUDA實(shí)現(xiàn)流程。不同變換階數(shù)的FRFT運(yùn)算的獨(dú)立性使算法具備了數(shù)據(jù)級(jí)并行的特點(diǎn),適合于在GPU上并行實(shí)現(xiàn)。在此基礎(chǔ)上,本文設(shè)計(jì)了變換階數(shù)p在0.5≤|p|≤1.5范圍內(nèi)時(shí)算法的GPU映射框架,如圖5所示。
圖5 LFM回波檢測算法的GPU映射框架
根據(jù)圖1給出的回波檢測流程,在GPU端實(shí)現(xiàn)寬帶波束形成、FRFT運(yùn)算,以及對歸一化結(jié)果的峰值搜索等步驟,在CPU端實(shí)現(xiàn)門限判別和目標(biāo)參數(shù)計(jì)算步驟。GPU端的實(shí)現(xiàn)主要包括FFT、IFFT以及向量元素對應(yīng)相乘運(yùn)算。其中FFT和IFFT步驟利用CUDA cuFFT庫實(shí)現(xiàn),SEARCH步驟利用CUDA cuBLAS庫實(shí)現(xiàn)。向量元素對應(yīng)相乘運(yùn)算過程通過設(shè)計(jì)CUDA核函數(shù)實(shí)現(xiàn)。核函數(shù)線程塊維度的設(shè)計(jì)遵循硬件資源利用率最大化的原則,計(jì)算所需數(shù)據(jù)也按照SoA方式在內(nèi)存中排列以實(shí)現(xiàn)線程的合并訪存[13]。
測試平臺(tái)軟硬件參數(shù)如表3所示,為方便驗(yàn)證算法優(yōu)化效果,可先在桌面級(jí)GPU平臺(tái)上對算法的實(shí)現(xiàn)方案進(jìn)行不斷優(yōu)化,再將并行程序直接移植到嵌入式GPU平臺(tái)進(jìn)行測試即可。GPU映射框架中四個(gè)核函數(shù)都是向量元素點(diǎn)乘運(yùn)算,將線程塊設(shè)置為一維,程塊維度分別為128、256、256、256。
表2 LFM回波檢測算法實(shí)現(xiàn)流程
測試數(shù)據(jù)選用2015年冬季UUV平臺(tái)在千島湖某水域?qū)嶒?yàn)記錄的LFM脈沖回波數(shù)據(jù)。實(shí)驗(yàn)過程中UUV運(yùn)動(dòng)速度恒定,模擬點(diǎn)目標(biāo)與UUV平臺(tái)深度相同,初始目標(biāo)方位為θb=(-7°,0°),目標(biāo)距離r0=1750 m,目標(biāo)速度為vt=-2 m/s。
表3 測試平臺(tái)參數(shù)
UUV信號(hào)處理系統(tǒng)設(shè)計(jì)工作頻帶內(nèi)頻點(diǎn)數(shù)NBW=768,數(shù)據(jù)處理幀長度N=8192,并按照50%數(shù)據(jù)重疊方式處理數(shù)據(jù)。通過性能預(yù)估波束數(shù)量超過3時(shí),嵌入式GPU平臺(tái)處理無法滿足實(shí)時(shí)性要求。因此,設(shè)置最大波束數(shù)量為NB=3,檢測速度范圍為-4~4 m/s,速度間隔為0.1 m/s,則執(zhí)行FRFT的變換階數(shù)p的數(shù)量NP=81。
表4給出了NB=3,NP=81條件下處理一窗數(shù)據(jù)時(shí)幾種方案執(zhí)行時(shí)間。在桌面級(jí)平臺(tái)上,與CPU實(shí)現(xiàn)方案相比,GPU方案能獲得超過9倍的性能加速。對于計(jì)算復(fù)雜度較低的步驟如BF_IN步驟,GPU方案僅獲得約2.33倍性能加速。加速效果不明顯,原因?yàn)楹撕瘮?shù)的啟動(dòng)具有較大而相對固定的時(shí)間開銷,當(dāng)計(jì)算任務(wù)的計(jì)算復(fù)雜度較低時(shí),核函數(shù)啟動(dòng)時(shí)間開銷占比較大且不可忽略。另外,C_CONV步驟的計(jì)算復(fù)雜度約5.6 GFloats,GPU方案實(shí)現(xiàn)該步驟的計(jì)算吞吐量約243 GFlops,獲得約10倍性能加速,這充分體現(xiàn)了GPU在處理大規(guī)模并行計(jì)算任務(wù)時(shí)的優(yōu)勢。將GPU并行程序移植到嵌入式平臺(tái)上,執(zhí)行時(shí)間約89 ms,小于UUV平臺(tái)半窗采集數(shù)據(jù)的更新時(shí)間,滿足實(shí)時(shí)性需求。
表4 兩種平臺(tái)三種實(shí)現(xiàn)方案對比
利用GPU連續(xù)處理單次實(shí)驗(yàn)航行任務(wù)中28 ping共546窗數(shù)據(jù),每窗數(shù)據(jù)處理時(shí)間如圖7所示。圖中顯示在嵌入式GPU平臺(tái)上,處理所有窗數(shù)據(jù)的時(shí)間始終小于半窗數(shù)據(jù)的更新時(shí)間,能夠滿足UUV數(shù)據(jù)處理的實(shí)時(shí)性要求,表明FRFT算法可以應(yīng)用于以嵌入式GPU平臺(tái)為處理核心的UUV聲吶信號(hào)處理系統(tǒng)。
圖7 所有窗數(shù)據(jù)處理時(shí)間
針對FRFT方法因計(jì)算復(fù)雜度高而無法滿足UUV平臺(tái)實(shí)時(shí)處理要求的問題,本文提出采用GPU,通過優(yōu)化LFM回波檢測算法處理流程和設(shè)計(jì)算法的GPU映射框架,使算法的計(jì)算復(fù)雜度降低約33%,并使算法可在GPU上高效并行實(shí)現(xiàn)。湖上實(shí)驗(yàn)數(shù)據(jù)測試結(jié)果表明,嵌入式GPU方案處理一窗LFM回波數(shù)據(jù)的時(shí)間始終小于半窗數(shù)據(jù)更新時(shí)間,滿足了UUV數(shù)據(jù)處理的實(shí)時(shí)性要求。因此,F(xiàn)RFT方法可以應(yīng)用于以嵌入式GPU平臺(tái)為處理核心的UUV聲吶信號(hào)處理系統(tǒng)。
下一步將深入研究如何進(jìn)一步減小離散FRFT算法的計(jì)算復(fù)雜度,從而可在更多波束方向上實(shí)現(xiàn)對更大速度范圍水下目標(biāo)的有效探測。