彭 培 張云雷 李 軻 席澤敏
(海軍工程大學電子工程學院 武漢 430033)
基于CPU/GPU處理器的雷達脈沖壓縮算法并行機制研究?
彭 培 張云雷 李 軻 席澤敏
(海軍工程大學電子工程學院 武漢 430033)
為實現(xiàn)軟件化雷達在不同信號處理器上的實時信號處理,需要研究通用高性能處理器,如CPU和GPU信號處理算法的并行機制。論文以雷達脈沖壓縮運算模塊為例,重點研究了利用GPU信號處理的并行機制。首先給出雷達脈沖壓縮數(shù)學模型,然后針對算法實現(xiàn)流程,分別從片上緩存、內(nèi)核線程和數(shù)據(jù)并行等方面設(shè)計了三種GPU并行優(yōu)化策略。仿真測試表明,所提出的GPU并行機制與典型多核CPU平臺相比,具有更好的實時性能。
CPU∕GPU;并行機制;軟件化雷達;脈沖壓縮
隨著數(shù)字化技術(shù)的不斷成熟和發(fā)展,雷達系統(tǒng)將逐漸從傳統(tǒng)的“以硬件技術(shù)為中心,面向?qū)S霉δ堋钡膶S美走_發(fā)展到“以軟件技術(shù)為中心,面向?qū)嶋H需求”的軟件化雷達[1]。傳統(tǒng)的雷達系統(tǒng)功能多采用定制的專用電路實現(xiàn),其緊耦合的特點決定了其硬件開發(fā)周期長,費用高等不便因素。軟件化雷達通過采用開放式體系結(jié)構(gòu)和通用處理器,可實現(xiàn)應(yīng)用程序快速開發(fā)和升級。由于通用信號處理器特別是GPU處理器,具備通用性好,可擴展易升級等優(yōu)點[2~3],在軟件化雷達中得到重視。同時,近年來隨著通用處理器,特別是服務(wù)器刀片和GPU處理器的快速發(fā)展,在越來越多地基雷達中獲得應(yīng)用。為適應(yīng)雷達信號處理大容量大吞吐率要求,必須研究針對通用信號處理器的并行算法實現(xiàn)機制。當前,已經(jīng)有不少關(guān)于GPU進行并行信號處理的論文[4~5],但是關(guān)于GPU并行化機制的研究并不多見。
本文以雷達信號處理典型算法——脈沖壓縮算法為例,探討通用信號處理器并行機制的實現(xiàn)。脈沖壓縮是將發(fā)射的大時寬帶寬積信號[6~7],通過匹配濾波器,輸出窄脈沖信號,以解決平均功率和距離分辨力之間的矛盾,使雷達提高檢測能力的同時不會降低距離分辨力。本文將基于CPU∕GPU的并行計算引入軟件雷達脈沖壓縮信號處理中,利用GPU細粒度多線程并發(fā)和適宜密集計算的特點發(fā)掘雷達信號處理潛在的并行性,從而利用GPU加速雷達信號處理運算速度。
脈沖壓縮可以在時域?qū)崿F(xiàn),也可以在頻域?qū)崿F(xiàn)。時域?qū)崿F(xiàn)是利用FIR濾波器實現(xiàn)時域脈沖壓縮,時域脈壓處理方法比較直觀。當距離單元數(shù)較小時,相對運算量不大,采用時域脈壓處理也可以滿足實時性要求。但是當距離單元數(shù)很大,時域卷積的運算量很大,這時宜采用頻域脈沖壓縮方法[8]。為了提高運算速度,離散傅里葉變換可以采用快速傅里葉變換實現(xiàn)。如果采樣數(shù)據(jù)長度為i點,需要將信號和匹配濾波器系數(shù)做2N≥i點離散傅里葉變換(DFT)變換。最后將雷達回波與匹配濾波器頻域響應(yīng)系數(shù)相乘,再經(jīng)過IFFT變換,得到脈沖壓縮處理結(jié)果。頻域脈壓處理實現(xiàn)如圖1所示。
圖1 脈沖壓縮頻域?qū)崿F(xiàn)框圖
由于匹配濾波器是與輸入線性調(diào)頻脈沖信號完全匹配,故噪聲信號保持在原有電平上,而輸出信號的峰值功率提高了D=τ?B倍。故采用脈沖壓縮技術(shù)的雷達,使得在相同發(fā)射功率條件下,可有效改善信號信噪比,同時寬脈沖信號壓縮成窄脈沖信號,具有良好的測距精度和距離分辨力。
圖2是對發(fā)射脈沖信號寬度10μs,有效頻譜寬度30MHz的線性調(diào)頻信號的脈沖壓縮仿真。脈壓前的回波信號中,兩個目標在時間上沒有足夠的分離以至于不能分辨開,然而脈壓后目標分離,且識別為兩個獨立的目標,理論上只要相鄰目標時間間隔上相隔 1 B,目標回波就能分開。
本文將基于雷達脈沖壓縮的數(shù)學模型,將GPU并行計算設(shè)計劃分為片上緩存設(shè)計、內(nèi)核線程設(shè)計、數(shù)據(jù)并行設(shè)計三級優(yōu)化,在每級優(yōu)化中針對應(yīng)用特性提供了不同的優(yōu)化策略。以漸近的方式完成應(yīng)用的全局優(yōu)化過程。
圖2 雷達回波脈沖壓縮效果
3.1 片上緩存設(shè)計
GPU有全局存儲器、共享存儲器、寄存器和紋理及常量存儲器的高速緩存,其中共享內(nèi)存有著幾乎與寄存器一樣快的訪存速度,其中紋理存儲器和常量存儲器存儲方式為只讀。
GPU對全局存儲器的訪問延遲為400~600個時鐘周期,對共享存儲器的訪問延遲約為5個時鐘周期。內(nèi)核函數(shù)將頻繁訪問且算法固定的變量轉(zhuǎn)移至共享內(nèi)存,這樣可以減少訪存延遲[9],將數(shù)據(jù)從GPU的全局存儲器讀取到共享存儲器中進行內(nèi)核函數(shù)運算,能夠極大地提高處理速度。共享存儲器中的線程通信把采樣數(shù)據(jù)分批劃分到共享內(nèi)存,通過共享存儲器合作計算可獲得更好的加速性能。共享存儲器能夠開辟的空間有限,并且其生命周期同內(nèi)核函數(shù)的調(diào)用保持一致。濾波器參數(shù)等以權(quán)庫的形式分配在紋理存儲器以提高訪問效率。
3.2 內(nèi)核線程設(shè)計
多核CPU并行運算中,可利用OpenMP編譯指導(dǎo)語句和變量顯式地指導(dǎo)并行化[10~11]。而在GPU數(shù)值計算中,是按照“Grid-Block-Thread”的三層組織結(jié)構(gòu)來并行執(zhí)行,其劃分過程通過內(nèi)核函數(shù)kernel的<<<dimBlock,dimThread >>>語句對其進行設(shè)置,每個kernel對應(yīng)一個線程網(wǎng)格,線程網(wǎng)格內(nèi)的多個線程塊能夠以任意順序搶占執(zhí)行。這種獨立性允許內(nèi)核函數(shù)kernel根據(jù)采樣點的數(shù)量和算法來確定線程塊。以一維實數(shù)向量X(i)和Y(i)求和計算為例,如圖3所示,不同的線程按索引號訪問向量X(i)和 Y(i)位于 Global Memory中數(shù)據(jù)元素,計算不同Id位置處的元素和,每一個線程塊完成連續(xù)m個元素的求和操作。
圖3 線程任務(wù)分配方案圖
CUDA利用SIMT執(zhí)行模式,細粒度線程是以half-warp為單位同時對地址進行合并訪問。是否滿足合并訪問對CUDA程序的速度產(chǎn)生數(shù)量級上的差異。CUDA設(shè)定的half-warp數(shù)量為16,所以每個block的維度m需設(shè)置成16的倍數(shù),這里設(shè)定每個block中線程數(shù)threads.x的取值為256。假設(shè)每個脈沖重復(fù)周期上采樣點數(shù)為Ns,Grid的維度設(shè)計為(Ns+threads.x-1)∕threads.x,使得一個 Grid中的block數(shù)量為整數(shù),同時線程的規(guī)模只與采樣點的數(shù)量有關(guān),采樣點在地址中的排列順序也應(yīng)與threadldx.x的方向一致,這樣的線程安排也是為了滿足對全局地址的合并訪問條件,提高存儲器訪問的有效帶寬。
3.3 數(shù)據(jù)并行設(shè)計
GPU計算的數(shù)據(jù)需要經(jīng)過PCI-E總線在主機內(nèi)存和設(shè)備顯存之間進行通信。數(shù)據(jù)并行計算應(yīng)力求重疊通信與計算的時間,進而減少應(yīng)用的整體執(zhí)行時間[12~13]。在進行GPU密集型計算前,先將預(yù)處理、邏輯控制和部分預(yù)計算分配在CPU上,然后利用cudaMemcpy函數(shù)將所需的數(shù)據(jù)從系統(tǒng)主存拷貝到設(shè)備顯卡,從而改進計算訪存比,以及各存儲層次上的延遲隱藏。
脈沖壓縮的重點在于設(shè)計接收機相頻特性與發(fā)射信號相位共軛匹配的壓縮網(wǎng)絡(luò),即根據(jù)雷達信號波形獲得匹配濾波器系數(shù),線性調(diào)頻信號的脈壓系數(shù)為復(fù)包絡(luò)信號s(n)的共軛翻轉(zhuǎn),濾波器單位脈沖響應(yīng)h(k)表達式為
雷達脈沖壓縮模塊的實現(xiàn)核心是將正交相位檢波的結(jié)果與匹配濾波器系數(shù)頻域相乘,系統(tǒng)采用多個線程并行處理。每個線程獨立維護采樣點數(shù)值和濾波器系數(shù),線程之間并行執(zhí)行傅立葉變換和復(fù)數(shù)點乘。系統(tǒng)運行步驟如圖4所示。
圖4 系統(tǒng)程序流程圖
具體說明如下:
第1步:判斷雷達信號波形是否發(fā)生變化,發(fā)生變化執(zhí)行第2步,否則執(zhí)行第4步。
第2步:主機端根據(jù)雷達波形計算匹配濾波器系數(shù)。
第3步:將匹配濾波器系數(shù)傳輸?shù)皆O(shè)備端。
第4步:調(diào)用CUFFT函數(shù)對正交分解信號和匹配濾波器系數(shù)在頻域變換,并完成復(fù)數(shù)卷積。
為測試第4節(jié)并行算法效果,本文分別基于CPU和CPU∕GPU處理平臺,實現(xiàn)應(yīng)用映射和性能優(yōu)化實驗,其硬件參數(shù)及軟件環(huán)境如表1所示。其中,CPU采用具有4核8線程的XEON E5620處理器,CPU∕GPU采用NVIDIA 的Tesla C2050。
表1 硬件參數(shù)及軟件環(huán)境
在多核CPU和GPU的計算中,分別利用Intel.MKL.v10.0.2和CUDA Driver 4.1中的FFT函數(shù)庫加速計算。這兩種數(shù)學庫分別針對多核CPU、GPU提供了高度優(yōu)化、線程安全的FFT函數(shù),充分利用處理器的多核、多線程處理能力。
表2所示為線性調(diào)頻信號脈沖壓縮處理測試結(jié)果,其中GPU平臺處理時間包括內(nèi)核計算時間和測試數(shù)據(jù)在內(nèi)存和顯存之間的傳輸時間。
表2 脈沖壓縮處理對不同采樣點數(shù)量的執(zhí)行時間對比
由表2可以看出,在相同的采樣點數(shù)量的情況下,GPU內(nèi)核計算速度遠遠高于CPU,但是當采樣點數(shù)量較少時,GPU的整體計算速度優(yōu)勢并不明顯。這是因為采樣點少時,不能最大發(fā)揮GPU并行計算能力,且數(shù)據(jù)的傳輸時間占用了一定比例。隨采樣點數(shù)量增加,GPU多線程細粒度的優(yōu)勢發(fā)揮出來,運算效能明顯高于CPU,其中內(nèi)核計算速度相對于CPU計算速度最大可達29倍。
本文針對雷達信號脈沖壓縮并行處理算法的特點,在CPU∕GPU并行計算架構(gòu)上設(shè)計了并行加速機制,根據(jù)GPU物理架構(gòu)實現(xiàn)了算法優(yōu)化,基于實際硬件平臺進行了仿真試驗。實驗結(jié)果表明基于GPU加速的雷達信號脈沖壓縮算法與多核CPU相比具有較好的實時性。本文所提出的GPU加速機制,對于雷達信號處理其他模塊算法來說具有通用性,可為GPU加速軟件雷達信號處理運算進入工程應(yīng)用階段奠定良好的基礎(chǔ)。
[1]湯俊,吳洪,魏鯤鵬.軟件化雷達技術(shù)研究[J].雷達學報,2015,4(4):481-489.
[2]LI Zhong zhi,WANG Xue gang,YU Xuelian.Orthogonal Software Architecture Design for Radar Data Processing System with Object-oriented Component and COM Interface[J].WSEA Transaction on Computers,2011,10(2):61-70.
[3]Malanowski,M.Kulpa,J.Porczyk,et al.Real-time software implementation of Passive Radar[C]∕Radar Conference,2009:33-36.
[4]秦華,周沫,察豪,左煒.軟件雷達信號處理的多GPU并行技術(shù)[J].西安電子科技大學學報,2013,40(03):145-151.
[5]陳文斌,楊瑞瑞,于俊清.基于GPU∕CPU混合架構(gòu)的流程序多粒度劃分與調(diào)度方法研究[J].計算機工程與科學,2017,39(01):15-26.
[6]馬曉巖,向家彬.雷達信號處理[M].長沙:湖南科學技術(shù)出版社,1999:182-194.
[7] Skolnik M I. Radar Handbook[M].New York:Mc Graw-Hill Book Co,1990:125-130.
[8]David K B,Sergey A L.Radar Technology Encyclopedia(Electronic Edition)[M].Boston and London:Artech House,1998:115-120.
[9]Stanko,Stephan,et al.Synthetic aperture radar for all weather penetrating UAV application(SARAPE)-project presentation[C]∕Synthetic Aperture Radar,2012,EUSAR,9th European Conference on:290-293.
[10]Song J P,Ross J A,Shires D R.Hybrid Core Acceleration of UWB SIRE Radar Signal Processing[J].IEEE Transactions on Parallel and Distributed Systems.2011,22(1):46-57.
[11]肖漢.基于CPU+GPU的影像匹配高效能異構(gòu)并行技術(shù)研究[D].武漢:武漢大學,2011.
[12]張保,董曉社,白秀秀等.GPU-CPU系統(tǒng)中基于剖分的全局性能優(yōu)化方法[J].西安交通大學學報·信息科學版,2012,46(2):17-23.
[13]楊靖宇,張永生,李正國等.遙感影像正射糾正的GPU-CPU協(xié)同處理研究[J].武漢大學學報·信息科學版,2011,36(9):1043-1046.
Parallel Mechanism Study of Radar Pulse Compression based on CPU/GPU Processor
PENG Pei ZHANG YunleiLI KeXI Zemin
(College of Electronic Engineering,Navy University of Engineering,Wuhan 430033)
In order to achieve the real-time signal processing of software radar for various processors,it is essential to study the parallel mechanism for the general high performance processor,i.e.,CPU and GPU.Focusing on the parallel realization of GPU processor,this paper takes the pulse compression processing as an example.Firstly the algorithm model is presented,and then three parallel ways are designed,including the on-chip cache,kernel threads and data in parallel.The simulations show that the proposal mechanism for GPU has a better real-time property comparing to the multiple-kernel CPU.
CPU∕GPU,parallel mechanism,software radar,pulse compression
TN957.51
10.3969∕j.issn.1672-9730.2017.10.007
Class Number TN957.51
2017年4月8日,
2017年5月27日
彭培,碩士,助教,研究方向:雷達信號處理。張云雷,碩士,講師,研究方向:MIMO雷達信號處理。李軻,博士,講師,研究方向:目標跟蹤與識別。席澤敏,博士,副教授,研究方向:故障診斷和雷達目標識別。