摘要 | 第3-4页 |
ABSTRACT | 第4页 |
第一章 绪论 | 第10-19页 |
1.1 研究背景 | 第10-14页 |
1.1.1 多核处理器的产生 | 第10页 |
1.1.2 GPU 的发展 | 第10-12页 |
1.1.3 GPU 和 CPU | 第12-13页 |
1.1.4 GPGPU 性能 | 第13-14页 |
1.2 性能预测 | 第14-15页 |
1.2.1 分析法 | 第14页 |
1.2.2 数据法 | 第14-15页 |
1.2.3 模拟法 | 第15页 |
1.3 相关工作 | 第15-16页 |
1.3.1 Meswani 的高性能计算性能预测模型 | 第15页 |
1.3.2 Boat Hull 模型 | 第15-16页 |
1.3.3 Zhang 和 Owens 的 GPU 性能定量分析模型 | 第16页 |
1.3.4 Hong 和 Kim 的 GPU 架构分析模型 | 第16页 |
1.4 论文的研究目标和方法 | 第16-18页 |
1.5 论文结构 | 第18-19页 |
第二章 GPU 和 CUDA | 第19-29页 |
2.1 GPU 硬件架构 | 第19-21页 |
2.1.1 SM 结构 | 第19-21页 |
2.2 CUDA | 第21-27页 |
2.2.1 CUDA 的发展 | 第21-22页 |
2.2.2 CUDA 编程模型 | 第22-23页 |
2.2.3 CUDA 存储模型 | 第23-26页 |
2.2.4 CUDA 指令执行机制 | 第26-27页 |
2.3 本章小结 | 第27-29页 |
第三章 Kernel 性能预测模型(KPEM) | 第29-44页 |
3.1 影响 GPGPU 程序性能的因素 | 第29-31页 |
3.1.1 并行度 | 第29-30页 |
3.1.2 存储器 | 第30页 |
3.1.3 指令 | 第30-31页 |
3.2 GPU 性能上限 | 第31-33页 |
3.2.1 指令执行和 warp 调度 | 第31-32页 |
3.2.2 性能上限计算 | 第32-33页 |
3.3 指令延迟 | 第33-35页 |
3.3.1 最大吞吐量所需 warp 数 | 第33-34页 |
3.3.2 SM 上活跃 warp 数 | 第34-35页 |
3.4 性能预测模型 | 第35-37页 |
3.5 KPEM 工作流程 | 第37-42页 |
3.5.1 CUDA 编译过程 | 第37-40页 |
3.5.2 不可修改参数 | 第40-41页 |
3.5.3 可修改参数 | 第41-42页 |
3.6 本章小结 | 第42-44页 |
第四章 混合编程性能预测模型(HPPEM) | 第44-50页 |
4.1 CUDA Stream | 第44-45页 |
4.2 性能预测模型 | 第45-49页 |
4.3 本章小结 | 第49-50页 |
第五章 KPEM 和 HPPEM 实验测试 | 第50-59页 |
5.1 实验环境 | 第50-53页 |
5.1.1 Fermi 架构 | 第50-52页 |
5.1.2 GTX460 | 第52-53页 |
5.2 KPEM 实验 | 第53-57页 |
5.2.1 参数计算 | 第53-55页 |
5.2.2 系统测试 | 第55-57页 |
5.3 HPPEM 实验 | 第57-58页 |
5.4 本章小结 | 第58-59页 |
第六章 基于 KPEM 和 HPPEM 的 GPGPU 程序优化 | 第59-70页 |
6.1 通用优化方法 | 第59-66页 |
6.1.1 CPU 和 GPU 异步执行 | 第59-60页 |
6.1.2 避免 shared memory 的 bank conflict | 第60-65页 |
6.1.3 避免分支 | 第65-66页 |
6.2 平衡情况下的优化 | 第66-69页 |
6.2.1 Register 的使用 | 第66-67页 |
6.2.2 Shared memory 的使用 | 第67页 |
6.2.3 Kernel 参数设置 | 第67-69页 |
6.3 本章小结 | 第69-70页 |
第七章 结束语 | 第70-72页 |
7.1 主要工作与创新点 | 第70页 |
7.2 后续研究工作 | 第70-72页 |
参考文献 | 第72-76页 |
致谢 | 第76-77页 |
攻读硕士学位期间已发表或录用的论文 | 第77-79页 |