摘要 | 第6-7页 |
Abstract | 第7-8页 |
第1章 前言 | 第9-14页 |
1.1 异构架构为应用开发带来的编程难问题 | 第9-11页 |
1.1.1 异构系统的发展 | 第9-10页 |
1.1.2 异构架构下的编程方法 | 第10-11页 |
1.2 编程难问题的解决途径:系统软件支持统一的编程框架 | 第11页 |
1.3 本文的主要研究内容 | 第11-12页 |
1.4 本文的主要贡献 | 第12页 |
1.5 论文的组织 | 第12-14页 |
第2章 相关研究工作 | 第14-28页 |
2.1 异构加速器 | 第14-19页 |
2.1.1 众核加速器 | 第14-18页 |
2.1.1.1 GPU | 第14-15页 |
2.1.1.2 Intel MIC协处理器 | 第15页 |
2.1.1.3 SW26010众核处理器 | 第15-16页 |
2.1.1.4 其他 | 第16-18页 |
2.1.2 多核加速器 | 第18-19页 |
2.1.2.1 多核CPU处理器 | 第18页 |
2.1.2.2 CELL处理器 | 第18-19页 |
2.1.2.3 其他 | 第19页 |
2.2 异构并行编程模型 | 第19-22页 |
2.2.1 CUDA | 第19-20页 |
2.2.2 C++AMP | 第20-21页 |
2.2.3 OpenACC | 第21页 |
2.2.4 OpenCL | 第21-22页 |
2.3 异构编译/运行时系统 | 第22-27页 |
2.3.1 商业SDK | 第22-24页 |
2.3.1.1 NVIDIA CUDA SDK | 第22-23页 |
2.3.1.2 AMD APP SDK | 第23-24页 |
2.3.2 开源实现 | 第24-27页 |
2.3.2.1 SNU-SAMSUNG OpenCL Framework和SnuCL | 第24-26页 |
2.3.2.2 pocl | 第26-27页 |
2.4 本章小结 | 第27-28页 |
第3章 面向众核加速器的OpenCL代码生成方法 | 第28-50页 |
3.1 OpenCL编程框架 | 第28-31页 |
3.1.1 OpenCL平台模型 | 第28-29页 |
3.1.2 OpenCL内存模型 | 第29页 |
3.1.3 OpenCL执行模型 | 第29-31页 |
3.2 国产众核处理器微结构 | 第31-35页 |
3.2.1 总体架构 | 第31页 |
3.2.2 计算单元 | 第31-32页 |
3.2.3 内存系统 | 第32-34页 |
3.2.4 编程环境与软件栈 | 第34-35页 |
3.3 面向众核加速器的OpenCL代码生成系统设计 | 第35-41页 |
3.3.1 OpenCL平台模型的映射 | 第35-36页 |
3.3.2 OpenCL内存模型的映射 | 第36-38页 |
3.3.3 OpenCL执行模型的映射 | 第38-41页 |
3.4 面向众核加速器的OpenCL代码生成系统实现 | 第41-47页 |
3.4.1 总体架构 | 第41-42页 |
3.4.2 Clang编译器 | 第42-44页 |
3.4.3 语义转换模块 | 第44-47页 |
3.4.3.1 OpenCL API的转换 | 第44-45页 |
3.4.3.2 OpenCL C的转换 | 第45-47页 |
3.5 实验验证 | 第47-49页 |
3.6 本章小结 | 第49-50页 |
第4章 面向众核加速器的OpenCL优化方法 | 第50-63页 |
4.1 线程合并 | 第50-55页 |
4.1.1 优化原理 | 第51-52页 |
4.1.2 优化设计 | 第52-53页 |
4.1.3 优化实现 | 第53-55页 |
4.2 局存优化 | 第55-59页 |
4.2.1 优化原理 | 第55-57页 |
4.2.2 优化设计 | 第57页 |
4.2.3 优化实现 | 第57-59页 |
4.3 实验验证 | 第59-62页 |
4.3.1 线程合并优化实验结果与分析 | 第59-60页 |
4.3.2 局存优化实验结果与分析 | 第60-62页 |
4.4 本章小结 | 第62-63页 |
第5章 结束语 | 第63-65页 |
参考文献 | 第65-68页 |
致谢 | 第68-70页 |
在学期间的科研情况 | 第70页 |