999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

GPU 并行計(jì)算在雷達(dá)信號(hào)處理中的應(yīng)用

2021-03-25 02:09:52楊千禾
軟件導(dǎo)刊 2021年3期
關(guān)鍵詞:計(jì)算能力優(yōu)化檢測(cè)

楊千禾

(西安電子工程研究所,陜西西安 710100)

0 引言

隨著電子反偵察技術(shù)的完善,雷達(dá)面臨著難以捕捉目標(biāo)、工作環(huán)境復(fù)雜、多樣化的工作模式和多功能一體化的發(fā)展模式。不論從研發(fā)角度還是從用戶需求角度都對(duì)雷達(dá)系統(tǒng)提出了越來越高的要求,雷達(dá)技術(shù)必須與時(shí)俱進(jìn)。

現(xiàn)代雷達(dá)技術(shù)發(fā)展有兩個(gè)重要方向:①合理利用能量,高效獲取信息;②快速適應(yīng)需求,有效靈活擴(kuò)展。

目前大量使用的數(shù)字陣列雷達(dá)以功能為核心,導(dǎo)致雷達(dá)型號(hào)眾多,軟件與硬件關(guān)聯(lián)性強(qiáng),不利于雷達(dá)升級(jí)和擴(kuò)展;研制周期長(zhǎng)、開發(fā)效率低等問題成為雷達(dá)使用性能提升瓶頸。在這種環(huán)境下,“軟件化雷達(dá)”概念孕育而生。軟件化雷達(dá)采用“以軟件技術(shù)為中心,面向需求”的開發(fā)模式,主要思路是通過雷達(dá)系統(tǒng)中軟件和硬件的解耦[1],使雷達(dá)系統(tǒng)能夠基于軟件化開發(fā)模式靈活實(shí)現(xiàn)系統(tǒng)功能定義、資源配置、模式擴(kuò)展和性能提升,以不斷滿足實(shí)際需求[2]。

傳統(tǒng)雷達(dá)信號(hào)處理機(jī)使用現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)和數(shù)字信號(hào)處理器(Digi?tal Signal Processing,DSP),其計(jì)算速度雖然能夠滿足要求,在計(jì)算上也較為精確,但與FPGA 和DSP 的軟件程序復(fù)用性較低,程序調(diào)試?yán)щy。而僅使用中央處理器(Central Pro?cessing Unit,CPU)作為計(jì)算核心的信號(hào)處理機(jī),受限于CPU 時(shí)鐘頻率和內(nèi)核數(shù)目,在處理實(shí)時(shí)數(shù)據(jù)時(shí)面臨著系統(tǒng)資源消耗過多、性能下降等問題。

為進(jìn)一步提升雷達(dá)系統(tǒng)計(jì)算能力,同時(shí)降低后續(xù)程序調(diào)試難度,實(shí)現(xiàn)雷達(dá)軟硬件解耦,增強(qiáng)雷達(dá)的可重構(gòu)性,本文使用圖形處理器(Graphics Processor Unit,GPU)代替DSP和FPGA 作為雷達(dá)的計(jì)算核心,組成GPU+CPU 的異構(gòu)平臺(tái)作為新型的雷達(dá)信號(hào)處理系統(tǒng)架構(gòu)。GPU 內(nèi)含統(tǒng)一計(jì)算設(shè)備體系結(jié)構(gòu)(Compute Unified Device Architecture,CU?DA),開發(fā)人員可使用C 語言對(duì)GPU 進(jìn)行編程。在CUDA下開發(fā)的軟件具有很強(qiáng)的可移植性,可滿足所有計(jì)算能力在GPU 上直接運(yùn)行。

1 CPU+GPU 架構(gòu)信號(hào)處理機(jī)

當(dāng)前雷達(dá)信號(hào)處理機(jī)架構(gòu)實(shí)現(xiàn)方式主要有3 種:

