国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPU的信號(hào)產(chǎn)生及脈沖壓縮實(shí)現(xiàn)

2018-01-15 19:47:48
關(guān)鍵詞:線程調(diào)頻頻域

(西安電子科技大學(xué)雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室,陜西西安710071)

0 引言

高性能計(jì)算(High Performance Computing,HPC)作為計(jì)算機(jī)科學(xué)的一個(gè)分支,隨著人們對(duì)信息處理能力要求的日益提高,成為現(xiàn)代社會(huì)中不可或缺的一部分。高性能計(jì)算主要通過(guò)并行計(jì)算來(lái)實(shí)現(xiàn),目前所采用的并行計(jì)算包括CPU多核并行、超級(jí)計(jì)算機(jī)、集群與分布式計(jì)算、CPU+GPU異構(gòu)并行等。其中,通過(guò)CPU多核并行、超級(jí)計(jì)算機(jī)、集群與分布式計(jì)算主要實(shí)現(xiàn)海量數(shù)據(jù)處理,但其具有硬件成本高、開(kāi)發(fā)難度大等缺點(diǎn)。而基于CPU+GPU異構(gòu)的軟件化雷達(dá)就大大降低了成本,簡(jiǎn)化了硬件結(jié)構(gòu),與傳統(tǒng)基于硬件的雷達(dá)相比,軟件化雷達(dá)更加簡(jiǎn)單通用,顯示器作為外設(shè),整套系統(tǒng)體系的硬件由一臺(tái)通用計(jì)算機(jī)和雷達(dá)信息采集板構(gòu)成,信號(hào)與信息的處理及可視化完全由通用計(jì)算機(jī)與協(xié)處理器GPU來(lái)完成[1-2]。而計(jì)算統(tǒng)一設(shè)備架構(gòu)(Compute Unified Device Architecture,CUDA)是一種將GPU作為數(shù)據(jù)并行計(jì)算設(shè)備的軟硬件體系,使專(zhuān)注于圖像處理的GPU超級(jí)計(jì)算能力在數(shù)據(jù)處理和科學(xué)計(jì)算等通用計(jì)算領(lǐng)域廣泛應(yīng)用,也使其在軟件化雷達(dá)中發(fā)揮獨(dú)特優(yōu)勢(shì)[3-4]。

此外,GPU作為一種圖形處理器顯卡,在處理能力與存儲(chǔ)帶寬上相對(duì)CPU有絕對(duì)優(yōu)勢(shì),對(duì)于同等規(guī)模運(yùn)算處理,通過(guò)GPU加速的高性能計(jì)算可能從大型計(jì)算機(jī)過(guò)渡到臺(tái)式機(jī)以及桌邊型計(jì)算機(jī)上。同時(shí),隨著GPU技術(shù)的飛速發(fā)展,其并行計(jì)算能力也逐步增強(qiáng),浮點(diǎn)運(yùn)算能力甚至可以達(dá)到同代CPU的10倍以上[5]。目前,隨著成本與性能等方面的要求逐漸提高,CPU以摩爾定律的速度發(fā)展,滿(mǎn)足不了目前信息處理對(duì)精度、實(shí)時(shí)性、大數(shù)據(jù)的要求。相對(duì)而言,GPU仍以差不多3倍于摩爾定律的增長(zhǎng)速度發(fā)展,平均每幾個(gè)月其性能就提升一倍。這為未來(lái)大規(guī)模數(shù)據(jù)運(yùn)算提供了新選擇[6]。

鑒于GPU強(qiáng)大的并行計(jì)算能力,通過(guò)利用VS 2013+CUDA 7.5作為仿真平臺(tái),實(shí)現(xiàn)雷達(dá)信號(hào)與信息處理,并以線性調(diào)頻信號(hào)的產(chǎn)生以及線性調(diào)頻信號(hào)脈沖頻域脈沖壓縮為例,與傳統(tǒng)CPU運(yùn)算性能進(jìn)行比較,驗(yàn)證GPU處理數(shù)據(jù)的正確性以及高效性。

1 線性調(diào)頻信號(hào)及脈沖壓縮原理

1.1 線性調(diào)頻信號(hào)

