许多处理器公开性能监视计数器,帮助度量与工作负载相关的“生产性能”。生产性能通常用比例因子,一个指程度的术语摊位相比之下,stall-free时间窗口内的周期。工作负载的比例因子也受频率选择调控器所选择的时钟频率的影响。因此,在动态电压/频率缩放或DVFS系统中(如Intel Speed Shift1),利用率、功率和性能输出也是尺度因子及其变化的函数。一些治理算法确实以其治理哲学所固有的方式来处理规模因子。
本文给出了在每个dvfs子系统级别上与工作负载利用率伸缩相关的方程。建立了频率、利用率和规模因子(其本身随频率而变化)之间的关系。这些方程的验证是棘手的,因为固有的工作负载,利用率似乎也在治理样本的粒度上以一种不确定的方式变化。因此,一种新的方法称为直方图岭跟踪应用。当将DVFS视为构建块时,量化缩放影响是至关重要的。典型的应用包括DVFS调控器和/或影响系统利用率、功率和性能的其他层。不过,这里的范围仅限于演示良好量化和验证的缩放方程。
Intel有三个与本主题相关的独立于架构的寄存器:
这些计数器在给定时间窗口内的δ通常解释如下:
理想情况下,如果一个活动没有摊位,那么P性能=一个性能(即比例因子S将为1),在这样的情况下,在给定的时间窗口内完成一项活动所花费的时间将简单地是该窗口内实际频率的倒数。在大多数实际工作负载中,比例因子是变化的,通常小于1。建立与利用率、比例因子和频率相关的精确方程,使DVFS调控器可以做出信息充分的频率变化决策。
乍一看,工作负载伸缩问题似乎类似于著名的Amdahl定律,该定律处理与并行计算资源相关的工作负载加速。然而,阿姆达尔定律不能在这里应用,因为“并行性因子”与“规模因子”的类比无法成立——前者独立于被缩放的资源(即并行处理器),而后者则是被缩放的资源(频率)的函数。频率上的利用率可伸缩性通过规模因子有一个级联关系。
本文使用了以下术语:
考虑DVFS系统上的频率调节器,在每个周期时间窗口t更新频率。考虑时刻t的当前瞬间0(“现在”),如图1。让刚刚完成的工作量窗口T有t行为(或t一个)作为其可扩展活动的一部分(即,t行为表示使处理器在执行中保持忙碌而不需要任何依赖的延迟或暂停的活动的累积部分)。让t摊位(或t年代)是描述所经历的有效停顿(子系统间依赖停顿)的子持续时间。也让t从(或to)是DVFS子系统处于更深的c状态的累积持续时间,这是一个明显低于C0状态的功率。两者之间的根本区别t从和t摊位是,在后一种情况下,子系统在经历非常短的依赖停滞时仍然是活跃的CO;而在前一种情况下,延迟足够大,并使子系统暂时进入更深的c状态。
在给定的窗口中,负载执行活动时间是频率的倒数f。
或者,一般来说,在任何窗口:
英特尔生产性能2寄存器计数与生产(非失速)计数成正比t行为。定义可伸缩性S为delta在生产计数(P性能)到active-count (A性能),得到以下一般方程:
此外,负载l(C0百分比)在这个窗口中可以定义为:
因果关系。考虑一个特定的窗口T之间t1和t0。在这里,州长分配了一个频率f0。如果州长分配了不同的频率f”0在相同窗口,可伸缩部分的工作(即,t一个)会是,比如说t '一个,从而t0来t”0。出于实际目的,可以假设失速周期与所选频率无关,因为失速并不显式依赖于局部子系统的时钟频率。因此t年代只要考虑到它们与频率的因果关系,就保持独立。同样,在同一窗口内,要执行的生产(无失速)指令的数量保持固定。具体地说,我们可以归纳并暗示:
失速时间和生产周期计数是频率因果关系的不变变量。
还要注意,频率和负载是因果关系注意事项在时间之窗,不可跨越。在接下来的推导中,对频率变化的引用不是沿着时间流的,而是另一种可能的因果关系,如果频率是其他的。
工作负载可伸缩性的一个重要方面涉及到由频率变化引起的负载变化的程度。
所示图2, p的采样δ值性能和一个性能P0,一个0在windows内TSC可以与T内的活动、失速和关闭时间相关联。
现在,假设DVFS调控器有选择一些目标f”0而不是最初的实际频率f0。要求是找到一个能准确表示变化后的最终目标负荷的关系l”0作为这种因果关系的结果。由此得出估计的负荷变化l1在时间t1。
让一个性能计数在因果关系窗口with频率f0假设从现在的A过渡0“0
失速时间不是局部子系统时钟的显式函数,在失速中花费的时间保持不变。换句话说,失速时间是频率因果关系的不变量。
当我们用下面的两个方程来解决这个问题时,一般的负载和比例因子tn:
而尺度因子为
解决产量
或
现在,
同样,由于失速时不变,
因为这不是到下一个时间窗口的迭代,所以要执行的生产周期保持不变。换句话说,
生产周期计数是频率因果关系的不变量。
这导致比例因子的缩放方程
这个中间方程定义了比例因子本身在频率上的变化(缩放)。进一步求解,我们得到扩展的负载方程:
在基于因果关系的推导中,该窗口中没有工作量的固有变化。换句话说,如果因果关系来自f0来f”0实际的改变f1在相邻的未来时间窗口中t1,并利用该方程来估计这样的目标负载l1,那么任何分歧(l1实际l”0)从预期目标负载明显是工作量内在变化的顶点在时间窗口t0来t1。自l1实际可以知道,任何偏离估计负荷的发散都可以计算出来。估计的伸缩荷载是这样给出的:
同样,估计的缩放比例因子大致由:
后两个方程可以称为工作量伸缩方程。然而,要在实际平台上进行经验验证,就没那么简单了。在单个周期的粒度上,右边的三个参数(f0,f1,年代0)可能是确定的;但如所述,数学结果不能直接与l循环结束后;主要是因为在离散样本基上看到的传入负荷本身可能会波动。不过,通过应用一系列不同频率的直方图并跟踪其脊来进行统计验证是可能的。使用这个直方图岭跟踪方法,验证了方程的通用性。
首先,一个工作负载完全以固定的频率运行。
Workload #1是一个基于浏览器的随机图形负载(图3;https://webglsamples.org/multiple-views/multiple-views.html)
图3。基于浏览器的工作负载WebGLSamples.org
在捕获数据时,最好停止不需要的、与所分析的工作负载无关的后台服务。此外,一个精确和轻量级的数据记录工具是首选。在Linux系统上,Intel的PSST4可以在固定、低和精确的开销下完成日志记录。例如,捕获的数据持续时间为100秒,抽样轮询周期为20毫秒。每个样本捕获的数据包括:
整个运行在CPU的每个频率上重复,同时保持其他DVFS为固定源(例如,Gfx频率在一个适中但固定的值)。
捕获CPU比例因子和利用率日志。在本例中,时域分析对于收集可伸缩性和利用率是不实际的。相反,直方图分析确定了对于给定的操作频率,负载点的最大数量位于哪个桶中。直方图的峰值代表给定频率下出现概率最高的负载值。在的示例数据中图5,约500个样本(或总样本的80%)发生在33%的负载下。这样的推论显然很难从中的时间图表中推导出来图4即使频率是固定的。
实验迭代所有其他频率,一次一个,得到一个峰值直方图值的范围,如图图6。
使用来自一组实验的相同数据,可以绘制一个类似的比例因子直方图脊迹,如图所示图7。
规模因子的缩放。使用绘图工具创建峰值直方图点(比例因子)的地图视图图7,然后用红点标出图8。在同一个mapview上,比例因子的缩放方程绘制了基于任意一个初始值的不同可能的目标频率种子利用价值和规模因子。方程与完整数据集之间的相关性如图8。
比例的负载。峰值直方图利用率点的地图视图(图6)用红点标出图9。在同一个地图视图上,扩展的负载根据一个用于利用和比例因子的初始种子值,绘制出不同可能的目标频率的方程。
由这些图中显示的结果总结,方程的独立估计几乎精确地符合实际实验的统计结果。该方法被应用于多个其他工作负载(具有不同的规模因子和负载水平),并如此处所述进行验证。
这篇文章阐述了在一个时间窗口内可能的频率选择的利用和比例因素的因果关系。在此基础上,推导了通用的工作负载缩放方程,量化了利用率的影响。通过在离散DVFS块级应用直方图脊迹法对方程进行验证。虽然只详细介绍了CPU核心示例,但在其他DVFS块(图形子块)、其他工作负载和其他操作系统(Windows/Linux)上也观察到了类似的方程一致。方程估计曲线与实际的脊迹曲线非常准确地相关。这意味着利用率影响可以在每个周期中被“预测”到统计上的准确性,任何偏离它的差异都可以归因于该周期中工作负载固有的利用率变化,并根据使用它的解决方案予以适当处理。
作者感谢来自英特尔同事的所有帮助,特别是来自首席工程师Harinarayanan Seshadri和Rajeev Muralidhar以及软件工程师B. M. Shravan K.的宝贵输入。
相关文章
在queue.acm.org
低功耗软件
埃里克·萨克斯
https://queue.acm.org/detail.cfm?id=1698225
非对称多核系统的功率效率最大化
Alexandra Fedorova等人。
https://queue.acm.org/detail.cfm?id=1658422
手持设备的能量管理
Marc A. Viredaz等人。
https://queue.acm.org/detail.cfm?id=957768
1.Howse, B.在Skylake上测试英特尔的新Speed Shift技术:反应更快的处理器。AnandTech, 2015;https://bit.ly/2Jf3Gxq。
2.英特尔。Intel 64和IA-32架构,软件开发人员手册,卷3B:系统编程指南,第2部分;https://intel.ly/2sKeSqA
3.Kidd, T.电源管理状态:p状态、c状态、Package c状态。英特尔开发者区,2014;https://intel.ly/2xM094b
4.Power Shaping and Stress Tool (PSST) for Intel平台。https://github.com/intel/psst
数字图书馆由计算机械协会出版。版权所有©2018 ACM, Inc.。
没有发现记录