(1)基于專用DSP 的分布式信號(hào)處理架構(gòu)。該架構(gòu)由多個(gè)計(jì)算板卡組成,每個(gè)板卡內(nèi)含多個(gè)DSP 處理器,板卡數(shù)量和處理器數(shù)量由實(shí)際計(jì)算資源需求決定,雷達(dá)信號(hào)處理機(jī)通過板卡之間的協(xié)同計(jì)算實(shí)現(xiàn)應(yīng)用程序開發(fā)[3]。該架構(gòu)優(yōu)點(diǎn)是系統(tǒng)功耗低,能夠適應(yīng)不同規(guī)模的信號(hào)處理需求;缺點(diǎn)是軟硬件解耦能力差,單節(jié)點(diǎn)計(jì)算能力低,需要在系統(tǒng)數(shù)據(jù)分發(fā)、多節(jié)點(diǎn)同步處理和分布式實(shí)時(shí)通信方面進(jìn)行技術(shù)攻關(guān)。

(2)實(shí)現(xiàn)方式為基于多核CPU/PowerPC 的分布式信號(hào)處理架構(gòu)[4]。此架構(gòu)因?yàn)橛蠱KL、VSPL 等計(jì)算加速開發(fā)工具包和準(zhǔn)實(shí)時(shí)的操作系統(tǒng)作支撐,所以開發(fā)人員只需完成雷達(dá)信號(hào)處理應(yīng)用層軟件的設(shè)計(jì)[5],此方式提升了軟硬件解耦能力,降低了軟件移植難度,開發(fā)效率顯著提高。主要難點(diǎn)是單節(jié)點(diǎn)計(jì)算能力不夠強(qiáng)大,需要在多節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)分發(fā)、同步處理和實(shí)時(shí)通信[6]。

(3)基于CPU+GPU 的異構(gòu)處理架構(gòu)。主要優(yōu)點(diǎn)是超強(qiáng)的單節(jié)點(diǎn)計(jì)算能力與較低的經(jīng)濟(jì)成本,高效的軟件開發(fā)效率和支持智能化開發(fā)工具包。

1.1 超強(qiáng)計(jì)算能力和較低經(jīng)濟(jì)成本

相較于DSP/CPU/PowerPC 等處理器,單節(jié)點(diǎn)的GPU 具有更強(qiáng)大的浮點(diǎn)計(jì)算能力。單個(gè)6U VPX 結(jié)構(gòu)的GPU 刀片最高可支持的單精度浮點(diǎn)處理能力達(dá)6.1Tflops(Tesla P6),約等于48 片TMS320C6678 的計(jì)算量,大大減少了計(jì)算節(jié)點(diǎn),降低了系統(tǒng)復(fù)雜程度,減少了處理流水延時(shí),如表1 所示。

Table 1 Comparison of floating point processing capacity of main devices表1 主要器件浮點(diǎn)處理能力對(duì)比

對(duì)于大型數(shù)字陣列雷達(dá),需要同時(shí)形成多個(gè)不同指向的數(shù)字接收波束,完成對(duì)指定發(fā)射空域的覆蓋[7]。因此,需要配備計(jì)算能力強(qiáng)大的信號(hào)處理機(jī)。由于功耗和面積限制,1 塊6U 板卡最多支持8 片TMS320C6678 的多核DSP 處理器;或者是1 片E5-2648LV4 的CPU 處理器,單板浮點(diǎn)處理能力為896Gflops;亦或是最多支持4 片T4240 處理器,單板浮點(diǎn)處理能力為768Gflops。雖然1 塊6U 板卡只能搭載1個(gè)MXM 接口的Tesla P6 GPU,但這個(gè)板卡的計(jì)算處理能力可達(dá)6.1Tflops。

1.2 軟件開發(fā)高效率

相較于DPS/FPGA 動(dòng)輒十幾分鐘甚至一個(gè)小時(shí)的燒寫時(shí)間,GPU 軟件編譯僅需幾秒,程序調(diào)試幾乎支持所有的C/C++集成開發(fā)環(huán)境,擺脫了仿真器束縛,大大增加了靈活性。與CPU/PowerPC 的處理平臺(tái)相比,單節(jié)點(diǎn)處理能力更強(qiáng),板卡數(shù)量大大減少,減少了節(jié)點(diǎn)之間的數(shù)據(jù)傳輸,使系統(tǒng)復(fù)雜程度降低。目前市場(chǎng)上的計(jì)算級(jí)GPU 以英偉達(dá)公司的板卡為主,CUDA 驅(qū)動(dòng)的向下兼容和向上兼容都較穩(wěn)定,使CUDA 程序具有較好的可移植性,避免再次開發(fā)相似功能,節(jié)省了人力資源,降低了開發(fā)難度,提高了開發(fā)效率。在面對(duì)更大計(jì)算需求時(shí)可以靈活擴(kuò)展或升級(jí)GPU 卡。

