摘要 | 第4-5页 |
abstract | 第5页 |
第一章 绪论 | 第8-11页 |
1.1 选题背景及研究意义 | 第8页 |
1.2 国内外研究现状 | 第8-9页 |
1.3 本文的主要工作 | 第9-11页 |
第二章 并行计算概述 | 第11-20页 |
2.1 并行计算的发展 | 第11页 |
2.2 传统CPU架构 | 第11-13页 |
2.3 GPU并行架构 | 第13-14页 |
2.4 CUDA、OpenCL、C++AMP简介 | 第14-17页 |
2.4.1 CUDA简介 | 第14-16页 |
2.4.2 OpenCL简介 | 第16-17页 |
2.4.3 C++AMP简介 | 第17页 |
2.5 C++AMP优势 | 第17-18页 |
2.6 本章小结 | 第18-20页 |
第三章 C++AMP技术研究概述 | 第20-32页 |
3.1 C++AMP方法 | 第20-21页 |
3.2 C++AMP基础 | 第21-24页 |
3.2.1 array | 第21页 |
3.2.2 C++AMP内核程序 | 第21-23页 |
3.2.3 在CPU和GPU之间复制数据 | 第23-24页 |
3.3 图像互操作 | 第24-27页 |
3.3.1 norm和unorm | 第24-25页 |
3.3.2 纹理与数组 | 第25-27页 |
3.4 分组技术 | 第27-31页 |
3.4.1 分组的意义 | 第27-28页 |
3.4.2 代码加速:平铺和栅 | 第28-29页 |
3.4.3 分组大小的选择及影响 | 第29-31页 |
3.5 本章小结 | 第31-32页 |
第四章 C++AMP工具 | 第32-38页 |
4.1 C++AMP调试工具 | 第32-35页 |
4.1.1 GPU调试 | 第32-34页 |
4.1.2 GPU窗口及技巧 | 第34-35页 |
4.2 性能分析工具 | 第35-36页 |
4.2.1 分析性能时间 | 第35页 |
4.2.2 Concurrency Visualizer的使用 | 第35-36页 |
4.3 本章小结 | 第36-38页 |
第五章 N-body模型的并行研究 | 第38-59页 |
5.1 N-body算法 | 第38-42页 |
5.1.1 N-body的PP算法 | 第38-40页 |
5.1.2 N-body的BH算法 | 第40-42页 |
5.2 N-body算法的实现 | 第42-49页 |
5.2.1 程序架构及程序介绍 | 第42-43页 |
5.2.2 CPU计算实现 | 第43-46页 |
5.2.3 C++AMP计算实现 | 第46-49页 |
5.3 优化方法及性能改进 | 第49-53页 |
5.3.1 分组优化 | 第49-51页 |
5.3.2 多GPU加速器 | 第51-53页 |
5.4 实验结果分析 | 第53-57页 |
5.4.1 C++AMP编程环境搭建 | 第53-54页 |
5.4.2 实验结果分析 | 第54-57页 |
5.5 本章小结 | 第57-59页 |
第六章 总结与展望 | 第59-61页 |
6.1 工作总结 | 第59页 |
6.2 下一步工作展望 | 第59-61页 |
参考文献 | 第61-63页 |
附录1 攻读硕士学位期间撰写的论文 | 第63-64页 |
致谢 | 第64页 |