多核处理器的功耗估算模型

您所在的位置:网站首页 硬件功耗计算 多核处理器的功耗估算模型

多核处理器的功耗估算模型

2022-12-12 01:47| 来源: 网络整理| 查看: 265

“功耗墙”是当前计算机系统设计时面临的重要挑战之一.首先,随着工艺尺寸的减小和集成度的提高,处理器功耗急剧增加,已成为制约性能进一步提升的瓶颈;其次,高功耗带来的高热量会导致处理器温度上升,严重影响计算机系统的可靠性.相关研究成果表明:温度每升高10°C[1],芯片失效概率便会提高1倍;再者,功耗还直接影响计算机系统的设计和运行成本.对于嵌入式系统,高功耗意味着大容量电池的需求,这会大幅增加成本并严重影响设备的便携性.对于桌面系统和高性能计算系统,功耗还决定了芯片的封装技术及散热装置.2013年,天河2号超级计算机以惊人的计算能力荣登并卫冕Top500[2]排行榜第一,其整机功耗为17.808MV,打开水冷系统后达到24MV,正常工作1小时的电费高达十几万元.在这个提倡“绿色、环保、节能”的新时代,如何降低功耗、开发环境友好型处理器,早已成为工业界和学术界关注的焦点.Green500[3]以性能功耗比作为超级计算机排行的依据,意在引导人们从单纯追求高性能转向高效能,在功耗和性能之间寻找平衡点.

精确地获得系统功耗数据,是研究功耗相关问题的一个重要前提.功耗数据可以通过在芯片上集成额外的功耗测量电路获得[4],但是这种方法需要额外的硬件电路,增加了处理器的制造成本.另外一种简单、易行的办法是:通过万用表探测主板供电线的电流电压,再通过计算获得功耗.但这种方法的精度受到测量仪器的限制,极易受到环境因素的干扰.在多核处理器中,由于多个处理器核心共享同一个电源层(power plane),上述两种方法均只能在芯片级测量功耗,难以区分不同处理器核的功耗.建立功耗模型则是另一种常用的方法,并且可以对单个处理器核心甚至功能部件的功耗进行建模.集成电路的功耗分析早已成为研究的热点,在电路级、逻辑门级、RT级、体系结构级、系统级等抽象层次,都有大量的文献对相关功耗模型及优化方法进行了讨论[5, 6, 7, 8, 9, 10].不同层次的功耗模型均存在着速度与精度之间的矛盾,抽象层次越高,模型的计算速度越快,但是精度越差;相反,抽象层次越低,能获取更多的电路层细节信息,因此更接近于真实的芯片,但速度较慢.

本文利用处理器中现有的硬件性能计数器,通过分析处理器的能耗分布,选择了一组与程序运行功耗密切相关的事件,应用数理统计的方法分别对动态功耗和静态功耗进行建模,最终建立了一个实时的、与应用无关的功耗估算模型,并对模型进行了验证和优化.

本文第1节对功耗模型作宏观介绍.第2节详细阐述参数模型的构造过程.第3节描述模型的具体实现,并进行验证、分析与优化.第4节介绍国内外相关工作的研究进展并进行对比分析.第5节对本文工作进行总结,并给出以后的研究方向.

1 引 言

为了进行正确性调试和性能优化,现代主流处理器中都集成了硬件性能计数器(performance counter),用于监测系统中各种各样的硬件事件,例如CPU运行周期数、提交的微指令数、各级Cache的失效/命中次数等等.这些硬件事件的实时性强,精确度高,甚至可以达到时钟级精度.处理器厂商提供专门的API供用户读取这些计数器的值,并基于这些计数器开发了一系列性能优化工具,如Intel VTune.此外,为了便于用户使用性能计数器,目前出现了许多用于简化性能计数器配置过程的工具.处理器为性能计数器预留了专用的统计模块,不会对流水线产生影响,也不会占用Cache等存储资源.设计这些计数器的最初目的是为了调节性能,直到后来,Frank发现某些硬件事件与动态功耗之间存在强线性关系[11].在了解了各硬件事件的触发条件后,可以通过采样性能计数器,利用硬件事件的数据值构建功耗估算模型.一个优秀的功耗模型不仅可以反映被测程序的实时功耗,还可以作为优化调度策略的依据.例如:操作系统可以基于程序运行时的功耗进行线程分派和迁移,实现负载平衡.现有的基于性能计数器的功耗模型或多或少存在一些不足,有的是应用相关的,有的建模过程过于复杂,有的可移植性差.最重要的是,大部分模型的估算精度都不够理想.因此,建立一个应用无关、低开销、可移植性好的高精度模型,具有重要的现实意义.

