本發(fā)明涉及一種基于CPU/GPU異構(gòu)平臺的FIR濾波并行實現(xiàn)方法,屬于數(shù)字通信領(lǐng)域。
背景技術(shù):FIR數(shù)字濾波器具有精確的線性相位,可以做成任意頻率特性的濾波器,設(shè)計方法適應(yīng)性強,實現(xiàn)起來結(jié)構(gòu)簡單,不存在穩(wěn)定性問題。因此FIR濾波器被廣泛應(yīng)用于數(shù)字通信系統(tǒng)中的信號重建、相位均衡、自適應(yīng)處理、圖像處理和隨機濾波等領(lǐng)域中。FIR濾波運算主要由移位寄存器、乘法器和加法器來完成。當采用大規(guī)模可編程邏輯器件(FPGA)作為FIR數(shù)字濾波器的實現(xiàn)載體時,由于FPGA器件的資源有限,因而直接采用乘加電路實現(xiàn)的FIR濾波器的最大階數(shù)是一定的,且計算速度低、占用資源較多,無法滿足實時處理要求的缺點。
技術(shù)實現(xiàn)要素:本發(fā)明解決的技術(shù)問題是:克服目前軟件實現(xiàn)FIR濾波計算速度低、占用資源較多的不足,提供一種基于CPU/GPU異構(gòu)平臺的FIR濾波并行實現(xiàn)方法,提高了計算效率,減少了大數(shù)量濾波的運行時間,實現(xiàn)實時濾波的效果。本發(fā)明的技術(shù)解決方案:提供了一種基于CPU/GPU異構(gòu)平臺的FIR濾波并行實現(xiàn)方法。充分利用CPU/GPU并行處理的優(yōu)勢,通過將FIR濾波計算密集的部分交由GPU計算,剩余部分仍由CPU負責計算,提高計算效率。在GPU計算FIR濾波時結(jié)合GPU共享內(nèi)存讀取數(shù)據(jù)的優(yōu)勢實現(xiàn)大數(shù)量的高速濾波。具體步驟如下:(1)將CPU內(nèi)存待濾波的音頻/視頻數(shù)據(jù)拷貝至圖形處理器GPU顯存中;(2)根據(jù)步驟(1)待濾波的音頻/視頻數(shù)據(jù)量和GPU共享內(nèi)存大小合理布局GPUkernel函數(shù)的網(wǎng)格結(jié)構(gòu);(3)步驟(2)網(wǎng)格結(jié)構(gòu)中所有線程Thread運行GPUkernel函數(shù),通過多個Thread并行地將步驟(1)中待濾波數(shù)據(jù)從GPU顯存讀取到GPU共享內(nèi)存;(4)每個Thread在步驟(3)共享內(nèi)存上依據(jù)線性相位FIR直接型結(jié)構(gòu)計算FIR濾波器的濾波結(jié)果。一個Thread計算一個濾波結(jié)果,所有Thread并行計算;(5)將步驟(4)中所有Thread計算出的FIR濾波結(jié)果從GPU顯存拷貝至CP...