1.3 支持智能化開發(fā)工具包

近年機(jī)器學(xué)習(xí)的興起對(duì)高性能計(jì)算需求越來越大。GPU 作為目前機(jī)器學(xué)習(xí)的核心載體在市場(chǎng)需求推動(dòng)下快速升級(jí),不斷推出更強(qiáng)大的計(jì)算能力和更優(yōu)良架構(gòu)的GPU。

最新的GPU 不僅支持神經(jīng)網(wǎng)絡(luò)算法,還支持Caffe、TensorFlow 等深度學(xué)習(xí)框架,這些機(jī)器學(xué)習(xí)算法在雷達(dá)目標(biāo)識(shí)別技術(shù)中的應(yīng)用是當(dāng)前和未來研究的重點(diǎn)。GPU 能夠快速完成機(jī)器學(xué)習(xí)算法從訓(xùn)練到部署的全過程,非常適合未來雷達(dá)向智能化方向發(fā)展。

2 GPU 并行優(yōu)化關(guān)鍵技術(shù)

GPU 高效計(jì)算的關(guān)鍵在于軟件的優(yōu)化加速。對(duì)于計(jì)算密集型、可并行性較高的程序,使用CUDA C 對(duì)已有的串行代碼在GPU 上進(jìn)行并行復(fù)現(xiàn)能獲得很好的加速效果。對(duì)串行程序并行化的方法有兩種:①對(duì)一個(gè)完整的項(xiàng)目程序進(jìn)行并行加速,將所有計(jì)算步驟放在GPU 完成;②將項(xiàng)目程序中包含大量的計(jì)算密集型算法提取出來,單獨(dú)導(dǎo)入GPU 進(jìn)行計(jì)算。一般情況下采取后一種方式對(duì)程序進(jìn)行加速,這樣可在最短的時(shí)間內(nèi)獲得好的加速性能。但是要充分發(fā)揮GPU 強(qiáng)大的計(jì)算能力還需要對(duì)程序性能進(jìn)行調(diào)優(yōu)[8]。CUDA 程序?qū)崿F(xiàn)只是完成了CUDA 加速工作的一小部分,要達(dá)到CUDA 加速的最終目的必須優(yōu)化CUDA 程序[9]。

2.1 CUDA 程序優(yōu)化準(zhǔn)則

針對(duì)CUDA 程序進(jìn)行優(yōu)化需要采取一定的策略。絕大多數(shù)的GPU 應(yīng)用程序優(yōu)化方法具有較高的優(yōu)先級(jí)別,但那些針對(duì)特定環(huán)境下的優(yōu)化手段要在較高優(yōu)先級(jí)別優(yōu)化完成之后再做調(diào)整[10]。圖1 列出3 個(gè)優(yōu)先級(jí)中常見的幾個(gè)優(yōu)化項(xiàng)。

相對(duì)于GPU 動(dòng)輒達(dá)到Tflops 級(jí)別的單精度計(jì)算能力,GPU 存儲(chǔ)帶寬大多是GB/s 級(jí)別。以英偉達(dá)的Tesla P6 顯卡為例,其單精度浮點(diǎn)計(jì)算能力為6.1Tflops,存儲(chǔ)帶寬為192GB/s。要想在Tesla P6 上獲得峰值的計(jì)算性能,程序的計(jì)算訪存比需要達(dá)到22.25。所以,訪存優(yōu)化成為GPU 性能優(yōu)化的研究重點(diǎn)。

Fig.1 Priority of CUDA program optimization strategy圖1 CUDA 程序優(yōu)化策略優(yōu)先級(jí)

