论文部分内容阅读
近年来,由于GPU在复杂的科学计算上的出众表现,CPU-GPU异构系统逐渐成为了科学计算的重要工具。目前,CPU-GPU异构系统通常使用PCI-E协议连接,相对于CPU和GPU访问本地内存的高带宽,在CPU和GPU间提供数据通路的PCI-E具有低带宽高延迟的特点。然而,GPU上的计算应用通常需要较大的数据吞吐量,在这种情况下,数据通信的效率对整个CPU-GPU异构系统的性能有着显著的影响。随着内存管理方式从独立内存、统一地址空间变化到目前的统一内存方式,CPU和GPU之间的数据通信机制也在不断发展,由最初的程序员显式控制通信逐渐过渡到了通过页面迁移机制根据程序的数据需求在CPU和GPU之间自动地迁移页面。在高性能工作负载上,小页面会带来较高的地址转换开销,因此近年来CPU-GPU异构系统中的页面大小出现了增大的趋势。然而,由于CPU-GPU之间的低带宽和高延迟互连的限制,页面较大时迁移延迟也会随之增大,导致GPU上的计算为了等待数据而出现阻塞,进而造成严重的性能下降。本文针对以上问题进行了研究,主要工作如下:(1)本文对CPU-GPU异构系统中整页迁移机制引入的地址转换开销和迁移延迟进行了分析,并提出了一种透明的部分页迁移机制。该部分页迁移机制可以根据需要自动迁移页面的被请求部分,并在不修改程序代码和运行时库的情况下应用,以同时限制地址转换开销和迁移延迟。(2)本文定义了新的“部分有效”页面状态,在TLB和页表项中添加了已迁移范围的记录,提出了两种已迁移范围管理策略,对地址转换操作进行了修改,以支持新的部分页迁移通信机制。同时,本文评估了部分页迁移机制中页面大小和迁移单元大小对性能的影响。(3)本文提出了新的部分页面迁移操作,拓展了 GPU内存管理单元的功能,使它可以在生成迁移请求时指定迁移范围并进行请求合并,以支持新的部分页迁移通信机制。同时,本文在GPU内存管理单元中添加了预迁移的优化功能,用来和当前整页迁移机制上的预迁移优化效果进行对比。实验表明,当页面大小为2MB且PCI-E带宽为16GB/秒时,部分页面迁移可以在很大程度上隐藏整页迁移的性能开销。与完整页迁移机制相比,本文提出的部分页迁移机制实现了约94倍的加速。