線性調(diào)頻信號(hào)是研究最早的一種脈沖壓縮信號(hào),其產(chǎn)生和處理都比較容易,技術(shù)上比較成熟,因此得到了廣泛的應(yīng)用。它是在匹配濾波的基礎(chǔ)上提出的,突出優(yōu)點(diǎn)是匹配濾波器對(duì)回波信號(hào)的多普勒平移不敏感[7-8]。

假設(shè)雷達(dá)發(fā)射線性調(diào)頻脈沖信號(hào),可表示為

式中,Te為發(fā)射脈沖寬度,f0為中心載頻,μ=B/Te為調(diào)頻斜率,B為調(diào)頻帶寬。

1.2 頻域脈沖壓縮基本算法

為了滿(mǎn)足提高探測(cè)距離和距離分辨率的雙重要求,就要采取大的時(shí)寬帶寬信號(hào)。脈沖壓縮技術(shù)的出現(xiàn)有效地解決了雷達(dá)作用距離和距離分辨率的矛盾,它既可以發(fā)射寬脈沖以提高平均功率和雷達(dá)的檢測(cè)能力,又能保持窄脈沖的距離分辨率。實(shí)現(xiàn)頻域脈壓的方法[9]如圖1所示。

圖1 頻域脈沖壓縮示意圖

從圖1可以看出,頻域脈壓的核心算法是快速傅里葉變換FFT、快速傅里葉逆變換IFFT以及復(fù)數(shù)相乘運(yùn)算。采用頻域脈沖壓縮方法相對(duì)時(shí)域卷積而言,其運(yùn)算量將大為減少,而且脈沖壓縮時(shí)可利用加窗函數(shù)來(lái)抑制旁瓣。只需將匹配濾波器系數(shù)預(yù)先進(jìn)行頻域相乘(頻域加窗)或者時(shí)域相乘(時(shí)域加窗),即

式中,w(n)為窗函數(shù),可以根據(jù)需要選取合適的窗函數(shù)。需要注意的是,FFT/IFFT的點(diǎn)數(shù)不是任意選取的。假設(shè)輸入信號(hào)點(diǎn)數(shù)為N,濾波器階數(shù)為L(zhǎng),那么經(jīng)濾波后輸出的信號(hào)點(diǎn)數(shù)應(yīng)該為N+L-1,即對(duì)于FFT的點(diǎn)數(shù)選擇必須保證其大于等于N+L-1,通常取2的冪對(duì)應(yīng)的數(shù)值大于等于N+L-1。因此,在對(duì)濾波器系數(shù)及輸入信號(hào)sr(n)進(jìn)行FFT之前,要先對(duì)序列進(jìn)行補(bǔ)零處理。

2 CUDA編程模型

CUDA編程模型將CPU及系統(tǒng)內(nèi)存稱(chēng)為主機(jī)(Host),而將GPU及其內(nèi)存稱(chēng)為設(shè)備(Device)。在GPU上執(zhí)行的函數(shù)通常稱(chēng)為核函數(shù)(Kernel)。CUDA C通過(guò)某種語(yǔ)法方法(如__global__)將一個(gè)函數(shù)標(biāo)記為“設(shè)備代碼”(Device Code),這種簡(jiǎn)單的標(biāo)記方法,表示將主機(jī)代碼發(fā)送到一個(gè)編譯器,而將設(shè)備代碼發(fā)送到另一個(gè)編譯器。而CUDA編譯器在運(yùn)行時(shí)負(fù)責(zé)實(shí)現(xiàn)從主機(jī)中調(diào)用設(shè)備代碼。CUDA線程并行分為線程格中線程塊并行和線程塊中線程并行兩個(gè)層次[10]。所有線程同時(shí)運(yùn)行相同的Kernel并根據(jù)各自的線程ID接入不同的內(nèi)存地址進(jìn)行運(yùn)算,最終達(dá)到并行運(yùn)算的目的。