本文构建功耗模型主要分为两个阶段.

1)离线构建参数模型:将监测程序绑定到处理器核0上,核1~核3运行应用程序,监测程序周期性地采样获取每一个核硬件事件信息、实时温度和总功耗,并将数据输入到一个日志文件中;然后,以日志文件作为训练输入,通过逐步多元线性回归拟合出模型参数;

2)在线实时功耗估算:监测程序继续采样性能计数器和温度,并将数据带入线下建立的参数模型中,计算出实时功耗.

整个实验流程如图 1所示.

图 1(Fig.1) Fig.1 Framework of experiment 图 1 实验流程 2 参数模型 2.1 选择硬件事件

硬件事件的类型、数量直接决定了整个模型的精度和复杂度,所以,硬件事件的选择是构建功耗估算模型中最关键的步骤之一.如果监测的事件数量太多,会增大采样间隔,由此降低数据的精确性,同时也会增加模型的额外开销;相反地,如果事件太少,就不能达到通过硬件事件反映应用程序功耗特征的目的,降低了模型的可用性.现在的处理器通常会提供上百个程序员可见的硬件事件,如何在众多事件中寻找一个冗余度最小但又能充分表征应用功耗特征的事件组,是构建功耗模型的首要问题.

与功耗密切相关的事件通常来自于高能耗的部件,一个定义“良好”的事件组能够尽可能地反映出这些部件的功耗.在微处理器中,时钟逻辑的功耗最大,占总能耗的40%左右(如图 2所示)[12],主要包括时钟发生器、时钟驱动器、时钟树和时钟负载,其中,时钟负载所占比重最大;数据通路的功耗位居其次,它包括复杂的功能部件、高频度使用的寄存器文件以及总线,随着片上Cache容量的不断增加,其面积往往占据芯片面积的50%以上,数量众多的晶体管使它的功耗也很高;其他控制逻辑和接口的功耗相对较低.

图 2(Fig.2) Fig.2 Distribution of power inprocessor 图 2 处理器中的功耗分布

选择硬件事件的具体步骤如算法1所示.第1步,根据前面的分析,选出主要能耗部件的相关事件;第2步,计算各个事件与动态功耗之间的Pearson相关系数,根据表 1[13]中所示的Pearson系数与相关性的关系,剔除掉无相关性的事件(相关系数绝对值小于0.1);第3步~第6步,通过逐步多元回归分析选择最终的事件组.逐步回归分析的基本思想是:逐步向模型中加入算法第2步所确定的事件,进行多元线性回归分析,并对模型中各事件进行F检验,若经检验后该变量是显著的,便将这个事件加入到功耗模型中.同时,每次引入一个新的事件后都要对模型中已有的事件进行检验,如果之前被引入的某个事件由于新事件的加入而变得对功耗的作用不再显著,便从模型中剔除.为了消除多元回归分析中的多重共线性问题,在每次引入新事件后,还要进行T检验,删除不显著的事件,直到既不能剔除已有事件也不能加入新的事件为止.这个反复迭代的过程就保证了模型中的所有事件都是显著的,而且回归方程是“最优”的.

表 1(Table 1) Table 1 Explanation of correlation for Pearson coefficient表 1 Pearson系数的相关性解释 相关性 负 正 无 -0.09~0.0 0.0~0.09 弱 -0.3~-0.1 0.1~0.3 中 -0.5~-0.3 0.3~0.5 强 -1.0~-0.5 0.5~1.0 Table 1 Explanation of correlation for Pearson coefficient表 1 Pearson系数的相关性解释

算法1. 事件选择算法.

输入:所有硬件事件集合;

输出:精简的事件集合.

Step 1. 根据图 2选择出与主要能耗部件相关的硬件事件.

Step 2. 计算事件与动态功耗的Pearson相关系数r,去掉|r|



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3