2.2 全局內(nèi)存的對(duì)齊與合并

全局內(nèi)存(global memory)是GPU 中存儲(chǔ)空間最大、使用頻率最多的內(nèi)存[11]。當(dāng)線程束向內(nèi)存加載數(shù)據(jù)或從內(nèi)存中讀取數(shù)據(jù)時(shí),傳輸帶寬效率一般只與跨線程的內(nèi)存地址分布和每個(gè)事物內(nèi)存地址的對(duì)齊方式這兩點(diǎn)有關(guān)[12]。一般來說,數(shù)據(jù)傳輸過程中內(nèi)存請(qǐng)求越多,未被使用的字節(jié)被傳回的可能性就越高,會(huì)導(dǎo)致數(shù)據(jù)吞吐量降低。

所有的全局內(nèi)存訪問都會(huì)通過二級(jí)緩存(32Byte 內(nèi)存事務(wù)),有些內(nèi)存訪問會(huì)使用速度更快的一級(jí)緩存(128Byte內(nèi)存事務(wù))。當(dāng)設(shè)備的內(nèi)存事務(wù)首地址是32Byte(僅使用二級(jí)緩存)或者128Byte(使用了一級(jí)緩存)的偶數(shù)倍時(shí),就可實(shí)現(xiàn)對(duì)齊內(nèi)存訪問[13]。在一個(gè)線程束中所有32 個(gè)線程訪問一個(gè)地址連續(xù)的內(nèi)存塊時(shí)就能實(shí)現(xiàn)合并訪問[14]。

因此可將全局內(nèi)存中的數(shù)據(jù)大小盡量整合成32Byte的整數(shù)倍以增加數(shù)據(jù)對(duì)齊的靈活性。對(duì)于無法整合的數(shù)據(jù)如結(jié)構(gòu)體,其尺寸和對(duì)齊要求可使用對(duì)齊修飾符__align__(8)或__align__(16)被編譯器保證。如果受實(shí)際情況限制無法實(shí)現(xiàn)數(shù)據(jù)對(duì)齊或者間隔訪問,就要充分利用共享存儲(chǔ)器來避免程序性能下降。

2.3 共享內(nèi)存訪問沖突與避免

共享內(nèi)存是位于GPU 流處理器(Stream Processor,SM)中的低延遲內(nèi)存池,該內(nèi)存池被線程塊中的所有線程所共享[15]。在物理層面共享內(nèi)存接近SM,因此相較于全局內(nèi)存而言延遲要低大約20~30 倍,而帶寬高大約10 倍[16]。

在調(diào)用共享內(nèi)存時(shí),線程會(huì)通過32 個(gè)存儲(chǔ)體(bank)進(jìn)行訪問。當(dāng)線程束中的多個(gè)線程在同一Bank 中訪問不同地址數(shù)據(jù)時(shí)會(huì)發(fā)生存儲(chǔ)體沖突(bank conflict)[17],導(dǎo)致線程對(duì)共享內(nèi)存重復(fù)請(qǐng)求,所以多路存儲(chǔ)體沖突會(huì)造成訪存阻塞,降低計(jì)算性能并影響帶寬利用率[18]。解決這種存儲(chǔ)體沖突的方法是在每N 個(gè)元素之后添加一個(gè)字,這里的N 是存儲(chǔ)體數(shù)量。由于對(duì)內(nèi)存數(shù)據(jù)進(jìn)行了填充,之前屬于同一個(gè)bank 的存儲(chǔ)單元現(xiàn)在被傳播到了不同的存儲(chǔ)體中,改變了從字到存儲(chǔ)體的映射,如圖2 所示。

Fig.2 Memory padding to avoid memory conflicts圖2 內(nèi)存填充避免存儲(chǔ)體沖突

3 GPU 在信號(hào)處理機(jī)中的實(shí)現(xiàn)

計(jì)算刀片以Intel 公司的至強(qiáng)E5-2648L V4 14 核CPU為主處理器,用于處理流程的控制和資源的調(diào)度;GPU 刀片以Nvidia 公司的Tesla P6 GPU 為核心,用于系統(tǒng)的高性能并行計(jì)算,計(jì)算刀片與GPU 刀片之間通過PCIe3.0 x16 的數(shù)據(jù)總線進(jìn)行數(shù)據(jù)傳輸。