CPU完成預(yù)處理并控制信號(hào)處理的任務(wù)調(diào)度和負(fù)載分配,按照雷達(dá)信號(hào)處理流程,將數(shù)據(jù)通過(guò)PCI-E總線分塊傳輸至顯存,利用GPU特有的單指令多線程(SIMT)方式實(shí)現(xiàn)線程并行化計(jì)算。每個(gè)脈沖重復(fù)周期所包含的采樣數(shù)據(jù)處理方式相同,充分利用GPU多線程、細(xì)粒度并行的優(yōu)勢(shì)進(jìn)行處理。

簡(jiǎn)單來(lái)說(shuō),一個(gè)CUDA程序的執(zhí)行是由主機(jī)代碼開(kāi)始的,主機(jī)代碼主要完成初始化、數(shù)據(jù)輸入等基本工作,然后對(duì)設(shè)備端的顯存進(jìn)行分配,將內(nèi)存中數(shù)據(jù)通過(guò)PCI-E總線傳入顯存,調(diào)用Kernel函數(shù)在設(shè)備端完成運(yùn)算,最后將運(yùn)算結(jié)果傳回主機(jī)并釋放所分配內(nèi)存。利用CUDA實(shí)現(xiàn)線性調(diào)頻信號(hào)產(chǎn)生及頻域脈壓,主要包含以下步驟:

第一步:在CPU端進(jìn)行數(shù)據(jù)初始化并為數(shù)據(jù)在設(shè)備端分配內(nèi)存。

第二步:在GPU上產(chǎn)生線性調(diào)頻信號(hào)以及濾波器系數(shù),這里增加窗函數(shù)來(lái)抑制旁瓣。

第三步:利用CUDA提供的CUFFT庫(kù)將產(chǎn)生的回波信號(hào)序列sr(n)和濾波器系數(shù)hr(n)進(jìn)行快速傅里葉變換得到Sr(f)和H(f)。

第四步:調(diào)用復(fù)數(shù)相乘函數(shù)或者CUDA提供的CUBLAS向量運(yùn)算庫(kù)函數(shù)完成Sr(f)和H(f)的相乘運(yùn)算。

第五步:利用CUDA提供的CUFFT庫(kù)將運(yùn)算結(jié)果進(jìn)行逆傅里葉變換,即將運(yùn)算結(jié)果從頻域變換到時(shí)域。這里需要注意的是,時(shí)域到頻域的運(yùn)算結(jié)果有一個(gè)倍數(shù)關(guān)系,需要將轉(zhuǎn)換結(jié)果乘以輸入信號(hào)點(diǎn)數(shù)的倒數(shù)得到的才是最終轉(zhuǎn)換的結(jié)果。

第六步:將運(yùn)算結(jié)果從顯存復(fù)制回主機(jī)內(nèi)存,并釋放相應(yīng)內(nèi)存和顯存。

其算法流程如圖2所示。

圖2 CUDA程序?qū)崿F(xiàn)流程

在CUDA程序中,主要完成的是主機(jī)與設(shè)備之間的數(shù)據(jù)傳輸以及內(nèi)核函數(shù)的執(zhí)行,所以,可以采用以下3種方法減少傳輸時(shí)間,加快運(yùn)算速度,提高運(yùn)算效率。

方法一:運(yùn)算時(shí)采用共享存儲(chǔ)器。共享存儲(chǔ)器使得一個(gè)線程塊中多個(gè)線程能夠在計(jì)算上進(jìn)行通信和協(xié)作,而且,共享內(nèi)存緩沖區(qū)駐留在物理GPU上,因此,在訪問(wèn)共享內(nèi)存時(shí)的延遲要遠(yuǎn)遠(yuǎn)低于訪問(wèn)普通緩沖區(qū)的延遲。

方法二:可以采用紋理存儲(chǔ)器來(lái)保存一些濾波系數(shù),使用紋理內(nèi)核函數(shù)來(lái)讀取紋理存儲(chǔ)器。紋理存儲(chǔ)器的存儲(chǔ)方式為只讀,它能夠減少對(duì)內(nèi)存的訪問(wèn)請(qǐng)求并提供更高效的內(nèi)存帶寬。

方法三:為提高數(shù)據(jù)傳輸帶寬,可以對(duì)采樣點(diǎn)開(kāi)辟頁(yè)鎖定內(nèi)存,從而確保了該內(nèi)存始終駐留在物理內(nèi)存中,使得信號(hào)處理的內(nèi)核函數(shù)可直接進(jìn)行主機(jī)和設(shè)備端的通信,減少數(shù)據(jù)拷貝時(shí)間。

