席寧
【摘要】 本文基于NVIDIA公司的CUDA平臺,提出將CUDA技術(shù)的通用計算能力應(yīng)用到虛擬無線電的數(shù)據(jù)處理中,提高系統(tǒng)的數(shù)據(jù)處理能力,通過與CPU平臺作對比進(jìn)行性能的分析和比較得出,通過擴(kuò)展GPU板卡可以有效的提高工作站的計算能力,可以有效的減少虛擬無線電計算機(jī)集群中處理節(jié)點計算機(jī)的數(shù)量,可以減小系統(tǒng)體積和系統(tǒng)成本。
【關(guān)鍵詞】 CUDA GPU FFT 傅里葉變換
一、試驗方案的選擇
考慮到試驗方案要有比較高的計算密度,使CPU和GPU滿負(fù)荷的工作,能更好的比較兩者在滿負(fù)荷最大計算能力的差別,所以在仿真實驗中選擇了FFT快速傅里葉變換作為一個高密度乘法和加法運(yùn)算任務(wù)交給CPU和GPU做處理,并比較兩者在相同乘法和加法運(yùn)算量下的計算能力表現(xiàn)。
二、基于CUDA技術(shù)實現(xiàn)GPU通用計算與CPU的性能比較
GPU的CUDA技術(shù)非常適合大數(shù)據(jù)量的并行計算,通過在MATLAB仿真環(huán)境下對FFT快速傅里葉變換計算速度的比較,觀察NVIDIA公司新技術(shù)CUDA對FFT算法的加速效果,發(fā)現(xiàn)存在的問題和作出分析。
2.1 試驗方案和試驗條件
在使用MATLAB仿真之前,需要安裝最新的驅(qū)動程序和CUDA工具包和CUDA的SDK包。安裝NVIDIA公司提供的插件Matlab_CUDA1.1后,即可在MATLAB的開發(fā)環(huán)境里調(diào)用GPU的硬件資源進(jìn)行計算。
2.2 CUDA架構(gòu)下程序流程
仿真程序?qū)⒆龆SN階隨機(jī)矩陣的FFT快速傅里葉變換,程序調(diào)用了CUFFT庫中的cufftExecC2C(cufftHandle plan,cufftComplex *idata,cufftComplex *odata,int direction)基于復(fù)數(shù)的快速傅里葉變換函數(shù)實現(xiàn)FFT計算,不同的N將得有不同的計算速度,可以得到使用CUDA技術(shù)時的計算時間,同時與不使用CUDA的基于CPU的計算時間比較,觀察CUDA對FFT的加速效果。
2.3 試驗方法
由于CUDA技術(shù)比較適合并行計算,仿真程序?qū)FT的以不同的點數(shù)計算結(jié)果作比較,觀察CPU和GPU在N取不同值時的表現(xiàn)。為了排除平臺中其他程序的運(yùn)行造成的對結(jié)果的影響,在MATLAB的仿真環(huán)境中,使用CPU計算的時候直接調(diào)用了MATLAB的二維快速傅里葉變化函數(shù)fft2(),使用GPU計算時適用了程序fft2withcudaacc(),該函數(shù)通過MATLAB的MEX功能接口調(diào)用了CUFFT的快速傅里葉變換函數(shù)cufftExecC2C。
三、試驗結(jié)果分析
仿真平臺采用主流PC平臺THINKPAD SL400電腦,其CPU是INTEL酷睿二代雙核處理器T5870,GPU是NVIDIA GeForce G 105M,GPU擁有8個處理核心。
計算二維128、512、1024和2048階隨機(jī)矩陣的FFT。利用MATLAB的計時功能函數(shù)(tic,toc),實現(xiàn)對快速傅里葉變換的計時。在試驗中發(fā)現(xiàn),當(dāng)處理的數(shù)據(jù)比較小時,基于GPU和基于CPU的二維快速傅里葉變換速度沒有太大區(qū)別,這是因為這時候的數(shù)據(jù)量沒有使GPU和CPU滿負(fù)荷功能工作,不能很好的體現(xiàn)兩者的區(qū)別,但是當(dāng)提高二維隨即矩陣的階數(shù)時,隨著數(shù)據(jù)量的增大,基于GPU和基于CPU的計算速度有了區(qū)別,說明當(dāng)兩者滿負(fù)荷工作的時候,基于GPU的數(shù)據(jù)處理由于啟用的多線程并行處理,可以實現(xiàn)高度的并行操作,可以在較短的時間內(nèi)完成數(shù)據(jù)的處理。從MATLAB的仿真結(jié)果來看,使用CUDA架構(gòu)的GPU對數(shù)字信號處理中的FFT快速傅里葉變換有著比較明顯的加速效果。
四、小結(jié)
在仿真實驗中,選擇了具有高密度乘法和加法運(yùn)算的FFT快速傅里葉變換,觀察CPU和GPU在高密度乘法加法運(yùn)算上的計算能力,即使GPU板卡的運(yùn)算速度等于CPU的計算速度,在實際的應(yīng)用中也會有很好的應(yīng)用價值。仿真所得出的結(jié)果是GPU板卡比CPU處理相等數(shù)據(jù)量的乘法和加法運(yùn)算要快三倍以上,就是說如果在工作站中擴(kuò)展兩塊GPU板卡,GPU的計算能力將是CPU的六倍以上。如果是在計算機(jī)集群中,一臺工作站安裝了兩塊板卡就可以節(jié)省多臺計算機(jī)節(jié)點,這樣在虛擬無線電的集群計算機(jī)中,就可以明顯的減少計算節(jié)點的數(shù)量。節(jié)省大量的財力,達(dá)到降低成本和系統(tǒng)體積的目的。
參 考 文 獻(xiàn)
[1] Blackfin Embedded Processor BF537 Data Sheet,ANALOG DEVICES,F(xiàn)ebruary 2009
[2] 張道興. 超寬帶通信捕獲FFT算法的設(shè)計和實現(xiàn). 哈爾濱工程大學(xué)碩士學(xué)位論文. 2008
[3] 胡德俊. FFT處理器的設(shè)計與實現(xiàn). 合肥工業(yè)大學(xué)碩士學(xué)位論文. 2006
[4] 姜進(jìn)東. 高速FFT的FPGA實現(xiàn). 西安電子科技大學(xué)碩士學(xué)位論文. 2009