韓文俊 王嘎 丁琳琳
摘要
雷達信息處理應用的運算復雜、數(shù)墩居量大,需要高速實時處理本文針對雷達系統(tǒng)的脈壓、MTI等應用,研究了GPU在雷達實時信號處理方面的并行設計優(yōu)化技術,利用數(shù)據(jù)劃分、線程組織、緩存優(yōu)化、核函數(shù)合并等設計方法實現(xiàn)應用,性能和CPU集群平臺相比較,提高了4-23倍左右。
【關鍵詞】雷達信息處理 GPU 異構并行
1 前言
目前,雷達系統(tǒng)的發(fā)展正在向數(shù)字化、軟件化的方向發(fā)展,未來的趨勢是智能化雷達,硬件處理器已經由單核進入多核時代,并且向著異構、眾核的趨勢發(fā)展,雷達的各種功能和工作流程由軟件完成。目前,雷達系統(tǒng)采用的硬件平臺有多核CPU、多核DSP、FPGA,GPI等,其中基于圖形處理器(Graphic Processing Unit,GPU)的異構系統(tǒng)成為現(xiàn)階段高性能計算體系的一種主流設計方法。GPU具備高度并行、多線程多核心等特點,最新一代的圖形處理器浮點運算能力己達TFLOPS(1012FLOPS)數(shù)量級,其主要用途由圖形渲染已經過渡到通用計算方面。美國Army Research Laboratory研究了基于異構系統(tǒng)的超寬帶合成孔徑雷達的信號加速處理,將不同型號的GPU作為計算設備,得了較好的加速性能。從2007年公開發(fā)布通用并行計算架構CUDA(Compute Unified DeviceArchitecture,CUDA)以來,它己被證明在許多計算密集型的信號處理等應用上得到顯著的速度提升。
對于異構眾核處理器應用來說,最終要解決的問題就是軟件,主要涉及算法并行化、并行編程模型和框架等方面。本文針對雷達信息處理領域涉及到的應用,研究基于雷達信息處理高性能計算的并行算法、并行設計框架、性能調優(yōu)等方面的技術和方法。
2 并行優(yōu)化設計技術
并行優(yōu)化設計的作用是盡量發(fā)揮硬件提供的全部計算資源,以減少延遲,即更快地完成
計算任務,或提高吞吐量。針對雷達信號處理,進行并行優(yōu)化設計一般包括5個步驟
(1)分析問題,理解算法,分解問題的串行/并行的工作負載;
(2)選擇硬件,確定高效的GPU型號;
(3)數(shù)據(jù)、任務劃分,確定計算劃分的粒度和硬件資源最佳匹配;
(4)選擇并行編程模式,確定并行設計架構;
(5)并行計算性能優(yōu)化,反復迭代至性能最優(yōu)。
2.1 算法并行化設計
算法并行化設計包括:應用的并行/串行部分在GPU/CPU上的分解、數(shù)據(jù)劃分、劃分后的計算粒度與GPU的粒度最佳匹配。
以雷達信號處理來說,雷達信息處理算法之間的數(shù)據(jù)交互,會影響并行算法設計。在并行算法設計之前要進行數(shù)據(jù)相關性分析、指令依賴分析,進而決定劃分、映射的維度。對于MTI來說,由于通道之間、距離門之間不依賴,劃分以通道或距離門劃分數(shù)據(jù);對于脈沖壓縮來說,通道之間、脈沖之間不依賴,劃分以總的脈沖數(shù)為劃分依據(jù)。劃分后的計算粒度要和GPU的線程匹配。
2.2 并行編程框架
CUDA使用的是單指令多線程(SIMT)的并行模式,硬件GPU包含了大量的基礎計算核心,多個核集成在一起稱為多流處理器(SM)。將一個計算任務分解成多個子任務,稱其為線程,多個線程被組織為線程塊,線程塊被分解為大小與一個SM中核數(shù)量相同的線程束(warp),每個線程束由一個特定的多流處理器執(zhí)行。
對于雷達信號處理的應用,一個核函數(shù)執(zhí)行在一個Grid上,一個Grid分為多個Block,而一個Block分為多個Thread,將數(shù)據(jù)映射到軟件線程,然后軟件線程調度到硬件線程執(zhí)行。數(shù)據(jù)到線程的映射如圖1所示。
核函數(shù)的執(zhí)行過程中,把應用程序分解為大小合適的網格、線程塊、線程,是保證CUDA內核性能的關鍵,比如,NVIDAIQuadro K4200型號的GPU一個線程塊包含32個線程,那么在構造核函數(shù)的線程參數(shù)時,應該將Thread設置為32的倍數(shù),利于線程調度。
2.3 并行性能優(yōu)化
并行計算性能優(yōu)化基礎是并行加速比性能定律:Amdahl定律和Gustafson定律。性能優(yōu)化方法主要有:性能優(yōu)化循環(huán)模式、自上而下的方法、分層性能優(yōu)化方法以及性能分析工具的使用。
(1)性能優(yōu)化循環(huán)模式:借助性能分析工具,不斷發(fā)現(xiàn)、消除性能瓶頸的迭代過程。
(2)自上而下的方法:從系統(tǒng)配置、應用設計、底層優(yōu)化,自上而下進行優(yōu)化。
(3)分層性能優(yōu)化方法:從硬件層、運行層、編譯層、代碼層多個層次進行性能優(yōu)化。
(4)并行分析工具,借助CUDAProfiler、Intel Parallel Studio等分析工具可以監(jiān)測到CPU使用率、緩存命中缺失率等,有助于性能優(yōu)化。
并行性能優(yōu)化,要選擇在性能最優(yōu)的算法并實現(xiàn)。以分析為導向,以程序熱點為目標,以并行優(yōu)化方法為后盾,借助于性能分析工具,一次一個目標,最終把代碼性能優(yōu)化到最佳。
3 并行應用實驗
基于NVIDAI Quadro K4200和Intel Xeon(R)CPU的集群平臺E5-2648L V2,利用2.1、2.2、2.3的并行設計方法,對雷達信息處理的脈沖壓縮、MTI進行實驗。
3.1 軟硬件平臺
NVIDIAd的GPI,K4200包含7個SM處理器,每個處理器包括:192個CUDA計算單元,總線帶寬是172.8GB/s,一級數(shù)據(jù)緩存是48KB。CPU集群平臺是Xeon(R)E5-2648L V2,10個核心,20個線程,主頻1.9GHz,總線帶寬 8G/s,一級數(shù)據(jù)緩存320KB。
GPU的軟件開發(fā)環(huán)境是基于VS2013和CUDA Toolkit 8.0,基于LINUX操作系統(tǒng)的VPX集群,開發(fā)環(huán)境使用的是Eclips,包括使用MKL函數(shù)庫。
3.2 并行設計框架
利用2.1、2.2的方法進行并行設計程序,如圖2所示,脈壓的并行設計框架如圖2所示。
(1)利用流從主存到顯存異步拷貝輸入數(shù)據(jù);
(2)顯存的數(shù)據(jù)傳輸?shù)終200的硬件線程上,通過CPU處理指令,利用NPP庫、cuBLAS庫實現(xiàn)FFT和向量乘,將補0、FFT、點乘、逆FFT、截取合并在一個核函數(shù)內部,參數(shù)傳遞通過共享內存;
(3)GPU核心計算結束,更新顯存的處理結果;
(4)從顯存copy利用流從主存到顯存異步拷貝數(shù)據(jù);
(5)將計算結果,利用流從顯存到主存異步拷貝數(shù)據(jù);
3.3 實測性能對比
經過
2.3 的性能優(yōu)化方法,反復迭代并行性能優(yōu)化,經過CUDA Profiler分析過,CPU-GPU的傳輸速率達到理論值的30%,線程數(shù)活躍程度達到100%,實驗測試的性能如表1所示。
3.4 分析
分析并行應用實驗的實測結果,并行效率顯著主要是基于以下幾點:
(1)1344個高速并行處理的核心;
(2)流式處理,異步拷貝掩蓋掉數(shù)據(jù)拷貝的時間消耗;
(3)并行設計框架采用核函數(shù)合并的方法;
(4)并行設計框架采用共享內存?zhèn)鬟f參數(shù)的方法;
(5)線程組織中設置每個線程塊線程的個數(shù)是32的倍數(shù),利于線程調度;
(6)核函數(shù)避免分支進行。
4 總結
本文設計了基于GPU平臺的雷達信息處理的并行處理框架,利用線程組織、流處理、異步處理、共享內存、核函數(shù)合并等方法,設計實現(xiàn)了典型雷達應用功能的并行算法設計,實現(xiàn)結果證明,基于GPU的雷達信息處理并行優(yōu)化設計具有高實時、高吞吐量等優(yōu)勢。
參考文獻
[1]The OpenCL Specification [S].KhronosOpenCL Working Group.2014:23.
[2]Zhang Bo,Xue Zhenghui,Ren Wu,et al.Acceleration 3D FDTD Algorithm UsingGPU Computing [J].Chinese Journal ofRadio Science,2011,26(05):864-868.
[3]Song J P,Ross J A,Shires D R.HybridCore Acceleration of UWB SIRERadar Signal Processing[J].IEEETrans on Parallel and DistributedSystem,2011,22(01):46-57.
[4]NVIDIA Corporation.NVIDIA NsightVisual Studio Edition 4.7 UserGuide.NVIDIA Gameworks,2015.
[5]NVIDIA Corporation.“NVIDIA CUDARuntime API,”NVIDIA Developer Zone,Coda Toolkit Documentation,2015.
[6]Ruiz A,Ujaldon M,Cooper L,etal.Non-rigid registration forlarge sets of Microscopic imageson graphics processors[J].Journal of Signal ProcessingSystems,2009,55(1-3):229-250.
[7]劉文志著.并行算法設計與性能優(yōu)化[M].北京:機械工業(yè)出版社,2016(01).
[8]Timothy G.Mattson等.ParallelProgramming Pattern.2015(02).