国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種利用gpu加速fft的方法

      文檔序號(hào):6376502閱讀:2724來(lái)源:國(guó)知局
      專利名稱:一種利用gpu加速fft的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)高性能計(jì)算領(lǐng)域、科學(xué)計(jì)算領(lǐng)域,具體涉及一種利用GPU加速FFT的方法。
      背景技術(shù)
      我們希望能在計(jì)算機(jī)上實(shí)現(xiàn)信號(hào)的頻譜分析或其它工作,然而源信號(hào)大多是模擬 的,連續(xù)的,時(shí)域無(wú)限的,不能被計(jì)算機(jī)處理。通過(guò)傅里葉變換FT將模擬信號(hào)進(jìn)行數(shù)字化傅里葉處理,而計(jì)算機(jī)只能處理離散的、有限的信號(hào),此時(shí)離散傅里葉變換DFT就應(yīng)運(yùn)而生,但DFT的運(yùn)算量巨大,其應(yīng)用領(lǐng)域一直難以拓展,直到1965年快速傅里葉變換算法FFT的提出。FFT是DFT的一種快速算法,在聲學(xué)、電信、電力系統(tǒng)、圖像與信號(hào)處理、物探、天線、雷達(dá)、衛(wèi)星、醫(yī)療等領(lǐng)域有廣泛的應(yīng)用。自從2006年英偉達(dá)(NVIDIA)公司推出圖形處理器G80 (包含了 128個(gè)流式多處理器,最新的Fermi架構(gòu)包含了 512個(gè)多處理器)以來(lái),圖形處理器GPU在某些大規(guī)模并行計(jì)算的應(yīng)用上,相對(duì)于CPU來(lái)說(shuō)性能提高可達(dá)100倍以上。GPU擁有更多的晶體管,用于數(shù)據(jù)處理而不是像CPU那樣去處理數(shù)據(jù)cache和指令控制,這意味著GPU具有巨大的并行計(jì)算能力。CUDA C作為GPU的并行編程語(yǔ)言。CUDA C編程將CPU稱之為主機(jī),將GPU作為一個(gè)協(xié)處理器稱為設(shè)備。目前,人們往往使用大規(guī)模的X86服務(wù)器集群來(lái)進(jìn)行FFT變換處理,其原理是將數(shù)據(jù)先分配到各個(gè)CPU核上,然后由各個(gè)CPU核單獨(dú)進(jìn)行計(jì)算,最后將結(jié)果匯總輸出。這種做法消耗了大量的時(shí)間、電力和維護(hù)費(fèi)用,嚴(yán)重降低了科學(xué)計(jì)算軟件的運(yùn)行效率。而且,隨著人們對(duì)FFT變換處理時(shí)間要求越來(lái)越短,精度要求越來(lái)越高,PC服務(wù)器集群的規(guī)模越做越大,在系統(tǒng)構(gòu)建成本、數(shù)據(jù)中心機(jī)房空間、功耗散熱和電力限制、可管理性、編程簡(jiǎn)易性、擴(kuò)展性、管理維護(hù)費(fèi)用等方面都面臨著巨大的挑戰(zhàn)。

      發(fā)明內(nèi)容
      本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提供一種利用GPU加速FFT變換的方法。本發(fā)明所述方法是利用CUDA的GPU加速FFT變換的高效快速方法。CUDA C是GPU的并行編程語(yǔ)言,CUDA C編程將CPU稱之為主機(jī),將GPU作為一個(gè)協(xié)處理器稱為設(shè)備。本發(fā)明解決所述技術(shù)問(wèn)題采用的技術(shù)方案為該方法架構(gòu)包括CPU主機(jī)端和GPU設(shè)備端,其中主機(jī)端CPU根據(jù)單次FFT長(zhǎng)度和FFT批處理次數(shù),對(duì)需要進(jìn)行FFT變換的數(shù)據(jù)加以整理,并傳輸?shù)紾PU設(shè)備中存儲(chǔ),GPU設(shè)備端利用其眾核處理器計(jì)算優(yōu)勢(shì),快速完成所有數(shù)據(jù)的FFT變換,將結(jié)果數(shù)據(jù)傳回CPU主機(jī)端。本發(fā)明把需要數(shù)據(jù)預(yù)處理放在CPU端執(zhí)行,把耗時(shí)的FFT變換及歸一化部分利用CUDA技術(shù)進(jìn)行加速,利用GPU設(shè)備端快速計(jì)算的特點(diǎn)完成大批量數(shù)據(jù)的FFT變換,通過(guò)CPU主機(jī)端和GPU設(shè)備端的協(xié)調(diào)運(yùn)作加速FFT變換過(guò)程。該方法的具體實(shí)現(xiàn)步驟如下1)CPU主機(jī)端規(guī)集待FFT變換的數(shù)據(jù);
      主機(jī)端將需要進(jìn)行FFT變換的數(shù)據(jù),根據(jù)FFT變換長(zhǎng)度,同一長(zhǎng)度FFT變換的數(shù)據(jù)集合在一起連續(xù)存儲(chǔ);
      2)GPU設(shè)備端開(kāi)辟設(shè)備存儲(chǔ)空間,用于存放源數(shù)據(jù)和目標(biāo)數(shù)據(jù),并預(yù)留額外空間; FFT變換的快速算法,需要消耗額外GPU設(shè)備存儲(chǔ),所以GPU設(shè)備至少需要額外預(yù)留約
      占待處理數(shù)據(jù)量15%的存儲(chǔ)空間;
      3)主機(jī)端將原始數(shù)據(jù),從主存?zhèn)鬏數(shù)紾PU設(shè)備存儲(chǔ)空間;
      4)CPU主機(jī)端通過(guò)為GPU設(shè)備端定義FFT變換句柄,配置FFT變換信息;
      5)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換計(jì)算;
      6)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換規(guī)一化計(jì)算;
      7)GPU設(shè)備端將FFT變換結(jié)果數(shù)據(jù),傳輸回主機(jī)端主存空間;
      8)如果處理數(shù)據(jù)規(guī)模較大,需要分批處理,則重復(fù)(3) (7),否則進(jìn)入(9);
      9)GPU設(shè)備端釋放相關(guān)資源,F(xiàn)FT變換計(jì)算結(jié)束;
      本發(fā)明的有益效果是本發(fā)明利用GPU設(shè)備端快速計(jì)算的特點(diǎn)完成大批量數(shù)據(jù)的FFT變換,通過(guò)CPU主機(jī)端和GPU設(shè)備端的協(xié)調(diào)運(yùn)作加速FFT變換過(guò)程。該方法提高了 FFT變換性能,滿足了規(guī)模越來(lái)越大、使用越來(lái)越頻繁的FFT變換需求,減少機(jī)房構(gòu)建成本和管理、運(yùn)行、維護(hù)費(fèi)用,此外,這種方法實(shí)現(xiàn)簡(jiǎn)單,需要的開(kāi)發(fā)成本低。


      圖I是單精度FFT加速比曲線 圖2是雙精度FFT加速比曲線圖。
      具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清晰,下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明作以下詳細(xì)說(shuō)明。本發(fā)明的目的在于加速FFT變換性能,使CPU與GPU進(jìn)行協(xié)同計(jì)算,降低機(jī)房構(gòu)建成本和管理、運(yùn)行、維護(hù)費(fèi)用。本發(fā)明中,將需要把初始化計(jì)算放在CPU端執(zhí)行,而把耗時(shí)的FFT變換及規(guī)一化部分利用CUDA技術(shù)實(shí)現(xiàn),使其在GPU端并行執(zhí)行,CPU與GPU進(jìn)行協(xié)同計(jì)算,最終實(shí)現(xiàn)加速FFT變換的方法。具體步驟及實(shí)施過(guò)程如下
      1)CPU主機(jī)端規(guī)集待FFT變換的數(shù)據(jù);
      主機(jī)端將需要進(jìn)行FFT變換的數(shù)據(jù),根據(jù)FFT變換長(zhǎng)度,同一長(zhǎng)度FFT變換的數(shù)據(jù)集合在一起連續(xù)存儲(chǔ);
      2)GPU設(shè)備端開(kāi)辟設(shè)備存儲(chǔ)空間,用于存放源數(shù)據(jù)和目標(biāo)數(shù)據(jù),并預(yù)留額外空間;
      FFT變換的快速算法,需要消耗額外GPU設(shè)備存儲(chǔ),所以GPU設(shè)備至少需要額外預(yù)留約
      占待處理數(shù)據(jù)量15%的存儲(chǔ)空間;
      3)主機(jī)端將原始數(shù)據(jù),從主存?zhèn)鬏數(shù)紾PU設(shè)備存儲(chǔ)空間;
      通過(guò)主存與GPU設(shè)備數(shù)據(jù)傳輸接口 memcpy實(shí)現(xiàn)數(shù)據(jù)交換;
      4)CPU主機(jī)端通過(guò)為GPU設(shè)備端定義FFT變換句柄,配置FFT變換信息;
      主機(jī)端通過(guò)調(diào)用FFT變換名柄定義內(nèi)核函數(shù)cufftPlanld/cufftPlan2d/cufftPlan3d 等,配置 FFT 變換信息,包括 FFT 變換長(zhǎng)度,批處理次數(shù),變換類型;
      5)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換計(jì)算;
      主機(jī)端通過(guò)調(diào)用CUFFT庫(kù)cufftExecC2C等相應(yīng)函數(shù),啟動(dòng)GPU設(shè)備進(jìn)行FFT變換計(jì)算,函數(shù)參數(shù)指定了 FFT變換句柄、數(shù)據(jù)源地址、目的地址及FFT變換方向;
      6)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換規(guī)一化計(jì)算;
      主機(jī)端通過(guò)調(diào)用CUBLAS庫(kù)cublasCsscal函數(shù),啟動(dòng)GPU設(shè)備進(jìn)行FFT變換規(guī)一化計(jì)算,函數(shù)參數(shù)指定了數(shù)據(jù)元素總數(shù)、線性變換因子、數(shù)據(jù)地址及數(shù)據(jù)存儲(chǔ)步長(zhǎng); 7)GPU設(shè)備端將FFT變換結(jié)果數(shù)據(jù),傳輸回主機(jī)端主存空間;
      通過(guò)主存與GPU設(shè)備數(shù)據(jù)傳輸接口 memcpy實(shí)現(xiàn)數(shù)據(jù)交換;
      8)如果處理數(shù)據(jù)規(guī)模較大,需要分批處理,則重復(fù)(3) (7),否則進(jìn)入(9);
      9)GPU設(shè)備端釋放相關(guān)資源,F(xiàn)FT變換計(jì)算結(jié)束;
      主機(jī)端通過(guò)調(diào)用cufftDestroy函數(shù),釋放GPU設(shè)備端FFT變換使用的資源。性能測(cè)試及分析
      (1)測(cè)試環(huán)境及測(cè)試數(shù)據(jù)
      測(cè)試環(huán)境包括硬件環(huán)境、軟件環(huán)境、運(yùn)行軟件,其中運(yùn)行軟件包括運(yùn)行在CPU上的CPU版FFT加速庫(kù)FFTW和運(yùn)行在GPU上FFT加速庫(kù)CUFFT ;測(cè)試數(shù)據(jù)為各種FFT變換長(zhǎng)度、不同規(guī)模的數(shù)據(jù),具體各項(xiàng)參數(shù)如表I所示
      表I測(cè)試環(huán)境
      權(quán)利要求
      1.一種利用GPU加速FFT的方法,其特征在于,系統(tǒng)包括CPU主機(jī)端和GPU設(shè)備端,利用GPU設(shè)備端快速計(jì)算的特點(diǎn)完成大批量數(shù)據(jù)的FFT變換,通過(guò)CPU主機(jī)端和GPU設(shè)備端的協(xié)調(diào)運(yùn)作加速FFT變換過(guò)程,其中,主機(jī)端CPU根據(jù)單次FFT長(zhǎng)度和FFT批處理次數(shù),對(duì)需要進(jìn)行FFT變換的數(shù)據(jù)加以整理,并傳輸?shù)紾PU設(shè)備中存儲(chǔ),GPU設(shè)備端利用其眾核處理器計(jì)算優(yōu)勢(shì),快速完成所有數(shù)據(jù)的FFT變換,將結(jié)果數(shù)據(jù)傳回CPU主機(jī)端,將待FFT變換的數(shù)據(jù)規(guī)集在一起存儲(chǔ),具體步驟如下 (1)CPU主機(jī)端規(guī)集待FFT變換的數(shù)據(jù); 主機(jī)端先開(kāi)辟用于存儲(chǔ)需要進(jìn)行FFT變換數(shù)據(jù)的存儲(chǔ)空間,主機(jī)端將需要進(jìn)行FFT變換的數(shù)據(jù),根據(jù)其所需進(jìn)行的FFT變換長(zhǎng)度和變換方向規(guī)集在一起連續(xù)存儲(chǔ),存儲(chǔ)空間必須連續(xù); (2)GPU設(shè)備端開(kāi)辟設(shè)備存儲(chǔ)空間,用于存放源數(shù)據(jù)和目標(biāo)數(shù)據(jù),并預(yù)留額外空間; FFT變換的快速算法,需要消耗額外GPU設(shè)備存儲(chǔ),所以GPU設(shè)備至少需要額外預(yù)留約占待處理數(shù)據(jù)量15%的存儲(chǔ)空間; (3)主機(jī)端將原始數(shù)據(jù),從主存?zhèn)鬏數(shù)紾PU設(shè)備存儲(chǔ)空間; 通過(guò)主存與GPU設(shè)備數(shù)據(jù)傳輸接口 memcpy實(shí)現(xiàn)數(shù)據(jù)交換; (4)CPU主機(jī)端通過(guò)為GPU設(shè)備端定義FFT變換句柄,配置FFT變換信息; 主機(jī)端通過(guò)調(diào)用FFT變換名柄定義內(nèi)核函數(shù)cufftPlanld/cufftPlan2d/cufftPlan3d,配置FFT變換信息,包括FFT變換長(zhǎng)度,批處理次數(shù),變換類型; (5)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換計(jì)算; 主機(jī)端通過(guò)調(diào)用CUFFT庫(kù)cufftExecC2C相應(yīng)函數(shù),啟動(dòng)GPU設(shè)備進(jìn)行FFT變換計(jì)算,函數(shù)參數(shù)指定了 FFT變換句柄、數(shù)據(jù)源地址、目的地址及FFT變換方向; (6)CPU主機(jī)端啟動(dòng)GPU設(shè)備端進(jìn)行FFT變換規(guī)一化計(jì)算; 主機(jī)端通過(guò)調(diào)用CUBLAS庫(kù)cublasCsscal函數(shù),啟動(dòng)GPU設(shè)備進(jìn)行FFT變換規(guī)一化計(jì)算,函數(shù)參數(shù)指定了數(shù)據(jù)元素總數(shù)、線性變換因子、數(shù)據(jù)地址及數(shù)據(jù)存儲(chǔ)步長(zhǎng); (7)GPU設(shè)備端將FFT變換結(jié)果數(shù)據(jù),傳輸回主機(jī)端主存空間; 通過(guò)主存與GPU設(shè)備數(shù)據(jù)傳輸接口 memcpy實(shí)現(xiàn)數(shù)據(jù)交換; (8)如果處理數(shù)據(jù)規(guī)模較大,需要分批處理,則重復(fù)(3) (7),否則進(jìn)入(9); (9 )GPU設(shè)備端釋放相關(guān)資源,FFT變換計(jì)算結(jié)束;主機(jī)端通過(guò)調(diào)用cufftDestroy函數(shù),釋放GPU設(shè)備端FFT變換使用的資源。
      全文摘要
      本發(fā)明提供一種利用GPU加速FFT的方法,該方法利用GPU設(shè)備端快速計(jì)算的特點(diǎn)完成大批量數(shù)據(jù)的FFT變換,通過(guò)CPU主機(jī)端和GPU設(shè)備端的協(xié)調(diào)運(yùn)作加速FFT變換過(guò)程,其方法架構(gòu)包括CPU主機(jī)端和GPU設(shè)備端,其中主機(jī)端CPU根據(jù)單次FFT長(zhǎng)度和FFT批處理次數(shù),對(duì)需要進(jìn)行FFT變換的數(shù)據(jù)加以整理,并傳輸?shù)紾PU設(shè)備中存儲(chǔ),GPU設(shè)備端利用其眾核處理器計(jì)算優(yōu)勢(shì),快速完成所有數(shù)據(jù)的FFT變換,將結(jié)果數(shù)據(jù)傳回CPU主機(jī)端。該方法提高了FFT變換性能,滿足了規(guī)模越來(lái)越大、使用越來(lái)越頻繁的FFT變換需求,減少機(jī)房構(gòu)建成本和管理、運(yùn)行、維護(hù)費(fèi)用,且開(kāi)發(fā)成本低便于實(shí)現(xiàn)。
      文檔編號(hào)G06F17/14GK102902657SQ20121032863
      公開(kāi)日2013年1月30日 申請(qǐng)日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
      發(fā)明者吳慶, 張清, 趙開(kāi)勇 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1