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