3.1 脈沖壓縮的GPU 實(shí)現(xiàn)

使用GPU 對(duì)某認(rèn)知雷達(dá)搜索模式下的“和差差”3 個(gè)波束、1 024 個(gè)脈沖壓縮距離單元、940 個(gè)有效距離單元、128 積累點(diǎn)數(shù)的信號(hào)進(jìn)行處理。數(shù)據(jù)格式為實(shí)部虛部交替存儲(chǔ)。

在頻域上實(shí)現(xiàn)匹配濾波,使用CUDA 內(nèi)部的CUFFT 庫(kù)來實(shí)現(xiàn)快速傅里葉正逆變換。使用CUFFT 實(shí)現(xiàn)FFT 需要調(diào)用FFT 句柄完成對(duì)數(shù)據(jù)排布和輸出格式的初始化,之后設(shè)定傅里葉變換方向。初始化方式和執(zhí)行傅里葉變換方式如下:

初始化輸入了數(shù)據(jù)維度、排列方式,輸出數(shù)據(jù)的排列方式和輸入輸出的數(shù)據(jù)類型。執(zhí)行函數(shù)規(guī)定輸入輸出的首地址指針和FFT 方向(CUFFT_FORWARDCUFFT_FOR?WARD 是FFT 運(yùn)算,CUFFT_INVERSECUFFT_INVERSE 是IFFT 運(yùn)算)。

rank 表示FFT 運(yùn)算的信號(hào)維度;n 是一個(gè)數(shù)組,表示進(jìn)行FFT 的每個(gè)信號(hào)行數(shù),列數(shù)和頁(yè)數(shù)與上一個(gè)參數(shù)rank 相互呼應(yīng);inembed 表示輸入數(shù)據(jù)的三維點(diǎn)數(shù),[頁(yè)數(shù),列數(shù),行數(shù)]、[列數(shù),行數(shù)]或[行數(shù)],若數(shù)據(jù)是一維數(shù)據(jù)該參數(shù)會(huì)被忽略;istride 表示每個(gè)相鄰輸入信號(hào)的直接距離;idist為兩個(gè)連續(xù)輸入信號(hào)起始元素之間的間隔;onembed 為輸出數(shù)據(jù)情況,同inembed;osteide 和odist 與此同理,batch 為進(jìn)行FFT 運(yùn)算的信號(hào)個(gè)數(shù)。

傳輸?shù)皆O(shè)備端的數(shù)據(jù)按照列優(yōu)先的存儲(chǔ)規(guī)則排布,可通過改變參數(shù)istride 與idist 或osteide 與odist 來改變FFT 的輸入輸出數(shù)據(jù)格式。在工程實(shí)踐中有時(shí)會(huì)在矩陣數(shù)據(jù)計(jì)算前進(jìn)行轉(zhuǎn)置操作以追求數(shù)據(jù)排布的一致性,可通過句柄初始化設(shè)定數(shù)據(jù)的輸出格式,直接省略轉(zhuǎn)置步驟。超大數(shù)據(jù)的矩陣轉(zhuǎn)置會(huì)耗費(fèi)大量時(shí)間,該方法可以有效優(yōu)化運(yùn)算時(shí)間。

頻域的匹配濾波實(shí)現(xiàn)就是使用頻域的匹配濾波系數(shù)(脈沖壓縮系數(shù))與經(jīng)過FFT 處理后的信號(hào)進(jìn)行向量點(diǎn)乘。在CUDA 中暫時(shí)沒有專門針對(duì)向量點(diǎn)乘的函數(shù),需要編寫核函數(shù)實(shí)現(xiàn)系數(shù)相乘。可將匹配濾波系數(shù)放入常量?jī)?nèi)存或者共享內(nèi)存中以提高數(shù)據(jù)的讀取效率,或者在全局內(nèi)存中采取數(shù)據(jù)對(duì)齊合并訪問實(shí)現(xiàn)優(yōu)化。

