




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CPU-GPGPU共享最后一级缓存架构中的数据共享优化研究随着CPU和GPGPU在各种环境下得到应用,人们逐渐发现这两个处理器各自的独特优势。为了实现优势互补并支持更广泛的场景,由CPU和GPGPU组成的异构多处理器系统受到关注。其中CPU和GPGPU共享最后一级缓存(LLC)的片上紧耦合系统能实现更细粒度的交互。然而简单地将CPU和GPGPU连接到共享LLC时两种处理器在访存行为上的差异性导致数据共享效率受限,并不能充分发挥异构多处理器系统的计算能力。本文首先分析了CPU和GPGPU使用共享LLC进行数据交换时的访存特征。发现简单的缓存替换策略并不能提供最高的数据交换效率,会产生缓存抖动问题,中间暂存数据被写入内存也会引入不必要的内存事务并浪费了内存带宽。此外传统的交互模式往往造成一方处理器空闲等待对方提供数据,无法有效地实现数据生成和计算的重叠。为了解决这些问题,本文提出使用固定大小的元素作为数据交换单位,并在LLC中实现硬件管理的共享数据队列以支持基于元素的数据共享。进一步提出元素-原子的数据组织方式以移除元素大小限制,配合访问协议支持GPGPU大规模乱序访问。同时还使用后备存储避免死锁同时保持访问低延迟,并在共享数据队列中实现了低代价的全局同步。在使用传统LLC进行数据交换时,本文发现CPU和GPGPU的算法常常偏好不同的最优数据存储布局以满足各自不同的局部性,导致数据存储布局冲突。已有的转换方法会污染转换处理器的缓存、引入额外的转换代码执行或管理代价。本文通过在共享LLC中加入访存地址重映射实现体系结构辅助的自动转换。于是运行在不同处理器上的算法始终可以它们各自的最优数据存储布局访问共享数据,并充分利用各的自私有缓存。由于处理器不再直接进行布局转换,CPU或GPGPU代码中也不再需要加入额外的管理代码。其次,本文使用可编程的重映射控制器实现灵活的数据存储布局转换,移除了对数据大小和只支持特定目标布局的限制。根据GPGPU并行访存的特征,本文指出其访存过程中存在大量的仿射计算,即各线程执行完全相同的内存地址计算,只有作为输入的线程ID有差异。这种冗余计算导致GPGPU的计算资源浪费且不利于对访存统一调度。因此本文提出访存分离计算,由CPU生成仿射计算参数,交由共享LLC计算各线程的实际访存地址,并生成相应的访存请求。LLC最终将数据经过访存融合后推送给GPGPU的各线程。因此访存分离计算移除了GPGPU代码中大部分的访存地址计算和访存操作本身,将更多GPGPU的计算资源保留给实际工作,提高了系统效率。最后,本文使用模拟器环境验证提出的优化方法。其中共享数据队列相比传统的数据交换方法加速了48%,而CPU和GPGPU的平均全局同步时间分别缩短到21%和38%。使用共享数据存储布局重映射后,测试程序的平均执行时间降低到69%;相比于使用CPU和GPGPU进行数据存储布局转换,使用本文的方法的平均转换时间分别减少到58%和46%。访存分离计算则将运行时间平均降低到48%,GPG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论