摘要 | 第4-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第16-29页 |
1.1 背景介绍 | 第16-20页 |
1.1.1 GPGPU编程模型与架构 | 第16-18页 |
1.1.2 CPU-GPGPU异构多处理器系统 | 第18-20页 |
1.2 研究动机 | 第20-23页 |
1.2.1 LLC数据共享 | 第20-21页 |
1.2.2 共享数据存储布局 | 第21-22页 |
1.2.3 GPGPU中的仿射计算 | 第22-23页 |
1.3 研究框架 | 第23-24页 |
1.4 研究内容 | 第24-27页 |
1.4.1 共享数据队列 | 第24-25页 |
1.4.2 共享数据存储布局重映射 | 第25-26页 |
1.4.3 访存分离计算 | 第26-27页 |
1.5 本文组织结构 | 第27-28页 |
1.6 本章小结 | 第28-29页 |
第2章 相关工作综述 | 第29-44页 |
2.1 共享LLC | 第29-31页 |
2.1.1 CPU-GPGPU异构架构性能评估 | 第29-30页 |
2.1.2 共享LLC管理策略 | 第30-31页 |
2.2 CPU-GPGPU数据交换 | 第31-34页 |
2.2.1 共享存储实现 | 第31-32页 |
2.2.2 任务数据分发和调度 | 第32-33页 |
2.2.3 内存一致性模型和缓存一致性协议 | 第33-34页 |
2.3 数据存储布局和转换 | 第34-37页 |
2.3.1 性能评估 | 第34-35页 |
2.3.2 最优数据存储布局选择 | 第35页 |
2.3.3 数据存储布局转换 | 第35-37页 |
2.4 GPGPU数据预取 | 第37-38页 |
2.4.1 软件预取 | 第37页 |
2.4.2 硬件预取 | 第37-38页 |
2.5 冗余计算优化 | 第38-42页 |
2.5.1 指令重用 | 第38-39页 |
2.5.2 标量计算 | 第39-41页 |
2.5.3 仿射计算 | 第41-42页 |
2.6 访存分离计算 | 第42-43页 |
2.6.1 硬件预先执行和辅助线程 | 第42页 |
2.6.2 访存分离执行 | 第42-43页 |
2.7 本章小结 | 第43-44页 |
第3章 共享数据队列 | 第44-83页 |
3.1 传统LLC数据共享的问题 | 第44-47页 |
3.2 元素大小受限的共享数据队列 | 第47-49页 |
3.3 基础共享数据队列 | 第49-55页 |
3.3.1 元素-原子数据组织 | 第49-50页 |
3.3.2 访问协议 | 第50-51页 |
3.3.3 基础共享数据队列管理 | 第51-54页 |
3.3.4 典型用例以及局限性 | 第54-55页 |
3.4 后备存储 | 第55-60页 |
3.4.1 总体设计 | 第55-56页 |
3.4.2 流映射 | 第56-58页 |
3.4.3 数据存储管理 | 第58-60页 |
3.5 全局同步 | 第60-65页 |
3.5.1 程序结束信号 | 第60-62页 |
3.5.2 全局同步栅栏 | 第62-65页 |
3.6 实验结果分析 | 第65-82页 |
3.6.1 实验环境 | 第65页 |
3.6.2 测试程序 | 第65-66页 |
3.6.3 元素大小受限的共享数据队列 | 第66-69页 |
3.6.4 基础共享数据队列 | 第69-73页 |
3.6.5 后备存储案例研究: N皇后问题 | 第73-77页 |
3.6.6 全局同步案例研究: 广度优先搜索(BFS) | 第77-81页 |
3.6.7 硬件代价 | 第81-82页 |
3.7 本章小结 | 第82-83页 |
第4章 共享数据存储布局重映射 | 第83-110页 |
4.1 访存模式和动机 | 第83-88页 |
4.1.1 数据存储布局 | 第83-84页 |
4.1.2 访存局部性 | 第84-85页 |
4.1.3 软件进行数据存储布局转换 | 第85-87页 |
4.1.4 动机 | 第87-88页 |
4.2 数据存储地址重映射 | 第88-90页 |
4.2.1 地址计算 | 第88-89页 |
4.2.2 地址重映射 | 第89-90页 |
4.3 LLC数据存储布局重映射 | 第90-96页 |
4.3.1 设计框架 | 第90-91页 |
4.3.2 重映射控制器 | 第91-94页 |
4.3.3 重映射程序 | 第94-95页 |
4.3.4 讨论 | 第95-96页 |
4.4 分块矩阵乘法案例研究 | 第96-102页 |
4.4.1 GPGPU kernel | 第96-98页 |
4.4.2 重映射配置 | 第98-99页 |
4.4.3 重映射程序 | 第99-101页 |
4.4.4 性能分析 | 第101-102页 |
4.5 实验结果分析 | 第102-109页 |
4.5.1 实验环境 | 第102页 |
4.5.2 测试程序 | 第102-104页 |
4.5.3 性能分析 | 第104-105页 |
4.5.4 访存性能 | 第105-107页 |
4.5.5 与CPU存储布局转换比较 | 第107-108页 |
4.5.6 与PTTWAC比较 | 第108-109页 |
4.5.7 硬件代价 | 第109页 |
4.6 本章小结 | 第109-110页 |
第5章 访存分离计算 | 第110-131页 |
5.1 仿射计算介绍 | 第110-111页 |
5.2 基于仿射计算的访存 | 第111-113页 |
5.3 访存分离计算 | 第113-117页 |
5.3.1 框架 | 第113-115页 |
5.3.2 编译时访存分离 | 第115-117页 |
5.4 仿射元组展开单元 | 第117-121页 |
5.4.1 框架 | 第117-118页 |
5.4.2 读数据仿射元组展开 | 第118-121页 |
5.4.3 写数据仿射元组展开 | 第121页 |
5.5 SM仿射数据访问 | 第121-123页 |
5.6 实验结果分析 | 第123-129页 |
5.6.1 实验环境 | 第123-124页 |
5.6.2 测试程序 | 第124-125页 |
5.6.3 性能分析 | 第125-126页 |
5.6.4 SM访存分析 | 第126-128页 |
5.6.5 LLC访存分析 | 第128-129页 |
5.7 本章小结 | 第129-131页 |
第6章 总结与展望 | 第131-134页 |
6.1 总结 | 第131-132页 |
6.2 展望 | 第132-134页 |
参考文献 | 第134-164页 |
攻读博士学位期间主要的研究成果 | 第164-165页 |
致谢 | 第165页 |