论文部分内容阅读
与传统的单核处理器相比,多核处理器具有性能强、能效比高的优势。经过持续的发展,多核处理器已日益成熟,并在高性能计算、桌面计算以及移动计算等不同的领域得到了广泛应用。与此同时,多种不同架构的多核/众核处理器不断出现,导致多核处理器呈现出越来越强的异构化趋势。此外,同一处理器芯片内也集成了多个不同结构的处理器核。这些特点给异构多核平台设计和选择带来不小的难度。首先,与处理器体系结构的飞速发展相比,异构多核处理器的编程模型的发展相对滞后,无法充分发挥异构多核处理器的优势。其次,随着处理器核数的增加以及处理器核工作频率的提升,异构多核处理器功耗问题也日益突出。围绕这些问题,本文面向异构多核处理器的编程和功耗优化问题展开深入研究,主要工作和创新点有:1)深入分析了三种典型异构多核平台并论证了CPU+GPU平台作为研究线程级猜测并行技术目标平台的必要性。通过分析Intel MIC、Micron AP和AMD APU这三种异构多核平台的现状、特点及分析它们对猜测并行机制支持后发现:由于MIC是基于x86架构设计的,传统面向同构系统的猜测并行机制可以很好地迁移到MIC上运行;Micron公司所推出的AP加速器架构虽然在某些特殊的计算任务上具有很好的加速能力,但其产品尚未完全成熟,部分接口尚未开放,无法实现真正的可编程异构计算;GPU(包括APU)上集成的大量计算资源为开发线程级并行提供了基础,但如何设计适合该结构的猜测并行机制,仍值得深入研究。综合分析之后,本文认为探索面向CPU+GPU异构多核平台的猜测并行技术具有重要的研究和应用价值。2)提出了一种面向GPU的软件线程猜测模型STLS。STLS首先通过代码变换,使一个线程组内有数据相关的部分串行执行;其次,借助猜测执行来优化由此引发的control divergence,并尽可能地并行执行具有潜在并行性的线程。为了实现STLS并提高其性能,本文从应用程序中归纳出两类基本数据制相关,并针对它们的特点设计了简洁的动态数据相关检测方法;通过提出的STLS模型的猜测数据管理机制,分析了其性能开销;通过动态线程交换技术将线程组内存在数据相关的一个或几个线程换出,以减少组内线程间的数据相关以及由此引起的性能损失。典型应用的测试结果表明,STLS系统能够带来有效的性能提升。3)提出了一种集成GPU的功耗预测模型。模型主要是基于回归模型的思想,通过分类分析确认回归模型中的15种回归因子并选择了Rodinia作为模型的测试基准程序集。此外,为了能够精确测量模型数据,本文提出了内核(Kernel)代码延展机制。通过将所有kernel的执行次数进行拓展,从而增加了每个kernel的运行时间,满足CodeXL采样周期的要求。在此基础上,我们通过提取准确反应程序运行时所产生的功耗数据,采用SPSS方法评估回归模型。测试结果表明,模型具有较好的线性相关性,并且模型的总体精确度较高。为了减小功耗预测模型的延迟,使得其能更好的应用于DVFS技术,降低处理器的功耗,本文还进一步探索了优化精简功耗模型的方法。4)提出了一种功耗受限下GPU猜测并行机制优化算法。针对功耗受限条件下的STLS系统动态功耗调节技术,我们首先分析了两种适合STLS系统的功耗调节方法DVFS以及工作模式切换,前者需要GPU支持DVFS,后者则需要GPU支持线程级Power Capping。本文为STLS系统设计了Power Capping策略STLS-DPA,在每个调节周期内,该策略能够根据由GPU功耗预测模型预测出的STLS系统功耗值,选择最合适的VF等级和STLS运行模式,并修改STLS系统的VF等级和运行模式。测试结果表明,与试探策略相比,STLS-DPA策略使STLS系统的功耗更加贴近目标功耗,而且调整速度更快。