法律状态公告日
法律状态信息
法律状态
2019-02-19
授权
授权
2017-07-07
实质审查的生效 IPC(主分类):G06F9/38 申请日:20170118
实质审查的生效
2017-06-13
公开
公开
技术领域
本发明涉及多处理器技术领域,具体涉及片上多处理器系统多线程同时运行的优化方法。
背景技术
随着计算机技术的发展,CMP(片上多处理器)凭借其强大的并行处理能力,逐渐成为主流,而CMP的并行处理能力,也随着集成核心数量的增加而逐渐提高。然而,核心数量的增加也带来了问题:假如同时激活CMP的所有核心,可能会使CMP系统的整体功耗超过TDP(散热设计功耗),此时系统的发热量,已经超出散热系统可以承载的范围,若不进行冷却,温度会进一步升高,对CMP造成损害。
为了提高CMP内部程序的响应速度,有研究者提出了短时sprinting(多线程同时运行)方案和sprint-and-rest(这是一种周期性的sprinting模式,假如sprinting阶段,系统以超过TDP的状态运行,那么在温度到达系统能够容忍的上限后,便转为冷却状态,待冷却一定时间后,又重复之前的sprinting过程)方案,短时sprinting这种模式根据sprinting频率的不同,运算性能会优于或者劣于单核/单线程模式。
针对sprint-and-rest,采用4核1.6G的sprinting模式与4核3.2G的sprinting模式进行分析,发现1.6G的表现优于单线程,而3.2G的表现弱于单线程。所以,对于sprint-and-rest模式,并不是sprinting频率越高越好,较低的频率配合较长的时间反而可以有更优秀的性能。
发明内容
针对现有技术中的上述不足,本发明提供的片上多处理器系统多线程同时运行的优化方法通过获取的最佳运行频率能够使片上多处理器拥有持续强大的并行处理能力。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种片上多处理器系统多线程同时运行的优化方法,其包括以下步骤:
获取片上多处理器系统散热设计功耗所在的动态电压频率缩放等级;
当散热设计功耗大于其所在动态电压频率缩放等级的最小功率时,获取片上多处理器系统当前尝试多线程同时运行的频率值;
计算当前尝试多线程同时运行的频率值与散热设计功耗之间的差异;
当差异大于预设精度时,采用当前尝试多线程同时运行的频率值与预设步长的累计值更新当前尝试多线程同时运行的频率值;
当差异小于等于预设精度时,输出当前尝试多线程同时运行的频率值作为片上多处理器系统多线程同时运行的频率。
本发明的有益效果为:采用本方案的方法能够在预设精度下,准确获取CMP的所有核心长时间拥有强大的并行处理能力的最佳频率,CMP的所有核心在最佳频率下运行时,其温度不会超过所设定的上限温度,整个系统可以持续不断地运行,具有最佳的每秒执行指令数。
附图说明
图1为片上多处理器系统多线程同时运行的优化方法一个实施例的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
图1示出了片上多处理器系统多线程同时运行的优化方法一个实施例的流程图。如图1所示,该优化方法100包括步骤101至步骤105。
在步骤101中,获取片上多处理器系统散热设计功耗所在的动态电压频率缩放等级;在获取之前,首先需要输入预先设定的动态电压频率缩放等级,并将搜索的初始等级设为1。
在本发明的一个实施例中,获取片上多处理器系统散热设计功耗所在的动态电压频率缩放等级进一步包括:
获取预先设定的所有动态电压频率缩放等级;
判断当前动态电压频率缩放等级的功率是否大于等于散热设计功耗:
若是,则片上多处理器系统的散热设计功耗位于当前动态电压频率缩放等级(DVFS等级);
否则,判断当前动态电压频率缩放等级的下一个动态电压频率缩放等级与散热设计功耗的大小关系。
实施时,本方案优选当前动态电压频率缩放等级的功率为当前动态电压频率缩放等级的平均功率。
在步骤102中,当散热设计功耗大于其所在动态电压频率缩放等级的最小功率时,获取片上多处理器系统当前尝试多线程同时运行的频率值。
其中当前尝试多线程同时运行的频率值的初始值可以设置为散热设计功耗所在的动态电压频率缩放等级内的最小功率,也可以设置为在该等级下的最小功率加一固定频率步长。
当散热设计功耗大于其所在动态电压频率缩放等级的最小功率时,则表明片上多处理器系统在动态电压频率缩放等级内最大功率与最小功率区间内能够找到使片上多处理器拥有持续强大的并行处理能力的最佳功率。
在步骤103中,计算当前尝试多线程同时运行的频率值与散热设计功耗之间的差异。
在步骤104中,当差异大于预设精度时,采用当前尝试多线程同时运行的频率值与预设步长的累计值更新当前尝试多线程同时运行的频率值。
在本发明的一个实施例中,更新当前尝试多线程同时运行的频率值时,还包括:
记录当前尝试多线程同时运行时的差异和上一次尝试多线程同时运行时的差异;
当当前尝试多线程同时运行时的差异与上一次尝试多线程同时运行时的差异的正负符号互异(其中一个为正数,另一个为负数)时,则表明不能寻找到使片上多处理器拥有持续强大的并行处理能力的最佳功率。
为了规避这种情况,本方案将当前步长按预设的比例缩小,以减小搜索范围,提高搜索精度,从而逼近要寻找的最佳功率。其中,预设步长的初始值为一个大于零的常数。
实施时,本方案优选当散热设计功耗小于等于其所在动态电压频率缩放等级的最小功率时,输出散热设计功耗所在动态电压频率缩放等级的上一个动态电压频率缩放等级的最高频率作为片上多处理器系统多线程同时运行的频率。
在步骤105中,当差异小于等于预设精度时,输出当前尝试多线程同时运行的频率值作为片上多处理器系统多线程同时运行的频率。
实施例
下面使用sniper,hotspot以及mcpat作为联合仿真平台,在多种电压/频率下进行实验:
实验设置的上限温度为80摄氏度,下限温度为50摄氏度,TDP值约为42W。CMP在sprinting模式下的温度到达上限后,便切换为rest模式,待温度冷却至下限温度后,再次切换为sprinting模式。在如表1所示的实验条件进行实验,实验统计数据见表2,其中,Inf表示当前电压/频率下,CMP可以持续运行。表2前五行是本方案预先设定的DVFS等级下运行得到的统计数据,最后一行是在寻找到的最佳的频率或电压情况下,运行的统计数据。
表1实验条件
表2实验统计数据
可以看出,在最佳频率下,CMP可以持续运行,且此时每秒执行指令数优于其余DVFS等级下的每秒执行指令数。
机译: 集成环境,用于在多处理器片上系统上运行的应用程序的执行监视和性能分析
机译: 集成环境,用于在多处理器片上系统上运行的应用程序的执行监视和性能分析
机译: 集成环境,用于对在多处理器片上系统上运行的应用程序进行执行监视和性能分析