西北师范大学研究生学位论文作者信息 | 第5-9页 |
摘要 | 第9-10页 |
Abstract | 第10页 |
1 绪论 | 第11-16页 |
1.1 研究背景和意义 | 第11-12页 |
1.1.1 传统并行计算的发展 | 第11页 |
1.1.2 GPU 通用计算的兴起与发展 | 第11-12页 |
1.2 源到源并行化技术研究现状 | 第12-13页 |
1.3 本文的主要工作 | 第13-15页 |
1.3.1 核函数部分的转化问题 | 第14页 |
1.3.2 循环部分的并行化问题 | 第14页 |
1.3.3 不同存储区域内变量的处理问题 | 第14-15页 |
1.4 本文的组织结构 | 第15-16页 |
2 CUDA 通用并行计算模型 | 第16-27页 |
2.1 CUDA 基础 | 第16-19页 |
2.1.1 主机和设备 | 第16-17页 |
2.1.2 内核函数的定义和调用 | 第17-18页 |
2.1.3 线程层次结构 | 第18-19页 |
2.2 硬件映射 | 第19-20页 |
2.2.1 计算单元 | 第19-20页 |
2.2.2 执行模式 | 第20页 |
2.3 软件体系 | 第20-23页 |
2.3.1 CUDA C 扩展语言 | 第21-22页 |
2.3.2 NVCC 编译器 | 第22页 |
2.3.3 运行时 API 和驱动 API | 第22-23页 |
2.4 存储器层次结构 | 第23-26页 |
2.4.1 全局存储器 | 第23-24页 |
2.4.2 共享存储器 | 第24-25页 |
2.4.3 寄存器和局部存储器 | 第25页 |
2.4.4 常量存储器和纹理存储器 | 第25-26页 |
2.5 小结 | 第26-27页 |
3 STS-CUDA 并行化架构设计 | 第27-32页 |
3.1 STS-CUDA 的核心架构 | 第27-28页 |
3.2 STS-CUDA 的编译过程 | 第28-30页 |
3.3 STS-CUDA 并行转化的要点 | 第30-31页 |
3.4 小结 | 第31-32页 |
4 实现并行转化的关键技术 | 第32-43页 |
4.1 计算模型的并行转化 | 第32-35页 |
4.1.1 核函数的转化 | 第32页 |
4.1.2 循环的并行化 | 第32-34页 |
4.1.3 线程块数和块内线程数的确定 | 第34-35页 |
4.1.4 同步机制 | 第35页 |
4.2 数据模型的并行转化 | 第35-40页 |
4.2.1 全局存储空间的使用 | 第36-37页 |
4.2.2 共享存储空间的使用 | 第37-38页 |
4.2.3 变量或数组参数的传输 | 第38页 |
4.2.4 常量参数的传输 | 第38-40页 |
4.3 源到源并行化的转化策略 | 第40-42页 |
4.4 小结 | 第42-43页 |
5 目标代码的优化 | 第43-49页 |
5.1 STS-CUDA 中用到的优化方法 | 第43-45页 |
5.1.1 合理进行任务划分 | 第43-44页 |
5.1.2 主机端-设备端通信优化 | 第44页 |
5.1.3 全局存储器访问优化 | 第44页 |
5.1.4 共享存储器访问优化 | 第44-45页 |
5.2 CUDA 中实现进一步优化的方法 | 第45-48页 |
5.2.1 减少条件判断语句和展开循环 | 第45-46页 |
5.2.2 使用异步函数 | 第46-47页 |
5.2.3 用纹理存储器和常量存储器加速访问 | 第47页 |
5.2.4 优化指令流 | 第47-48页 |
5.3 小结 | 第48-49页 |
6 实验测试和分析 | 第49-64页 |
6.1 实验平台的搭建 | 第49-50页 |
6.2 第一种矩阵乘法并行化方案 | 第50-53页 |
6.3 第二种矩阵乘法并行化方案 | 第53-57页 |
6.4 STS-CUDA 源到源并行化 BP 算法方案 | 第57-63页 |
6.4.1 BP 算法 | 第57-59页 |
6.4.2 BP 算法的并行转化与 CUDA 下进一步优化 | 第59-63页 |
6.5 小结 | 第63-64页 |
7 总结与展望 | 第64-65页 |
7.1 全文总结 | 第64页 |
7.2 研究展望 | 第64-65页 |
参考文献 | 第65-68页 |
攻读硕士期间学术成果 | 第68-69页 |
致谢 | 第69页 |