經(jīng)過CUFFT 庫(kù)實(shí)現(xiàn)的快速傅里葉變換(Fast Fourier transform,F(xiàn)FT)使運(yùn)算結(jié)果增大2N倍,在使用MatLab 對(duì)GPU 計(jì)算結(jié)果進(jìn)行誤差分析時(shí)需要考慮。使用MatLab 對(duì)輸入信號(hào)進(jìn)行同樣計(jì)算,得到的運(yùn)算誤差分析如圖3 所示。

由分析結(jié)果可知,GPU 計(jì)算結(jié)果的實(shí)部與虛部和Mat?Lab 的誤差都在10-4左右。考慮到GPU 上計(jì)算的數(shù)據(jù)類型為單精度FLOAT 型,而在MatLab 上計(jì)算的數(shù)據(jù)類型都自動(dòng)轉(zhuǎn)換成雙精度DOUBEL 型,因此0.01%的誤差屬于可接受范圍。在距離單元上對(duì)數(shù)據(jù)進(jìn)行裁剪,使距離單元變成有效距離單元940,即可對(duì)數(shù)據(jù)進(jìn)行動(dòng)目標(biāo)檢測(cè)處理。

3.2 動(dòng)目標(biāo)檢測(cè)GPU 實(shí)現(xiàn)

動(dòng)目標(biāo)檢測(cè)(Moving Target Detection,MTD)濾波器組實(shí)現(xiàn)方法一般分為兩類:①設(shè)計(jì)多階數(shù)的有限脈沖響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器組對(duì)脈沖壓縮之后的數(shù)據(jù)進(jìn)行濾波[19],該方法能針對(duì)回波信號(hào)自適應(yīng)降低信號(hào)副瓣,但計(jì)算量過大,對(duì)于硬件的計(jì)算能力要求過高;②采用快速傅里葉變換。這種方式計(jì)算效率較高,在計(jì)算資源有限的情況下能較好完成MTD 任務(wù),但會(huì)導(dǎo)致濾波后信號(hào)副瓣較高,降低MTD 檢測(cè)性能。一般在FFT 運(yùn)算之前會(huì)針對(duì)不同的雜波類型對(duì)數(shù)據(jù)加上合適的窗函數(shù)以降低副瓣干擾,不過加窗操作會(huì)導(dǎo)致主瓣的展寬,降低主瓣的增益。

將與積累點(diǎn)數(shù)相同階數(shù)的二維FIR 系數(shù)矩陣和待處理的數(shù)據(jù)矩陣相乘,實(shí)現(xiàn)有限脈沖響應(yīng)濾波器算法,可使用CUDA內(nèi)含的CUBLAS庫(kù)專門針對(duì)矩陣運(yùn)算進(jìn)行加速。

CUBALS 庫(kù)復(fù)數(shù)矩陣相乘,C=alpha*A*B+beta*C,函數(shù)為:

transa和transb表示矩陣A、B 是否需要在計(jì)算前進(jìn)行轉(zhuǎn)置;m,n,k是計(jì)算矩陣的維度信息;lda,ldb,ldc是對(duì)應(yīng)矩陣的主維度。GPU 上的矩陣存儲(chǔ)方式默認(rèn)列優(yōu)先,有別于C/C++的行優(yōu)先。對(duì)矩陣相乘的結(jié)果進(jìn)行求模,導(dǎo)出求模結(jié)果,MTD 輸出結(jié)果和誤差分析如圖4 所示。GPU 和MatLab計(jì)算的結(jié)果誤差在0.05%以內(nèi),屬可接受范圍。

Fig.3 Error analysis of pulse compression results圖3 脈沖壓縮結(jié)果誤差分析

Fig.4 MTD result error圖4 MTD 結(jié)果誤差

3.3 恒虛警檢測(cè)的GPU 實(shí)現(xiàn)

