论文部分内容阅读
半导体科技的进步以及对高效节能计算的迫切需求促进了一个芯片内不同结构计算内核的集成。目前的异构多核处理器大多集成通用处理器核和专用处理器核。其中通用处理器核作为主控处理器负责通用计算,同时运行操作系统、任务分配和调度;专用处理器核作为加速设备负责密集型的计算,用于加速特定领域应用。异构多核系统的可用性表明异构多核系统正在成为主流。图形处理单元(GPU)是使用最广泛的用于集成的数据并行加速器,集成中央处理器(CPU)核心和GPU核心的异构多核处理器充分利用了这两种不同的处理器的优势。这种架构中,CPU和GPU之间共享各种资源,诸如最后一级高速缓存、片上互连、存储器控制器和片外DRAM存储器。共享高速缓存能够实现CPU和GPU之间的快速数据共享,提高CPU和GPU应用程序的性能。然而,CPU和GPU核心集成到同一个芯片上也导致两者对共享缓存空间的争用,在异构多核架构下研究缓存管理需要重点关注。本课题首先分析异构多核架构下CPU和GPU应用程序的访存行为特征。GPU核心相比CPU核心能够提供更高水平并行特性的特点使得GPU应用程序可以达到比CPU应用程序更高的数据访问速率,致使大多数可用的共享高速缓存空间被GPU应用程序使用,仅为CPU应用程序留下非常有限的高速缓存容量。另外,当GPU应用程序中的线程必须等待来自主存的数据时,通常还有许多其他线程可以在此期间执行,高速缓存未命中对GPU应用程序的性能具有有限的影响,因此,CPU应用程序通常比GPU应用程序对可用高速缓存的大小更敏感。综合这两个方面可以得出,在异构多核处理器中,尽管CPU应用程序比GPU应用程序需要更大的缓存空间,却往往获得相对较小的共享高速缓存容量,并且GPU应用程序具有一定的高速缓存访问延迟容忍能力。当前的缓存管理方法包括缓存分区和缓存替换算法,很少有考虑CPU应用程序和GPU应用程序访存特性的,研究一种适合异构架构的缓存管理方法十分必要。针对以上情况,本课题提出一种基于Bypass的共享缓存管理方法,该共享缓存管理方法通过限制GPU应用程序对最后一级共享缓存的访问,转而访问内存来实现CPU和GPU应用程序对共享缓存访问的分离,缓解CPU应用程序和GPU应用程序对共享缓存的争用,提升CPU应用程序的性能,从而提升整体系统性能。考虑到运行过程中CPU和GPU应用程序的不同访存特征,对上述管理方法进行进一步优化,提出基于Bypass的动态共享缓存管理方法。该方法在程序运行过程中动态分析CPU应用程序和GPU应用程序的不同缓存敏感特性,在处理GPU访存请求的时候考虑CPU和GPU应用程序的当前访存特性,实时判断GPU应用程序是访问内存还是访问共享缓存,进行动态调整,使其更好地适应不同的应用程序。为了精准地评估实验方案对系统性能的影响,本课题采用gem5-gpu异构多核模拟器作为基础架构模拟平台,并用SPEC CPU2006测试程序集和Rodinia测试程序集进行实验验证。实验结果表明,本课题设计实现的基于Bypass的共享缓存管理方法与传统的缓存管理方法相比,可以提升CPU应用程序的性能。以GPU应用程序backprop为例,CPU应用程序性能最高提升21%,平均提升13%。基于Bypass的动态共享缓存管理方法在最小程度影响GPU应用程序性能的情况下提升了CPU应用程序的性能,从而提升了系统整体性能。以GPU应用程序backprop为例,CPU应用程序性能最高提升15%,平均提升7%,GPU应用程序的性能基本不受影响。