GPU上并行数据操作技术优化
发布时间:2021-08-17 14:59
近年来,随着多核技术与GPU(Graphics Processing Units)技术的发展和成熟,GPU以其强大的并行计算能力越来越成为研究领域中的热点。人们已经开始研究使用GPU对多种数据操作进行加速。其中在数据库操作中最常用最耗时的连接操作成为人们研究的重点。本文研究了三个经典的连接算法(嵌套连接算法,排序-归并算法和哈希算法)的串行实现和并行实现,在GPU平台上实现了它们的并行化算法,并根据它们各自的特点做了一些优化。同时,鉴于GPU平台和多核处理器系统的相似性,本文把应用在计算机集群上的CMD(Coordinate Module Distribution)数据划分算法移至到了GPU平台上,并比较了两个并行连接算法(排序-归并算法和哈希算法)和CMD连接算法的性能。另外,本文也比较了以上算法在处理数据偏斜时的性能。为了和CPU多核进行比较,本文还使用了OpenMP实现了排序-归并和哈希连接算法,并把它们同GPU上的版本进行了比较。本文的贡献在于,在GPU平台上实现了排序-归并和哈希连接算法,并根据各个算法的特点进行了优化,同时把CMD算法移植到了GPU平台。本文比较了这些算法在...
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
CPU和GPU的结构示意
图2-2. GPU 参与的计算架构Figure 2-2 Computing architecture with GPU使用 CUDA 的整个系统的物理架构由图 2-2 所示,其中 Host 端的 DRAM 指的就是内存,而在 Device 端的 DRAM 则是显卡上的物理显存。原始数据必须首先被拷贝到内存中,然后通过 PCIE 总线搬运到显卡上的显存中,然后 GPU 上的流处理器才能对这些数据进行处理。所以,GPU 只有在计算数据高度并行任务时才能发挥作用。在这类任务中,需要处理大量的数据,数据的储存形式类似于规则的网格,对这些数据进行的处理也基本相同。另一方面,需要复杂数据结构的计算如树,相关矩阵,链表,空间细分结构等,则不适用于使用 GPU 进行计算。因为此类计算的数据相关性要远大于前一种。
第 8 页图2-3. CUDA 程序的组成Figure 2-3 Composition of a CUDA program写 CUDA 程序的重点是将程序分为并行和串行两部分,CPU 作为终端为服务器(Server)或协处理器(Coprocessor),或者设备(Device)析,找到程序中的计算并行部分后,就能将并行程序部分移植到 GPU函数(kernel 函数)旦确定了程序中的并行部分,就可以考虑把这部分计算工作放到 GPPU 上的 CUDA 并行计算函数称为内核函数(kernel 函数)。如图 2看代码的组成,CUDA 代码就是一些串行代码和核函数代码的组合。
【参考文献】:
期刊论文
[1]并行数据库上的并行CMD-Join算法[J]. 李建中,都薇. 软件学报. 1998(04)
本文编号:3347983
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
CPU和GPU的结构示意
图2-2. GPU 参与的计算架构Figure 2-2 Computing architecture with GPU使用 CUDA 的整个系统的物理架构由图 2-2 所示,其中 Host 端的 DRAM 指的就是内存,而在 Device 端的 DRAM 则是显卡上的物理显存。原始数据必须首先被拷贝到内存中,然后通过 PCIE 总线搬运到显卡上的显存中,然后 GPU 上的流处理器才能对这些数据进行处理。所以,GPU 只有在计算数据高度并行任务时才能发挥作用。在这类任务中,需要处理大量的数据,数据的储存形式类似于规则的网格,对这些数据进行的处理也基本相同。另一方面,需要复杂数据结构的计算如树,相关矩阵,链表,空间细分结构等,则不适用于使用 GPU 进行计算。因为此类计算的数据相关性要远大于前一种。
第 8 页图2-3. CUDA 程序的组成Figure 2-3 Composition of a CUDA program写 CUDA 程序的重点是将程序分为并行和串行两部分,CPU 作为终端为服务器(Server)或协处理器(Coprocessor),或者设备(Device)析,找到程序中的计算并行部分后,就能将并行程序部分移植到 GPU函数(kernel 函数)旦确定了程序中的并行部分,就可以考虑把这部分计算工作放到 GPPU 上的 CUDA 并行计算函数称为内核函数(kernel 函数)。如图 2看代码的组成,CUDA 代码就是一些串行代码和核函数代码的组合。
【参考文献】:
期刊论文
[1]并行数据库上的并行CMD-Join算法[J]. 李建中,都薇. 软件学报. 1998(04)
本文编号:3347983
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3347983.html