在某認(rèn)知雷達(dá)中使用恒虛警檢測(cè)(Constant False Alarm Rate,CFAR)算法為最大選擇(Greatest Of)算法,在GO-CFAR 檢測(cè)器中取兩個(gè)局部估計(jì)的較大值作為總的雜波功率水平估計(jì),在每次被測(cè)目標(biāo)單元更新時(shí),滑動(dòng)窗口內(nèi)的參考單位都會(huì)再次調(diào)用。若還是將數(shù)據(jù)存儲(chǔ)在全局內(nèi)存中,即便將數(shù)據(jù)對(duì)齊合并讀取也會(huì)因?yàn)槿謨?nèi)存距離線程較遠(yuǎn)而花銷大量時(shí)間,所以需要將被檢測(cè)數(shù)據(jù)放在線程讀取速度更快的共享內(nèi)存中。同時(shí)因?yàn)楣蚕韮?nèi)存只能被同一個(gè)線程塊中的線程所共享,所以要分配一個(gè)線程塊來計(jì)算一個(gè)多普勒道內(nèi)的數(shù)據(jù),線程塊內(nèi)的每個(gè)線程處理一個(gè)距離單元,實(shí)現(xiàn)細(xì)粒度并行優(yōu)化。

將GPU 處理結(jié)果與MATLAB 的處理結(jié)果進(jìn)行對(duì)比,得到各自的CFAR 結(jié)果如圖5 所示。圖中結(jié)果1 表示通過恒虛警檢測(cè)門限,0 則表示未通過檢測(cè)門限,表示位置沒有檢測(cè)到目標(biāo)。脈沖壓縮后的雷達(dá)回波信號(hào)存在距離副瓣,強(qiáng)的距離副瓣會(huì)產(chǎn)生虛假目標(biāo)[20],所以恒虛警檢測(cè)后會(huì)出現(xiàn)過門限目標(biāo),若要檢測(cè)出目標(biāo)確切位置還需要進(jìn)行點(diǎn)跡凝聚算法。

Fig.5 Comparison of CFAR results(no condensation)圖5 CFAR 結(jié)果對(duì)比(未凝聚)

4 GPU 實(shí)現(xiàn)效果與優(yōu)化結(jié)果

將GPU 處理結(jié)果與MatLab 處理結(jié)果進(jìn)行對(duì)比。脈沖壓縮、動(dòng)目標(biāo)檢測(cè)和雜波圖誤差在10-4級(jí)別,恒虛警輸出結(jié)果完全一致。對(duì)于“和差差”3 個(gè)波束,1 024 個(gè)脈沖壓縮距離單元,128 積累點(diǎn)數(shù)的脈沖壓縮處理,“和路”波束940 個(gè)有效距離單元,128 積累點(diǎn)數(shù)的動(dòng)目標(biāo)檢測(cè)和恒虛警檢測(cè),在GPU 和CPU 下的處理時(shí)間對(duì)比如表2 所示。

Table 2 Comparison of radar signal processing time in GPU and CPU表2 雷達(dá)信號(hào)處理在GPU 與CPU 中的耗時(shí)對(duì)比

可以看出,在包含大量FFT 和點(diǎn)乘運(yùn)算的脈沖壓縮和動(dòng)目標(biāo)檢測(cè)部分GPU 加速效果明顯。對(duì)于CPU 不擅長(zhǎng)的矩陣相乘運(yùn)算,GPU 表現(xiàn)出驚人的加速效果,在極短時(shí)間內(nèi)實(shí)現(xiàn)了基于時(shí)域有限脈沖響應(yīng)濾波器的MTD。在充分利用計(jì)算資源的同時(shí)避免了加窗造成的主瓣展寬。在存在大量邏輯運(yùn)算的CFAR 部分,經(jīng)過GPU 的內(nèi)存優(yōu)化之后性能也得到了較大提升,但與脈沖壓縮和動(dòng)目標(biāo)檢測(cè)相比,加速的幅度較小,仍需要找到更好的優(yōu)化方法。

5 結(jié)語

