GPU上并行數(shù)據(jù)操作技術(shù)優(yōu)化
發(fā)布時(shí)間:2021-08-17 14:59
近年來(lái),隨著多核技術(shù)與GPU(Graphics Processing Units)技術(shù)的發(fā)展和成熟,GPU以其強(qiáng)大的并行計(jì)算能力越來(lái)越成為研究領(lǐng)域中的熱點(diǎn)。人們已經(jīng)開始研究使用GPU對(duì)多種數(shù)據(jù)操作進(jìn)行加速。其中在數(shù)據(jù)庫(kù)操作中最常用最耗時(shí)的連接操作成為人們研究的重點(diǎn)。本文研究了三個(gè)經(jīng)典的連接算法(嵌套連接算法,排序-歸并算法和哈希算法)的串行實(shí)現(xiàn)和并行實(shí)現(xiàn),在GPU平臺(tái)上實(shí)現(xiàn)了它們的并行化算法,并根據(jù)它們各自的特點(diǎn)做了一些優(yōu)化。同時(shí),鑒于GPU平臺(tái)和多核處理器系統(tǒng)的相似性,本文把應(yīng)用在計(jì)算機(jī)集群上的CMD(Coordinate Module Distribution)數(shù)據(jù)劃分算法移至到了GPU平臺(tái)上,并比較了兩個(gè)并行連接算法(排序-歸并算法和哈希算法)和CMD連接算法的性能。另外,本文也比較了以上算法在處理數(shù)據(jù)偏斜時(shí)的性能。為了和CPU多核進(jìn)行比較,本文還使用了OpenMP實(shí)現(xiàn)了排序-歸并和哈希連接算法,并把它們同GPU上的版本進(jìn)行了比較。本文的貢獻(xiàn)在于,在GPU平臺(tái)上實(shí)現(xiàn)了排序-歸并和哈希連接算法,并根據(jù)各個(gè)算法的特點(diǎn)進(jìn)行了優(yōu)化,同時(shí)把CMD算法移植到了GPU平臺(tái)。本文比較了這些算法在...
【文章來(lái)源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:70 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
CPU和GPU的結(jié)構(gòu)示意
圖2-2. GPU 參與的計(jì)算架構(gòu)Figure 2-2 Computing architecture with GPU使用 CUDA 的整個(gè)系統(tǒng)的物理架構(gòu)由圖 2-2 所示,其中 Host 端的 DRAM 指的就是內(nèi)存,而在 Device 端的 DRAM 則是顯卡上的物理顯存。原始數(shù)據(jù)必須首先被拷貝到內(nèi)存中,然后通過(guò) PCIE 總線搬運(yùn)到顯卡上的顯存中,然后 GPU 上的流處理器才能對(duì)這些數(shù)據(jù)進(jìn)行處理。所以,GPU 只有在計(jì)算數(shù)據(jù)高度并行任務(wù)時(shí)才能發(fā)揮作用。在這類任務(wù)中,需要處理大量的數(shù)據(jù),數(shù)據(jù)的儲(chǔ)存形式類似于規(guī)則的網(wǎng)格,對(duì)這些數(shù)據(jù)進(jìn)行的處理也基本相同。另一方面,需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)的計(jì)算如樹,相關(guān)矩陣,鏈表,空間細(xì)分結(jié)構(gòu)等,則不適用于使用 GPU 進(jìn)行計(jì)算。因?yàn)榇祟愑?jì)算的數(shù)據(jù)相關(guān)性要遠(yuǎn)大于前一種。
第 8 頁(yè)圖2-3. CUDA 程序的組成Figure 2-3 Composition of a CUDA program寫 CUDA 程序的重點(diǎn)是將程序分為并行和串行兩部分,CPU 作為終端為服務(wù)器(Server)或協(xié)處理器(Coprocessor),或者設(shè)備(Device)析,找到程序中的計(jì)算并行部分后,就能將并行程序部分移植到 GPU函數(shù)(kernel 函數(shù))旦確定了程序中的并行部分,就可以考慮把這部分計(jì)算工作放到 GPPU 上的 CUDA 并行計(jì)算函數(shù)稱為內(nèi)核函數(shù)(kernel 函數(shù))。如圖 2看代碼的組成,CUDA 代碼就是一些串行代碼和核函數(shù)代碼的組合。
【參考文獻(xiàn)】:
期刊論文
[1]并行數(shù)據(jù)庫(kù)上的并行CMD-Join算法[J]. 李建中,都薇. 軟件學(xué)報(bào). 1998(04)
本文編號(hào):3347983
【文章來(lái)源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:70 頁(yè)
【學(xué)位級(jí)別】:碩士
【部分圖文】:
CPU和GPU的結(jié)構(gòu)示意
圖2-2. GPU 參與的計(jì)算架構(gòu)Figure 2-2 Computing architecture with GPU使用 CUDA 的整個(gè)系統(tǒng)的物理架構(gòu)由圖 2-2 所示,其中 Host 端的 DRAM 指的就是內(nèi)存,而在 Device 端的 DRAM 則是顯卡上的物理顯存。原始數(shù)據(jù)必須首先被拷貝到內(nèi)存中,然后通過(guò) PCIE 總線搬運(yùn)到顯卡上的顯存中,然后 GPU 上的流處理器才能對(duì)這些數(shù)據(jù)進(jìn)行處理。所以,GPU 只有在計(jì)算數(shù)據(jù)高度并行任務(wù)時(shí)才能發(fā)揮作用。在這類任務(wù)中,需要處理大量的數(shù)據(jù),數(shù)據(jù)的儲(chǔ)存形式類似于規(guī)則的網(wǎng)格,對(duì)這些數(shù)據(jù)進(jìn)行的處理也基本相同。另一方面,需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)的計(jì)算如樹,相關(guān)矩陣,鏈表,空間細(xì)分結(jié)構(gòu)等,則不適用于使用 GPU 進(jìn)行計(jì)算。因?yàn)榇祟愑?jì)算的數(shù)據(jù)相關(guān)性要遠(yuǎn)大于前一種。
第 8 頁(yè)圖2-3. CUDA 程序的組成Figure 2-3 Composition of a CUDA program寫 CUDA 程序的重點(diǎn)是將程序分為并行和串行兩部分,CPU 作為終端為服務(wù)器(Server)或協(xié)處理器(Coprocessor),或者設(shè)備(Device)析,找到程序中的計(jì)算并行部分后,就能將并行程序部分移植到 GPU函數(shù)(kernel 函數(shù))旦確定了程序中的并行部分,就可以考慮把這部分計(jì)算工作放到 GPPU 上的 CUDA 并行計(jì)算函數(shù)稱為內(nèi)核函數(shù)(kernel 函數(shù))。如圖 2看代碼的組成,CUDA 代碼就是一些串行代碼和核函數(shù)代碼的組合。
【參考文獻(xiàn)】:
期刊論文
[1]并行數(shù)據(jù)庫(kù)上的并行CMD-Join算法[J]. 李建中,都薇. 軟件學(xué)報(bào). 1998(04)
本文編號(hào):3347983
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3347983.html
最近更新
教材專著