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