文/竇澤華 黎賀
隨著作戰(zhàn)場景的日益復雜,以及雷達技術的不斷發(fā)展,雷達處理通道數(shù)越來越多,帶寬(采樣率)越來越高。以泰勒斯公司的GM200雷達為例,處理通道數(shù)大于20個,采樣率5MHz,總數(shù)據(jù)率大于6.4Gbps;另一方面現(xiàn)代信號處理技術快速發(fā)展,運算量較傳統(tǒng)雷達信號處理技術大幅增加。高數(shù)據(jù)率、大運算量,對后端處理的需求越來越高。
幸運的是處理器的能力也在不斷進步,多核CPU,眾核GPU的出現(xiàn),使得高數(shù)據(jù)率、大運算量的處理成為可能。以目前市場上的商用服務為例,四顆CPU(E5或E7)架構的服務器,最大有60個計算核。如此多的計算核(并且按照發(fā)展趨勢CPU核的數(shù)量會越來越多),雷達信息處理軟件該如何設計,以便充分發(fā)揮其計算性能。
本文以實際工程中的某產(chǎn)品為例,探討多核CPU下的使用方案,并在實施過程中對不必要的多余內存操作進行優(yōu)化,進一步提高處理通過率。為后續(xù)雷達高數(shù)據(jù)率、大運算量處理提供工程參考。
某雷達通道數(shù)24個,采樣率5MHz,分6根光纖,每個光纖傳輸4個通道數(shù)據(jù),總數(shù)據(jù)量6.7Gbps。如圖1所示。
雷達陣面下行的每個光纖內4個通道的數(shù)據(jù)打包格式如圖2所示。
對信息處理而言,第一級處理的任務是將6根光纖數(shù)據(jù)接收緩存,并完成光纖之間的數(shù)據(jù)同步、通道數(shù)據(jù)拆分(將屬于同一個通道的數(shù)據(jù)整理在一起),以方便后續(xù)處理。其對內存數(shù)據(jù)的頻繁操作,使其成為整個信息處理的瓶頸。本文就以通道拆分為例,研究多核CPU的高數(shù)據(jù)率、大運算量的應用。
圖2:光纖內多通道數(shù)據(jù)格式
圖3:方法(1)處理器執(zhí)行示意圖
圖4:方法(2)處理器執(zhí)行示意圖
本文使用基于2顆Intel志強E5處理器的刀片服務器作為處理平臺,其關鍵參數(shù)如下:
(1)計算資源:雙路Intel Xeon E5-2648L v3(12核,1.8GHz)
(2)內存資源:板載DDR4 2133MT/s 64GB
該處理平臺除去操作系統(tǒng)、中間件驅動使用的4個核,總計有20個核用于計算。
根據(jù)上述需求,通道拆分需要完成6根光纖數(shù)據(jù)的拆分重組,基于多核處理器有多種并行處理方法:
方法(1)按光纖數(shù)量并行,6根光纖并行處理,按照此方法,只有6個核在運行,有14個核處于空閑狀態(tài),處理時間T1;
方法(2)按24個通道并行,由于處理平臺只有20個計算核,一次并行20個通道,剩下的4個通道還得處理一遍,此時會有16個核處于空閑狀態(tài),處理時間2T2;
方法(3)按數(shù)據(jù)點數(shù)并行,一次并行20個點,依次執(zhí)行,最后一次執(zhí)行可能不足20個點,處理時間
三種方法的并行示意圖如圖3、圖4、圖5所示。
方案(1)和方案(2)并行顆粒度較粗,均會出現(xiàn)多個核的空閑,且每次執(zhí)行時間較長,沒有充分發(fā)揮多核的性能。只有在光纖數(shù)量、通道數(shù)量是核的整數(shù)倍時,效率最高,但實際工程中該情況較少;方案(3)并行顆粒度最細,雖然在最后一次執(zhí)行也存在部分核的空閑,但每次執(zhí)行只處理1個數(shù)據(jù)點,執(zhí)行時間短,整體效率最高。在工程中,也可以考慮舍棄最后小于20(即核的數(shù)量)個點的數(shù)據(jù),對雷達系統(tǒng)影響甚微。
根據(jù)上述分析,多核并行處理,要求并行的顆粒度越細,執(zhí)行效率越高。
根據(jù)上述分析,設計多通道收數(shù)預處理的處理流程如下(圖6):
(1)6個核并行接收6根光纖的數(shù)據(jù);
(2)通道拆分前,完成6根光纖數(shù)據(jù)的合并;
(3)通道拆分:6根光纖24個通道的數(shù)據(jù)整理;
(4)通道整理,按需求完成有效通道的整理。
對初步方案的處理性能進行測試,整體數(shù)據(jù)通過率7.05Gbps。相比輸入數(shù)據(jù)率6.7Gbps,系統(tǒng)余量只有5%,處理能力臨界,存在系統(tǒng)飽和的風險,需要對方案進行優(yōu)化。
對照流程圖,步驟(3)的通道拆分經(jīng)過方案的比較,提升空間不大。初步方案為考慮軟件的通用性,在通道拆分前后對數(shù)據(jù)整理以滿足步驟(3)通道拆分接口的簡化統(tǒng)一,但其對內存訪問頻繁,占據(jù)一半的處理時間。
按照盡量減少對內存的訪問原則,對初步方案作以下優(yōu)化:2.3.1 多核光纖收數(shù)
步驟(1)設計6個核并行接收6根光纖的數(shù)據(jù),同樣存在并行顆粒度過粗,處理核空閑,效率不高。改進為6根光纖串行收數(shù),每根光纖20個核并行訪問內存。
2.3.2 舍棄多光纖數(shù)據(jù)合并,
步驟(2)的數(shù)據(jù)合并是為了方便步驟(3)通道拆分的執(zhí)行。舍棄該步驟后,步驟(3)的通道拆分采用6根光纖串行,依次調用通道拆分函數(shù)完成6根光纖的數(shù)據(jù)拆分。因為通道拆分是按數(shù)據(jù)點并行,所以6根光纖串行處理,并不會降低效率改造后的流程圖
2.3.3 舍棄拆分后的通道整理
通道拆分后,在某些應用模式下,24個通道中的部分數(shù)據(jù)并不完全需要,或者需要調整數(shù)據(jù)順序,方便后續(xù)的處理,因此需要對拆分后的24個通道再進行一次整理。
舍棄該步驟后,結合第2.3.2條優(yōu)化,在每根光纖數(shù)據(jù)拆分的同時,根據(jù)應用模式需求,完成拆分后的數(shù)據(jù)存放。
最終優(yōu)化后的處理流程如圖7所示。
優(yōu)化后的整體數(shù)據(jù)通過率大于14Gbps,比初始方案提高1倍,系統(tǒng)余量50%,大大滿足系統(tǒng)需求??梢妰却孀鳛樘幚砥鞯耐庠O存儲設備,是多核/眾核高性能處理器的性能瓶頸,對處理能力的影響巨大。工程使用過程中,應盡量減少對內存的頻繁訪問操作。
本文基于24核雙CPU處理平臺,探討了雷達多通道的處理方式。
(1)多核并行顆粒度越細,對多核的利用效率越高。對于后續(xù)的脈沖壓縮、CFAR等需要訪問相鄰數(shù)據(jù)的算法,可考慮將數(shù)據(jù)劃分成若干片段進行并行,最大程度接近最優(yōu)的方案;
(2)內存作為處理器的外設,已成為高性能處理的瓶頸,處理過程中應盡量較少對內存的讀寫操作,以此提高整體通過率。
基于上述多核多通道并行處理的方法,已經(jīng)在某軟件化雷達項目中成功應用。
圖5:方法(3)處理器執(zhí)行示意圖
圖6:多通道預處理流程圖
圖7:多通道預處理流程圖