摘要 | 第4-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第11-19页 |
1.1 课题研究背景及意义 | 第11-13页 |
1.2 相关研究工作 | 第13-17页 |
1.2.1 基于 Cetus 的 OpenMP-to-GPGPU Complier | 第13-14页 |
1.2.2 OpenHMPP | 第14页 |
1.2.3 OpenACC | 第14-15页 |
1.2.4 Halide | 第15-16页 |
1.2.5 Intel ISPC | 第16-17页 |
1.3 文的主要贡献 | 第17-18页 |
1.4 本文组织结构 | 第18-19页 |
第2章 OpenCL、OpenMP 并行编程标准及 Clang 编译器 | 第19-30页 |
2.1 OpenCL 并行编程模型 | 第19-22页 |
2.1.1 OpenCL 架构 | 第19-22页 |
2.1.2 OpenCL 应用程序 | 第22页 |
2.2 OpenMP 并行编程模型 | 第22-25页 |
2.2.1 OpenMP 执行模型 | 第23页 |
2.2.2 OpenMP 编程要素 | 第23-24页 |
2.2.3 OpenMP 与 OpenCL 的对应关系及难点技术分析 | 第24-25页 |
2.3 Clang 编译器 | 第25-29页 |
2.3.1 Clang 编译器的特点 | 第25-26页 |
2.3.2 Clang 编译器架构 | 第26-27页 |
2.3.3 Clang 内部表示 | 第27-29页 |
2.4 本章小结 | 第29-30页 |
第3章 OpenMP-to-OpenCL 代码自动转换工具的设计与实现 | 第30-43页 |
3.1 总体框架设计 | 第30-31页 |
3.2 OpenMP-to-OpenCL 代码自动转换模块设计 | 第31-32页 |
3.3 OpenMP 并行区域程序抽取与分析 | 第32-34页 |
3.4 OpenCL kernel 代码生成 | 第34-37页 |
3.4.1 OpenCL kernel 函数参数生成 | 第35-36页 |
3.4.2 OpenCL kernel 函数线程索引声明生成 | 第36页 |
3.4.3 OpenCL kernel 函数执行代码体生成 | 第36-37页 |
3.5 OpenCL Host 端代码生成 | 第37-40页 |
3.5.1 OpenCL 固定代码生成 | 第37-38页 |
3.5.2 OpenCL 内存代码生成 | 第38-39页 |
3.5.3 OpenCL kernel 函数调用代码生成 | 第39-40页 |
3.6 OpenCL 代码优化 | 第40-42页 |
3.7 本章小结 | 第42-43页 |
第4章 测试与分析 | 第43-49页 |
4.1 测试环境 | 第43-44页 |
4.1.1 硬件平台 | 第43-44页 |
4.1.2 测试程序 | 第44页 |
4.2 测试结果与分析 | 第44-47页 |
4.2.1 功能测试 | 第44-46页 |
4.2.2 内存传递优化性能测试 | 第46-47页 |
4.2.3 多平台测试 | 第47页 |
4.3 本章小结 | 第47-49页 |
第5章 总结与展望 | 第49-51页 |
5.1 工作总结 | 第49-50页 |
5.2 下一步研究计划 | 第50-51页 |
参考文献 | 第51-54页 |
作者简介及在学期间所取得的科研成果 | 第54-55页 |
致谢 | 第55页 |