3 仿真結(jié)果及分析

3.1 LFM信號(hào)產(chǎn)生仿真結(jié)果

仿真采用的操作系統(tǒng)為Windows 7 SP1,顯卡是計(jì)算能力為2.0的NVIDIA Tesla C2050,支持雙精度浮點(diǎn)運(yùn)算。為了提高運(yùn)算精度,數(shù)據(jù)處理均采用雙精度浮點(diǎn)數(shù)。

在仿真中,假定線性調(diào)頻信號(hào)的中心頻率為f0=0 MHz,信號(hào)帶寬B=2.5 MHz,信號(hào)的時(shí)寬T=150μs,采樣頻率fs=15 MHz。圖3和圖4分別為在CPU和在GPU上產(chǎn)生的線性調(diào)頻信號(hào)。

圖3 CPU上產(chǎn)生的線性調(diào)頻信號(hào)

圖4 GPU上產(chǎn)生的線性調(diào)頻信號(hào)

3.2 頻域脈壓仿真結(jié)果

同樣,在GPU和CPU上分別實(shí)現(xiàn)脈沖壓縮,結(jié)果如圖5和圖6所示。

圖5 CPU上脈沖壓縮結(jié)果

圖6 GPU上脈沖壓縮結(jié)果

從圖5和圖6可以看出,在CUDA平臺(tái)上利用GPU產(chǎn)生線性調(diào)頻信號(hào)以及頻域脈沖壓縮結(jié)果與CPU上處理的結(jié)果是一樣的,但是通過(guò)測(cè)量,可以發(fā)現(xiàn),兩者的處理速度有很大差別。表1所示為處理相同數(shù)據(jù)時(shí)CPU與GPU所用的時(shí)間對(duì)比。

表1 CPU與GPU所用的時(shí)間對(duì)比

從表1數(shù)據(jù)可以看出,GPU比CPU的數(shù)據(jù)運(yùn)算效率更高,而且數(shù)據(jù)量越大,GPU的優(yōu)勢(shì)越明顯。需要說(shuō)明的是,GPU有很大一部分時(shí)間都用在數(shù)據(jù)傳輸上,所以,在GPU運(yùn)算過(guò)程中,應(yīng)當(dāng)盡量減少數(shù)據(jù)傳輸或者采用頁(yè)鎖定內(nèi)存等方式減少數(shù)據(jù)傳輸時(shí)間。

4 結(jié)束語(yǔ)

實(shí)驗(yàn)表明,通過(guò)直接在GPU上產(chǎn)生線性調(diào)頻信號(hào),不僅達(dá)到了和CPU上一樣的效果,而且節(jié)省了將數(shù)據(jù)復(fù)制到GPU顯存的時(shí)間,提高了運(yùn)算效率。直接通過(guò)GPU產(chǎn)生濾波器系數(shù),大大減少了數(shù)據(jù)從CPU傳輸?shù)紾PU顯存的時(shí)間,加快了運(yùn)算速度。另外,在GPU上實(shí)現(xiàn)頻域脈壓時(shí),GPU上FFT和IFFT運(yùn)算均可以采用CUFFT庫(kù)。對(duì)于短點(diǎn)的FFT運(yùn)算,由于數(shù)據(jù)量小,系統(tǒng)直接將所有數(shù)據(jù)都拷貝到共享內(nèi)存中實(shí)現(xiàn)。但對(duì)于長(zhǎng)點(diǎn)數(shù)的FFT,由于共享內(nèi)存容量有限,因此需要將一維長(zhǎng)點(diǎn)FFT拆分為二維短點(diǎn)數(shù)FFT,每個(gè)短點(diǎn)數(shù)的FFT與復(fù)乘運(yùn)算均可以在共享內(nèi)存中進(jìn)行,由于共享內(nèi)存訪問(wèn)速度遠(yuǎn)高于共享全局,因此在和CPU運(yùn)算效果相同的情況下,相比CPU而言,可以大大提高運(yùn)算效率??偟膩?lái)說(shuō),利用CUDA處理數(shù)據(jù)很好地滿(mǎn)足了目前信息處理對(duì)精度、實(shí)時(shí)性、大數(shù)據(jù)的要求。

