何林立+祝麗華+徐保根+康文臣
摘 要:通過CPU和GPU的混合計算結構搭建的信號和數據處理系統,搭配數據采集卡或高速光傳輸網絡,實現了短波寬帶測向的實時處理。該方法的處理速度相較于MATLAB和CPU平臺可以提高1~2個數量級,相較于同等處理速度的多DSP平臺則體現了開發周期短、費用低、工作量小和可靠性高等眾多優勢。
關鍵詞:GPU 短波 寬帶測向
中圖分類號:TN97 文獻標識碼:A 文章編號:1672-3791(2016)06(c)-0014-02
在陣列信號處理中,通常采用多個DSP核并行運算、多個FPGA陣列或者DSP+FPGA的處理架構,完成針對多路寬帶數據的運算處理。以20圓陣的短波寬帶測向為例,當信號帶寬變大時,常規的自研高速信號實時處理平臺往往因為架構復雜,開發周期長,可擴展性較差,導致產品研發過程大部分都花費在硬件調試和維護上,不利于產品的更新換代。
1 寬帶測向的GPU實現方案設計
自從2006年NVIDIA公司推出GPU的通用編程模型CUDA以來,基于CUDA架構的通用并行運算系統已開始廣泛應用在國防工業各個領域。CUDA簡化了GPU的開發流程,運用C語言即可進行GPU的通用計算編程。因此,該文在進行方案設計之前,將基于CUDA進行快速寬帶測向算法的實現,先與同樣具有很強并行計算能力的FPGA對比,分析基于GPU進行快速寬帶測向的可行性和優勢。
1.1 GPU完成快速寬帶測向的可行性
使用FPGA和GPU對各種算法進行加速是比較合適的選擇,但二者的應用方式還有一定差異。
首先,GPU使用C語言進行開發,FPGA使用VHDL和Verilog等描述性語言開發,對軟件開發人員來說,FPGA開發起點偏高,需要了解硬件電路知識,更重要的是高速信號處理的FPGA設計需要調試硬件平臺,而且比較容易出現時序問題,會加大開發難度,恰恰相反,這些都是GPU的優勢所在,不需要學習新的編程語言,不需要維護硬件平臺,沒有時序設計困擾。
其次,從成本和功耗方面分析,在同等處理能力的情況下,GPU顯卡由于大量商用的原因,價格相對較低,同時,計算資源較多的高端FPGA較難購買,價格偏高,還涉及到硬件制版費用,時間成本和人力成本也需考慮。在同等處理能力的情況下,FPGA的功耗屬于動態功耗,使用資源越多功耗越大,不過,一般要低于GPU。
綜上所述,在開發難度、體積和成本等方面GPU有一定的優勢,FPGA在功耗方面有一定的節省,不過,要是應用多片FPGA芯片進行組合運算時,還要考慮綜合功耗。
1.2 基于GPU的并行測向算法
由于時間分辨率和頻率分辨率是倒數關系,時間分辨率越小,測向速度越快,同時頻率分辨率就會越粗,測向準確度就會下降。在基于二維寬帶測向算法中,減小FFT計算數據,可以加快測向速度,但要以犧牲頻率分辨率為代價。為了獲得高精度的快速測向性能,一般考慮在高采樣率下進行寬帶二維測向,如此一來,大數據量的FFT運算和二維譜峰搜索將耗費大量時間。由于各通道、各頻點測向運算的相對獨立性,可以使用GPU進行并行運算,加速FFT運算過程,在不降低頻率分辨率的情況下減少測向時間。
CUDA提供了一個CUFFT運算庫,可以高效地并行完成多個一維FFT運算,最多可以實現800萬點的FFT運算。文中測向陣元數為20陣元,寬帶條件下基帶IQ數據的采樣頻率為9.830 4 MHz,測向帶寬8 MHz。為了兼顧測向速度和測向靈敏度要求,單通道FFT點數為8 192點,帶內測向點數為6 666點,此時頻率分辨率約為1.2 kHz,時間分辨率為0.8 ms。測向流程如圖1所示。
瞬時測向帶寬為8 MHz,先采集20通道單幀數據0.8 ms進行FFT運算,選取信噪比超過門限的信號進行測向,極端情況下,考慮6 666個頻點全部測向。
先完成20通道的FFT運算,每路FFT的采樣點數為8 192點,一次并行運算的FFT點數是16 3840,小于800萬,滿足CUFFT庫的使用要求。
具體捕獲流程如下。
(1)申請3個顯存塊,顯存塊1用于接收內存塊1中的基帶采樣數據,使用不同頻點的載波信號,分別對20個通道的基帶數據進行FFT運算。將20個通道的采樣數據,按頻點數順序存儲在1塊內存里。
(2)顯存2用于接收內存塊2中的校正庫和理論庫數據,顯存3用于存儲運算結果。
(3)在顯存3中開展二維譜峰搜索,快速完成角度遍歷運算,給出所有待測頻點的方位角、仰角信息,同時結果仍保留在顯存3。
(4)將運算結果拷貝到主機內存,釋放GPU的運算資源。
2 測向方案的試驗驗證
2.1 試驗條件
(1)硬件環境:CPU是Intel Xeon E7-8893 v2芯片,芯片核心數為6,主頻為3.2 GHz;顯卡型號是Tesla K80,24GB 384 bit GDDR5顯存, 499 2個CUDA并行運行處理核心;內存為32 GB。
(2)軟件環境:32位的Windows 7操作系統,軟件開發環境為微軟公司的VS2008,還利用了NVIDIA公司提供的CUDA Driver、CUDAToolkit和CUDA SDK。
(3)實驗數據:使用短波多通道接收機采集的基帶數據,采樣頻率為9.830 4 MHz。
2.2 試驗結果與分析
分別基于CPU和GPU完成20通道所有頻點的搜索測向,寬帶二維測向算法如圖4所示,運算結果和運行時間如表1所示,其中GPU代碼運行時間是使用NAVIDA提供的專用計時API測定的,CPU的運行時間是使用MFC提供的計時器函數測定的。
在GPU和CPU中完成的算法是相同的,對二維測向的運算結果完全一致。但是,完成以上的測向過程,基于CPU的代碼需要約2 s的時間,而基于GPU加速后的代碼只需要約100 ms的時間,即基于GPU的運算速度大大提升了。
采用等效延長線模擬固定方位角和俯仰角的信號來向,使用GPU運算過程中保存的峰值和頻點二維搜索的結果如圖3所示,圖中坐標X表示信號俯仰角;Y表示信號方位角;Z表示相關系數。
3 結語
為了提高寬帶二維測向速度,結合寬帶二維測向的并行運算特點和GPU快速并行運算能力的優勢,提出了一種基于GPU的測向算法進行并行計算,以最大程度地提高測向速度。通過真實的中頻數據試驗驗證表明,使用GPU實現各通道和各頻點的并行捕獲與基于CPU實現的串行方式的運算結果是相同的,使用GPU的測向運算時間沒有達到理論值。為了充分發揮GPU的并行運算優勢,使用GPU設計捕獲方案應盡可能讓GPU一次處理更多的數據。
參考文獻
[1] 張舒,褚艷利.GPU高性能運算之CUDA[M].北京:中國水利水電出版社,2009.
[2] Jason Sanders,Edward Kandrot,著.GPU高性能編程CUDA實戰[M].聶雪軍,譯.北京:機械工業出版社,2011.