本文使用CPU+GPU 異構(gòu)計(jì)算平臺(tái)實(shí)現(xiàn)了雷達(dá)信號(hào)處理中的脈沖壓縮、動(dòng)目標(biāo)檢測(cè)和恒虛警檢測(cè)。由于GPU 強(qiáng)大的并行計(jì)算能力,雷達(dá)信號(hào)處理算法在經(jīng)過CUDA C 優(yōu)化后較好地提升了計(jì)算性能。通過對(duì)GPU 的內(nèi)部存儲(chǔ)特性分析和挖掘CUDA 高速計(jì)算庫(kù),對(duì)已實(shí)現(xiàn)的CUDA 程序進(jìn)一步優(yōu)化,二次提升了計(jì)算性能。特別是使用FIR 技術(shù)實(shí)現(xiàn)MTD 時(shí),在獲得相較于CPU 實(shí)現(xiàn)1 000 倍加速之外,還避免了加窗操作對(duì)雷達(dá)回波信號(hào)主瓣的展寬,降低了主瓣的能量損失。但是,該方法對(duì)于內(nèi)含大量邏輯判斷的恒虛警檢測(cè)獲得的加速效果有限,后續(xù)需要找到更優(yōu)的加速方案以實(shí)現(xiàn)程序的全面優(yōu)化。

猜你喜歡
計(jì)算能力優(yōu)化檢測(cè)
超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
淺談如何提高小學(xué)生的計(jì)算能力
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
小學(xué)生計(jì)算能力的提高策略
甘肅教育(2021年10期)2021-11-02 06:14:02
民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
關(guān)于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
小學(xué)生計(jì)算能力的培養(yǎng)
甘肅教育(2020年21期)2020-04-13 08:08:42
主站蜘蛛池模板: av在线5g无码天天| 99精品伊人久久久大香线蕉| 26uuu国产精品视频| 国产欧美高清| 亚洲精品第五页| 天天色综网| 国产高清在线丝袜精品一区| 亚洲高清在线天堂精品| 欧美成人影院亚洲综合图| 人妻丰满熟妇av五码区| 日韩二区三区| 91精品专区| 特级aaaaaaaaa毛片免费视频| 在线观看免费人成视频色快速| 亚洲大学生视频在线播放| 夜夜拍夜夜爽| 欧美成人手机在线观看网址| AⅤ色综合久久天堂AV色综合| 久久久久无码精品国产免费| 蜜臀AV在线播放| 国产乱子伦一区二区=| 亚洲美女一级毛片| AⅤ色综合久久天堂AV色综合| 亚洲人成网站18禁动漫无码| 91色老久久精品偷偷蜜臀| 97国产成人无码精品久久久| 国产亚洲精久久久久久无码AV| 国产一区二区人大臿蕉香蕉| 色色中文字幕| 凹凸国产分类在线观看| 97在线观看视频免费| 毛片网站免费在线观看| 亚洲中文字幕久久精品无码一区| 婷婷六月激情综合一区| 女人av社区男人的天堂| 亚洲国产综合自在线另类| 在线欧美日韩| 色丁丁毛片在线观看| 大香伊人久久| 国产真实二区一区在线亚洲| 亚洲日本在线免费观看| 真实国产精品vr专区| 人妻中文久热无码丝袜| 欧美精品成人一区二区在线观看| 亚洲大尺码专区影院| 欧美国产日韩在线播放| 国产成人免费| 亚洲三级成人| 国产一级一级毛片永久| 国产日韩欧美一区二区三区在线 | 国产精品视频a| 亚洲黄色视频在线观看一区| 亚洲91精品视频| 成人午夜天| 久久77777| 国产乱子伦一区二区=| 无码国产伊人| 欧美在线综合视频| a毛片在线播放| 亚洲美女一级毛片| 国产欧美日韩91| 亚洲色中色| 午夜一级做a爰片久久毛片| 国产精品制服| 丁香婷婷激情综合激情| 欧美亚洲综合免费精品高清在线观看| 亚洲第一精品福利| 国产精品久久国产精麻豆99网站| 婷婷丁香在线观看| av无码一区二区三区在线| 亚洲中文字幕97久久精品少妇| 九一九色国产| 毛片网站观看| 国产在线八区| 狼友视频一区二区三区| 亚洲网综合| 黄色一级视频欧美| 九九热视频精品在线| a天堂视频在线| 精品人妻无码中字系列| av在线手机播放| 在线不卡免费视频|