• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CPU與GPU的計算性能對比

      2019-01-30 07:49:18韓菲李煒
      電子技術(shù)與軟件工程 2019年1期
      關(guān)鍵詞:炮點檢波縱坐標(biāo)

      文/韓菲 李煒

      1 引言

      隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)量和數(shù)據(jù)種類急劇增加,計算難度越來越大,串行計算已經(jīng)難以滿足超大規(guī)模復(fù)雜問題的計算需求,GPU以其全新的架構(gòu)優(yōu)勢突破摩爾定律的束縛為計算力注入新的力量。

      如圖1所示,CPU在設(shè)計之初主要精力集中在控制和緩存等非計算功能,著力于低延遲,快速響應(yīng)完成某個操作,優(yōu)化串行計算;GPU則適合計算密集、高度并行化、高計算強度(計算/訪存比)的并行計算任務(wù)主要致力于設(shè)計大量的ALU(Arithmetic Logical Unit)計算單元,使計算能力大幅度增強。

      2 GPU的并行計算

      2.1 GPU的硬件設(shè)計

      GPU由若干個流多處理器(Streaming Multiprocessor,簡稱SM)組成,如圖2所示,1個SM由8個標(biāo)量流處理器(Stream Processor,簡 稱SP)、1個 指 令 單 元、1個32位的寄存器、共享存儲器(Shared Memory)、常量存儲器(Constant Cache)、紋理存儲器(Texture Cache)等硬件組成。

      圖1:CPU與GPU架構(gòu)的比較

      圖2:SM的硬件結(jié)構(gòu)

      GPU的“核心”通常指的是SP的數(shù)量。而真正GPU的核心需要包含取指、解碼、分發(fā)邏輯和執(zhí)行單元。因此,SM被稱為“GPU的核心”更加合適,SP僅僅是執(zhí)行單元,不是完整的處理核心。CUDA模型中Thread對應(yīng)SP,Block中的1個Thread被發(fā)射到1個SP上,8個SP組成1個SM,共用1個SM中的共享存儲器,共享1個SM中的一套取指與發(fā)射單元,因此1個Block中的線程可以共享數(shù)據(jù);1個Block必須對應(yīng)1個SM,但為了隱藏延遲提高執(zhí)行單元的資源利用率,1個SM可以同時有多個活躍線程塊(active Block)等待執(zhí)行。在SM中,線程的創(chuàng)建、調(diào)度和執(zhí)行等操作均由硬件完成,沒有時間開銷,一旦1個Block執(zhí)行高延遲操作,則另1個Block馬上占用SM資源執(zhí)行程序。

      2.2 CUDA簡介

      NVIDIA提出了支持在GPU上做通用計算的統(tǒng)一計算設(shè)備架構(gòu)CUDA(Compute Unif ied Device Architecture),編程人員可以利用CUDA編程模型使用擴展的C語言在開發(fā)環(huán)境下編寫程序,使GPU程序輕松地運行在GPU上,大大降低了利用GPU進行通用計算的難度,降低編程門檻,省去程序員學(xué)習(xí)GPU復(fù)雜結(jié)構(gòu)和底層復(fù)雜運行模式的難度,提高程序的性能,減輕早期GPU計算中存在的一些限制。

      2.3 CUDA線程組織結(jié)構(gòu)

      CUDA程序分為主機代碼和設(shè)備代碼兩部分。主機是CPU,主機代碼一般為串行代碼在CPU上執(zhí)行;設(shè)備是GPU,設(shè)備代碼是在GPU上并行執(zhí)行的代碼,被稱為內(nèi)核函數(shù)。該函數(shù)并發(fā)成千上萬個線程,并行執(zhí)行程序,1個內(nèi)核函數(shù)(Kernel)對應(yīng)1個線程網(wǎng)格(Grid),1個線程網(wǎng)格最多由65535個線程塊(Block)組成,1個線程塊最多由512個線程(Thread)組成,則512*65535=33553920是1個線程網(wǎng)格可以擁有的最多線程數(shù),足夠大多數(shù)程序使用。

      在內(nèi)核函數(shù)定義中,要建立對Block和Thread的索引,對任務(wù)進行劃分。同時還建立了四個內(nèi)置變量:gridDim、BlockDim、BlockIdx、ThreadIdx,對應(yīng)關(guān)系如下:

      3 CPU與GPU計算旅行時

      表1:CPU與GPU運行時間對比

      3.1 CPU串行計算旅行時

      GPU最廣泛的應(yīng)用領(lǐng)域之一就是地震勘探。地震波傳播時遇到斷棱或不整合面上的突變點后將變?yōu)樾抡鹪矗l(fā)出球面波向四周傳播形成的波被稱為繞射波。為計算旅行時,設(shè)采樣點5000個,采樣間隔0.002s,CDP 200個,道頭文件包含炮點橫縱坐標(biāo)Sx、Sy,檢波點橫縱坐標(biāo)Rx,Ry四個信息,坐標(biāo)文件包含地下反射點橫縱坐標(biāo)coorx、coory兩個信息。對每個CDP的每個時間點進行計算,nt0代表采樣點,ncdp代表cdp數(shù),算法步驟如下:

      S1:0=>i

      S2:讀入反射點坐標(biāo),炮點檢波點坐標(biāo)

      S3:反射點地面橫坐標(biāo)-炮點橫坐標(biāo)=>炮點反射點地面橫向距離

      S4:反射點地面縱坐標(biāo)-炮點縱坐標(biāo)=>炮點反射點地面縱向距離

      S5:炮點反射點橫向距離平方+炮點反射點縱向距離平方=>炮點反射點地面距離的平方

      S6:反射點地面橫坐標(biāo)-檢波點橫坐標(biāo)=>檢波點反射點地面橫向距離

      S7:反射點地面縱坐標(biāo)-檢波點縱坐標(biāo)=>檢波點反射點地面縱向距離

      S8:檢波點反射點橫向距離平方+檢波點反射點縱向距離平方=>檢波點反射點地面距離的平方

      S9:0=>j

      S10:i*nt0+j=>當(dāng)前cdp的時間采樣點

      S11:對當(dāng)前點獲取速度

      S12:求取當(dāng)前速度的倒數(shù)

      S13:求取倒數(shù)的平方

      S14:求取炮點旅行時

      S15:求取檢波點旅行時

      S16:炮點旅行時+檢波點旅行時=>總旅行時

      S17:j+1=>j

      S18:如果j<5000,返回S9,否則執(zhí)行S19

      S19:i+1=>i

      S20:如果i<200,返回S2,否則算法結(jié)束

      圖3:GPU計算反射點旅行時流程

      CPU計算旅行時花費的時間:344.60000s

      3.2 GPU并行計算旅行時

      通過對CUDA的并行機制的分析,作出以下分塊策略。根據(jù)計算旅行時的實際數(shù)據(jù)需求,時間采樣點nt0=5000個,cdp數(shù)200個,因此首先將5000個t(x,y)的計算與1個Block對應(yīng),設(shè)200個Block,1個Block(x,y)計算1個t(x,y),并行計算直到200*5000個t(x,y)計算完畢,之后將計算結(jié)果傳回CPU,通過循環(huán)輸出1000000個點的旅行時。

      每一個線程處理一個炮點旅行時ts和檢波點旅行時tg的計算,得到一個總旅行時t值,當(dāng)計算點增大時,不會受到線程數(shù)量限制的影響。具體計算流程如圖3。

      GPU計算旅行時花費的時間:25.30000s

      計算旅行時的GPU算法理論帶寬:

      Theoretical Bandwidth=效地對算法進行加速,在累加和算法中采用最優(yōu)化方法時GPU是CPU的14倍左右。

      (2)結(jié)合GPU的硬件特點對大數(shù)據(jù)量的并行計算是非常有效的。當(dāng)計算的數(shù)據(jù)量較小時,GPU算法中,啟動的線程計算量不滿載,大部分時間花在了系統(tǒng)調(diào)度開銷上,GPU并行計算的優(yōu)勢沒有展現(xiàn),時間與CPU計算時間差別不明顯;隨著計算的數(shù)據(jù)量增大,每個線程的計算漸漸滿載,時間花在系統(tǒng)調(diào)度的比例降低,GPU并行程度提高,加速比上升。=143.36GB/s (Tesla C2075內(nèi)存時鐘為1120MHz,內(nèi)存接口寬度為512 bit)。

      實際帶寬距離理論帶寬還有一定差距,算法中還存在一定的瓶頸。

      除此之外,本論文還計算了采樣點=500個,CDP=20個的反射點旅行時,CPU與GPU運行效率對比如表1。

      4 結(jié)論

      (1)CPU的串行計算是通過多次循環(huán)逐一計算各點旅行時,因此時間為所有循環(huán)結(jié)束后的總時間,而GPU的并行計算時間為計算一點旅行時的時間加上主機與設(shè)備間互相傳遞參數(shù)的時間。當(dāng)計算量小時,CPU與GPU的計算時間差別不大,但隨著計算量的逐漸加大,GPU的并行計算逐漸體現(xiàn)其優(yōu)勢,它可以有

      猜你喜歡
      炮點檢波縱坐標(biāo)
      變化的“魚”
      更正
      勘 誤
      一種實時頻譜儀中幀檢波器的FPGA 實現(xiàn)
      基于最小炮檢距道快速檢測炮點偏移方法
      GSM-R系統(tǒng)場強測試檢波方式對比研究
      對二維地震覆蓋次數(shù)和炮點距的思考
      山西冶金(2018年6期)2018-03-04 12:53:26
      無樁號施工中炮點COG現(xiàn)場快速偏移技術(shù)
      一二八團開展“夏送清涼”慰問
      兵團工運(2018年8期)2018-01-22 07:50:52
      第五屆播睿智杯“奇思妙想”有獎數(shù)學(xué)知識競賽
      延吉市| 永新县| 南城县| 凤翔县| 富宁县| 繁峙县| 桐城市| 灵山县| 娄底市| 五指山市| 富民县| 兴义市| 牟定县| 枝江市| 广宁县| 香格里拉县| 丘北县| 莒南县| 宜兰市| 永川市| 普定县| 英山县| 星子县| 通化市| 香港| 佛山市| 巴东县| 民县| 衡水市| 基隆市| 兴宁市| 温泉县| 兴业县| 瑞安市| 伊吾县| 阳信县| 吉木乃县| 襄垣县| 大埔县| 清水县| 北宁市|