论文部分内容阅读
近几年,将CPU与GPU集成进同一块芯片中正在成为处理器体系结构发展的一种新趋势。这种异构内核的集成能够减少独立GPU与CPU之间的数据通信开销,同时也引入了更深层次的资源共享,使得CPU与GPU之间的资源访问冲突更加剧烈。本文围绕应用程序在CPU&GPU融合(Fusion)架构处理器上运行时的性能和功耗特征,分析出引起CPU&GPU融合架构的性能和功耗损失的原因,并提出了有效的解决方案。本文的主要研究成果和创新点如下:(1)提出了面向CPU&GPU融合架构处理器的资源冲突和性能量化分析方法在CPU&GPU融合式异构处理器中,CPU与GPU深度共享包括Cache、内存、数据总线等处理器资源。目前的研究工作主要在模拟器层面针对共享存储的造成的性能损耗进行建模分析,优化存储请求调度策略。在真实系统环境下,关于多任务并行执行时的共享资源冲突与性能分析仍然是空白。本课题在真实系统上对多任务执行过程进行系统化分析,度量出多任务在真实环境下因资源冲突造成的性能损耗,解构并行性能损耗,找出影响程序性能的最主要的资源冲突类型,指明在应用程序级和操作系统级对程序和调度策略进行优化的大致方向。(2)提出了面向CPU&GPU融合架构处理器的CPU预先唤醒机制目前的操作系统已经可以为多种类型的外部设备提供支持,然而对于集成GPU而言,操作系统的支持仍然有待完善。异构融合式处理器有两个特点。首先,处理器核心集成化的特点要求CPU响应GPU发出的请求要高效及时。然而,中断机制引入的开销对于执行时间较短的任务不可忽略,轮询机制则会引入额外的功耗。其次,GPU作为执行计算任务的部件,任务占用GPU执行的时间很难预测。本课题讨论了在CPU&GPU融合式处理器平台,GPU程序的控制延迟、系统功耗和并行程序干扰之间的微妙关系,并提出了一种处理器预先唤醒机制来应对当前GPU程序响应系统请求的困境。通过对CPU的预先唤醒,系统能够在引入有限功耗开销的前提下降低GPU程序的控制延迟;此外,在CPU程序和GPU程序并行执行时,预先唤醒机制能够体现出良好的协作性。(3)面向CPU&GPU融合架构,提出了功耗受限条件下的任务调度策略在功耗受限条件下,目前的策略是由硬件动态地调整处理器核心工作状态来满足系统整体功耗限制。然而,硬件调整策略的缺点是无法感知上层应用的运行时信息,从而对上层应用程序的性能产生负面影响。本课题在操作系统和应用程序系统层面,将任务调度、处理器状态调整进行统一,实现有限功耗在各个处理器内核间的合理分配,提高CPU&GPU融合式异构处理器的能耗指标。上述方法和策略已经在Linux和Windows操作系统中实现,在Intel、AMD等处理器平台上的测试结果表明,本文提出优化机制能够在引入有限的功耗开销基础上有效地提升应用程序在CPU&GPU融合架构处理器上的性能,总体上提高处理器系统的性能功耗比。