摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第一章 绪论 | 第8-14页 |
1.1 选题背景及研究意义 | 第8页 |
1.2 国内外研究现状 | 第8-9页 |
1.3 相关技术研究概述 | 第9-12页 |
1.3.1 异构平台CPU+GPU | 第9-10页 |
1.3.2 CPU并行技术 | 第10页 |
1.3.3 GPU并行技术 | 第10-12页 |
1.4 本文主要研究内容 | 第12页 |
1.5 本文研究组织架构 | 第12-14页 |
第二章 并行计算理论与算法思想 | 第14-21页 |
2.1 并行计算理论 | 第14-16页 |
2.1.1 并行计算介绍 | 第14-15页 |
2.1.2 并行计算研究目标与内容 | 第15-16页 |
2.2 并行计算机体系结构 | 第16-18页 |
2.2.1 多级存储结构 | 第17页 |
2.2.2 访问模型 | 第17-18页 |
2.3 并行算法思想及其性能评估 | 第18-20页 |
2.3.1 并行算法思想 | 第18-19页 |
2.3.2 并行算法性能评估 | 第19-20页 |
2.4 本章小结 | 第20-21页 |
第三章 C++AMP理论与技术研究 | 第21-34页 |
3.1 C++AMP理论介绍 | 第21-23页 |
3.1.1 C++AMP概述 | 第21-22页 |
3.1.2 C++AMP编程模型 | 第22-23页 |
3.2 C++AMP存储系统 | 第23-25页 |
3.2.1 array和array_view类 | 第23-24页 |
3.2.2 索引类 | 第24-25页 |
3.2.3 数学库 | 第25页 |
3.2.4 图形库 | 第25页 |
3.3 C++AMP分组技术 | 第25-27页 |
3.3.1 分组介绍 | 第25-27页 |
3.3.2 分组大小选择 | 第27页 |
3.4 C++AMP可移植性 | 第27-28页 |
3.5 基于C++AMP直方图计算 | 第28-33页 |
3.5.1 直方图介绍 | 第28-29页 |
3.5.2 基于C++AMP直方图编程实现 | 第29-33页 |
3.5.3 实验结果分析总结 | 第33页 |
3.6 本章小结 | 第33-34页 |
第四章 基于C++AMP图像并行计算技术研究 | 第34-51页 |
4.1 Canny边缘检测算法 | 第34-37页 |
4.1.1 图像边缘检测步骤 | 第34-35页 |
4.1.2 传统边缘检测算法 | 第35页 |
4.1.3 Canny边缘检测算法 | 第35-37页 |
4.2 基于C++AMP图像并行计算实现 | 第37-45页 |
4.2.1 C++AMP编程环境搭建 | 第37页 |
4.2.2 实验应用程序组织架构 | 第37-38页 |
4.2.3 CPU端图像并行计算 | 第38-42页 |
4.2.4 GPU端图像并行计算 | 第42-45页 |
4.3 实验结果与分析 | 第45-50页 |
4.3.1 实验结果及算法性能分析 | 第45-49页 |
4.3.2 性能改善研究讨论 | 第49-50页 |
4.4 本章小结 | 第50-51页 |
第五章 基于C++AMP并行程序优化研究 | 第51-60页 |
5.1 性能分析 | 第51-54页 |
5.1.1 测量内核性能 | 第51-52页 |
5.1.2 使用并发可视化工具 | 第52-54页 |
5.2 优化内存访问模式 | 第54-57页 |
5.2.1 别名和parallel_for_each调用 | 第54页 |
5.2.2 GPU的高效往返数据复制 | 第54-55页 |
5.2.3 加速全局内存访问 | 第55页 |
5.2.4 分组静态内存访问优化 | 第55-56页 |
5.2.5 占用比和寄存器 | 第56-57页 |
5.3 优化计算 | 第57-59页 |
5.3.1 避免分支代码 | 第57页 |
5.3.2 选择合适精度 | 第57页 |
5.3.3 循环展开 | 第57-58页 |
5.3.4 障栅 | 第58页 |
5.3.5 排队模式 | 第58-59页 |
5.4 本章小结 | 第59-60页 |
第六章 总结与展望 | 第60-61页 |
参考文献 | 第61-63页 |
致谢 | 第63页 |