摘要 | 第9-10页 |
ABSTRACT | 第10-11页 |
第一章 绪论 | 第12-26页 |
1.1 研究背景 | 第12-16页 |
1.1.1“存储墙”问题 | 第12页 |
1.1.2 访存优化 | 第12-15页 |
1.1.3 模板计算 | 第15-16页 |
1.2 模板计算的优化 | 第16-19页 |
1.2.1 并行化和向量化 | 第16-17页 |
1.2.2 循环变换 | 第17-18页 |
1.2.3 数据预取 | 第18-19页 |
1.3 研究内容及意义 | 第19-23页 |
1.3.1 研究内容 | 第19-20页 |
1.3.2 研究意义 | 第20页 |
1.3.3 研究平台 | 第20-23页 |
1.4 论文组织结构 | 第23-26页 |
第二章 模板计算的并行化和循环变换 | 第26-42页 |
2.1 研究动机 | 第26-31页 |
2.1.1 多核多级Cache体系结构 | 第26-27页 |
2.1.2 循环变换与并行化 | 第27-31页 |
2.2 模板计算Loop Tiling的OpenMP并行化 | 第31-37页 |
2.2.1 Loop Tiling分块大小的计算 | 第32页 |
2.2.2 OpenMP并行化算法 | 第32-36页 |
2.2.3 算法可扩展性分析 | 第36-37页 |
2.3 实验结果与分析 | 第37-40页 |
2.3.1 分块大小计算与评测 | 第37-38页 |
2.3.2 并行算法性能 | 第38-39页 |
2.3.3 算法可扩展性 | 第39-40页 |
2.4 小结 | 第40-42页 |
第三章 模板计算的向量化和向量重组 | 第42-60页 |
3.1 研究动机 | 第42-45页 |
3.1.1 多核多SIMD体系结构 | 第42-43页 |
3.1.2 向量化分析 | 第43-45页 |
3.2 模板计算的向量化 | 第45-48页 |
3.2.1 向量化模板计算 | 第45-46页 |
3.2.2 数据对齐 | 第46-48页 |
3.3 向量重组与向量重用 | 第48-55页 |
3.3.1 向量重组与向量重用 | 第48页 |
3.3.2 向量重组的实现方法 | 第48-51页 |
3.3.3 模板计算的向量重组和向量重用 | 第51-55页 |
3.4 实验结果与分析 | 第55-59页 |
3.4.1 模板计算的向量化性能测试 | 第55-57页 |
3.4.2 数据对齐对向量化的影响 | 第57页 |
3.4.3 向量重组的性能测试 | 第57-59页 |
3.5 小结 | 第59-60页 |
第四章 模板计算的数据预取 | 第60-74页 |
4.1 研究动机 | 第60-62页 |
4.1.1 数据预取及其影响因素 | 第60-61页 |
4.1.2 多核多级Cache结构的数据预取 | 第61-62页 |
4.2 Intel X86_64 体系结构数据预取机制 | 第62-67页 |
4.2.1 硬件预取 | 第62-63页 |
4.2.2 软件预取 | 第63-67页 |
4.3 模板计算的数据预取优化 | 第67-71页 |
4.3.1 模板计算与数据预取 | 第67-69页 |
4.3.2 数据预取与循环变换 | 第69-71页 |
4.4 实验结果与分析 | 第71-72页 |
4.5 小结 | 第72-74页 |
第五章 结束语 | 第74-76页 |
5.1 工作总结 | 第74-75页 |
5.2 工作展望 | 第75-76页 |
致谢 | 第76-78页 |
参考文献 | 第78-86页 |
作者在学期间取得的学术成果 | 第86页 |