[1]張舒,褚艷利,趙凱勇,等.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,2009:5-8,14-18.

[2]裴頌文,寧?kù)o,張俊格.CPU-GPU異構(gòu)多核系統(tǒng)的動(dòng)態(tài)任務(wù)調(diào)度算法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(11):3315-3316.

[3]陳伯孝.現(xiàn)代雷達(dá)系統(tǒng)分析與設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2012:189-190.

[4]武勇,王俊,張培川,等.CUDA架構(gòu)下外輻射源雷達(dá)雜波抑制并行算法[J].西安電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,42(1):104-105.

[5]SABDERS J,KANDROT E.GPU高性能編程CUDA實(shí)戰(zhàn)[M].聶雪軍,等譯.北京:機(jī)械工業(yè)出版社,2011:13-18.

[6]商哲然,譚賢四,曲智國(guó),等.基于GPU的RFT算法并行化[J].雷達(dá)科學(xué)與技術(shù),2016,14(5):505-506.SHANG Zheran,TAN Xiansi,QU Zhiguo,et al.Parallel Implementation of RFT Algorithm on GPU[J].Radar Science and Technology,2016,14(5):505-506.(in Chinese)

[7]康乃馨,何明浩,王冰切,等.基于壓縮感知的多徑LFM信號(hào)的參數(shù)估計(jì)[J].雷達(dá)科學(xué)與技術(shù),2016,14(3):291-292.KANG Naixin,HE Minghao,WANG Bingqie,et al.Parameter Estimation of Multipath LFM Signal Based on Compressive Sensing[J].Radar Science and Technology,2016,14(3):291-292.(in Chinese)

[8]朱文貴,劉凱,韓嘉賓.基于PRI變換的混疊LFM雷達(dá)信號(hào)分選[J].雷達(dá)科學(xué)與技術(shù),2016,14(6):630-631.ZHU Wengui,LIU Kai,HAN Jiabin.Sorting of the Aliasing LFM Radar Signals Based on PRI Transform[J].Radar Science and Technology,2016,14(6):630-631.(in Chinese)

[9]盧敏,王金茵,盧剛,等.CPU/GPU異構(gòu)混合并行的柵格數(shù)據(jù)空間分析研究:以地形因子計(jì)算為例[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(1):172-173.

[10]胡賓賓,祁榮賓,錢(qián)峰.一種基于CUDA的并行多目標(biāo)進(jìn)化算法[J].計(jì)算機(jī)與應(yīng)用化學(xué),2015,32(1):1-2.

猜你喜歡
線程調(diào)頻頻域
考慮頻率二次跌落抑制的風(fēng)火聯(lián)合一次調(diào)頻控制
能源工程(2021年5期)2021-11-20 05:50:42
頻域稀疏毫米波人體安檢成像處理和快速成像稀疏陣列設(shè)計(jì)
淺談linux多線程協(xié)作
基于改進(jìn)Radon-Wigner變換的目標(biāo)和拖曳式誘餌頻域分離
調(diào)頻發(fā)射機(jī)技術(shù)改造
調(diào)頻激勵(lì)器干擾的排除方法
一種基于頻域的QPSK窄帶干擾抑制算法
基于頻域伸縮的改進(jìn)DFT算法
調(diào)頻引信中噪聲調(diào)幅干擾的自適應(yīng)抑制
Linux線程實(shí)現(xiàn)技術(shù)研究
新乡县| 邯郸市| 元朗区| 原平市| 清河县| 双桥区| 德清县| 华坪县| 闻喜县| 内乡县| 聂拉木县| 连云港市| 沙洋县| 华蓥市| 吴忠市| 河津市| 成安县| 额敏县| 绥德县| 遵义市| 隆子县| 扎囊县| 荔浦县| 尤溪县| 寿阳县| 遵义市| 南安市| 安龙县| 岢岚县| 花垣县| 连山| 玉山县| 丰台区| 潜山县| 大竹县| 黄陵县| 游戏| 卫辉市| 闽侯县| 晋城| 乐都县|