前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機網絡下小波變換的問題研討范文,希望能給你帶來靈感和參考,敬請閱讀。
經試驗證實,在CUDA背景下,可有效提高并行小波算法的計算速度,以及對小波變換諧波的分析速度,進而提高了實際應用價值。2007年,nVIDIA公司公開了此種CUDA并行小波分解算法,該項技術同原本的僅借助于CUP進行計算的計算方式優(yōu)勢明顯,其可對標準C語言進行擴展,省略了將計算映射到圖形應用程序接口才能計算的步驟和工作,如此節(jié)省計算時間的同時,也為其深入研發(fā)提高了基礎保證,為實現(xiàn)低成本、高性能、易維護的數(shù)據(jù)并行處理目的打下了堅實的基礎。
Mallat小波分解算法的最關鍵問題,即將待處理的數(shù)據(jù)和濾波器進行卷積。一般情況下,小波變換中所使用的濾波器系數(shù)相對較少,通常為緊支撐函數(shù),所以在卷積計算時,只需要對原序列中的子序列進行相應計算即可,這就為分組計算的實現(xiàn)創(chuàng)造了條件。鑒于上述情況,在CUDA環(huán)境中,僅從數(shù)據(jù)分組和并行化卷積和二次抽取即可實現(xiàn)Mallat的并行計算。
1將處理數(shù)據(jù)分組
在CUDA中會使用多的種類型存儲器,比如傳統(tǒng)的共享存儲器,以及以往不曾使用,或使用率非常低的全局存儲器。傳統(tǒng)的共享存儲器具有運算速度快的特點,但其容量卻十分有限,在對數(shù)據(jù)進行全局讀取計算時極易造成性能損失。為彌補這一缺點,使用容量大,但速度相對較慢的全局存儲器可有效彌補共享存儲器的不足,故研究不但較好地利用了共享存儲器讀寫速度快的優(yōu)點,而且采用的數(shù)據(jù)分組處理方式避免了性能損失的發(fā)生。在計算時,先將主機存儲器中的處理數(shù)據(jù)載入顯卡中的全局存儲器中,再將每512個處理數(shù)據(jù)序列分成一組(不包含第一組),且每組開頭重疊保留前組末端個(N—2)數(shù)據(jù),N為濾波器系數(shù)個數(shù),另外對邊界進行零延拓。在卷積計算時,程序需要同時運行N個Block對數(shù)據(jù)進行處理。而每個Block中又要同時運行512個線程,故每次可處理[512—(NFilter—2)]N個數(shù)據(jù)。在計算時,有時會發(fā)生數(shù)據(jù)分組數(shù)大于Block數(shù)的情況,此時所有數(shù)據(jù)無法一次完成處理,這種情況下第一批數(shù)據(jù)處理后,按上述步驟重復處理即可。另外,通常情況下濾波器系數(shù)少,且要反復使用,所以為提高讀取速度可載入共享內存。
2并行計算卷積和二次抽取
并行計算第N組數(shù)據(jù)卷積的計算原理如下圖所示,另外為減少計算次數(shù)、提高計算速度可同時進行二次抽取。下面以濾波器系數(shù)是4個為例來闡述計算原理。組數(shù)據(jù)并行卷積原理如下圖所示。因為每組開頭重疊保留前組末端個(N—2)數(shù)據(jù),所以要向前組重疊保留2個數(shù)據(jù),如圖中的數(shù)據(jù)序號-1和-2。對該組數(shù)據(jù)計算并進行二抽取,計算起于0序號,如此僅需用奇數(shù)序號T3、T5、T7、……線程計算卷積即可,如圖中箭頭。而且每個線程只需進行N次乘法及(N—1)次加法即可實現(xiàn)細粒度的并行計算,有效抑制了單個CPU處理器性能弱的缺陷。
在CUDA技術背景下的并行小波分解算法技術,可有效提高諧波分析的計算速度,以及小波理論的應用性。而且,該算法的線性加速能力大大節(jié)省了用戶的設備支出成本。本文實現(xiàn)的計算機網絡下的并行小波算法通過實驗證明通用性較強,對小波包等形式的小波同樣有效,因此值得推廣使用。(本文作者:熊慶帥 單位:曲阜師范大學日照校區(qū)計算機科學學院網絡工程系)