摘要 | 第3-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第10-14页 |
1.1 研究背景 | 第10-12页 |
1.2 国内外研究现状 | 第12-13页 |
1.3 本文的组织 | 第13-14页 |
第二章 CUDA 简介 | 第14-30页 |
2.1 GPU 介绍 | 第14-15页 |
2.2 CUDA 执行模型 | 第15-17页 |
2.3 CUDA 中的基本概念 | 第17-19页 |
2.3.1 核函数(KERNEL 函数) | 第17-18页 |
2.3.2 线程结构 | 第18页 |
2.3.3 WARP | 第18-19页 |
2.4 CUDA 执行模型 | 第19页 |
2.5 CUDA 软件体系 | 第19-23页 |
2.5.1 CUDA C 语言 | 第20-21页 |
2.5.2 NVCC 编译器 | 第21-22页 |
2.5.3 运行时API 与驱动API | 第22-23页 |
2.6 CUDA 的存储器模型 | 第23-28页 |
2.6.1 寄存器 | 第23-24页 |
2.6.2 局部存储器 | 第24页 |
2.6.3 共享存储器 | 第24页 |
2.6.4 全局存储器 | 第24页 |
2.6.5 常数内存(CONSTANT MEMORY)和纹理内存(TEXTURE MEMORY) | 第24-25页 |
2.6.6 共享存储器访问冲突 | 第25-28页 |
2.7 CUDA 通信机制 | 第28-30页 |
2.7.1 __SYNCTHREADS() | 第28页 |
2.7.2 MEMORY FENCE 函数 | 第28页 |
2.7.3 核函数间通信 | 第28页 |
2.7.4 原子操作 | 第28-30页 |
第三章 数据库连接(JOIN)操作简介 | 第30-42页 |
3.1 JOIN 语义 | 第30-31页 |
3.2 连接操作的串行实现 | 第31-34页 |
3.2.1 嵌套循环连接(NESTED-LOOP JOIN) | 第31-32页 |
3.2.2 排序-合并连接(SORT-MERGE JOIN) | 第32-33页 |
3.2.3 哈希连接(HASH JOIN) | 第33-34页 |
3.3 连接操作的并行实现 | 第34-37页 |
3.3.1 并行嵌套循环连接算法 | 第34页 |
3.3.2 并行的排序归并连接算法 | 第34-36页 |
3.3.3 并行的哈希连接算法 | 第36-37页 |
3.4 多维数据分布方法CMD 以及基于CMD 的连接算法 | 第37-42页 |
3.4.1 多维数据分布方法CMD | 第37-39页 |
3.4.2 基于CMD 算法的连接算法 | 第39-42页 |
第四章 并行连接算法在GPU 平台上的实现和优化 | 第42-56页 |
4.1 GPU 架构同多处理机的类比 | 第42-43页 |
4.2 GPU 平台上的数据操作优化 | 第43-47页 |
4.2.1 数据分配 | 第43-45页 |
4.2.2 线程调度 | 第45-47页 |
4.3 并行连接算法在GPU 上的实现 | 第47-51页 |
4.3.1 并行排序归并算法 | 第48-49页 |
4.3.2 并行哈希算法 | 第49-51页 |
4.4 CMD 算法在GPU 上的实现和优化 | 第51-56页 |
第五章 实现环境 | 第56-58页 |
5.1 机器环境 | 第56页 |
5.2 实现数据表准备 | 第56-58页 |
第六章 实验结果及分析 | 第58-63页 |
第七章 总结与展望 | 第63-64页 |
参考文献 | 第64-67页 |
致谢 | 第67-68页 |
攻读学位期间发表的学术论文 | 第68-70页 |