acm-header
登录

ACM通信

实践

工作量频率缩放定律:推导与验证


测量重量

来源:盖蒂图片社

回到顶部

许多处理器公开性能监视计数器,帮助度量与工作负载相关的“生产性能”。生产性能通常用比例因子,一个指程度的术语摊位相比之下,stall-free时间窗口内的周期。工作负载的比例因子也受频率选择调控器所选择的时钟频率的影响。因此,在动态电压/频率缩放或DVFS系统中(如Intel Speed Shift1),利用率、功率和性能输出也是尺度因子及其变化的函数。一些治理算法确实以其治理哲学所固有的方式来处理规模因子。

本文给出了在每个dvfs子系统级别上与工作负载利用率伸缩相关的方程。建立了频率、利用率和规模因子(其本身随频率而变化)之间的关系。这些方程的验证是棘手的,因为固有的工作负载,利用率似乎也在治理样本的粒度上以一种不确定的方式变化。因此,一种新的方法称为直方图岭跟踪应用。当将DVFS视为构建块时,量化缩放影响是至关重要的。典型的应用包括DVFS调控器和/或影响系统利用率、功率和性能的其他层。不过,这里的范围仅限于演示良好量化和验证的缩放方程。

回到顶部

工作负载扩展

Intel有三个与本主题相关的独立于架构的寄存器:

  • 一个性能。一种按当时实际的时钟执行速率计算的运行计数器。根据治理和/或其他算法,这个实际时钟频率可能会随时间变化。此寄存器仅在活动状态(C0)期间计数。
  • 性能。按固定TSC(时间戳计数器)时钟率计算的活动的运行计数器。它只在活动状态(C0)时计数。
  • P性能。这个计数器类似于一个性能,除了当活动由于某种依赖而停止时,它不计算在内,这种依赖很可能被门控在另一个IP的时钟域(例如内存)上。

这些计数器在给定时间窗口内的δ通常解释如下:

  • 的利用率。U = M性能/ TSC
  • 比例因子。S = P性能/一个性能

理想情况下,如果一个活动没有摊位,那么P性能=一个性能(即比例因子S将为1),在这样的情况下,在给定的时间窗口内完成一项活动所花费的时间将简单地是该窗口内实际频率的倒数。在大多数实际工作负载中,比例因子是变化的,通常小于1。建立与利用率、比例因子和频率相关的精确方程,使DVFS调控器可以做出信息充分的频率变化决策。

乍一看,工作负载伸缩问题似乎类似于著名的Amdahl定律,该定律处理与并行计算资源相关的工作负载加速。然而,阿姆达尔定律不能在这里应用,因为“并行性因子”与“规模因子”的类比无法成立——前者独立于被缩放的资源(即并行处理器),而后者则是被缩放的资源(频率)的函数。频率上的利用率可伸缩性通过规模因子有一个级联关系。

回到顶部

术语和假设

本文使用了以下术语:

  • 利用率或CO活性百分比指活动(非空闲)的时钟状态3.在一个时间窗口内。Load和utilization在这里互换使用,它们指的是同一个属性。
  • 可伸缩的活动指操作的执行时间与频率成反比的部分(或百分比)。
  • 摊位上活动指操作过程中涉及失速的部分(或百分比)。虽然较长的延迟实际上会导致c状态降级,但这里提到的指令停顿要短得多,并且发生在CPU处于C0活动状态时。

考虑DVFS系统上的频率调节器,在每个周期时间窗口t更新频率。考虑时刻t的当前瞬间0(“现在”),如图1。让刚刚完成的工作量窗口T有t行为(或t一个)作为其可扩展活动的一部分(即,t行为表示使处理器在执行中保持忙碌而不需要任何依赖的延迟或暂停的活动的累积部分)。让t摊位(或t年代)是描述所经历的有效停顿(子系统间依赖停顿)的子持续时间。也让t(或to)是DVFS子系统处于更深的c状态的累积持续时间,这是一个明显低于C0状态的功率。两者之间的根本区别tt摊位是,在后一种情况下,子系统在经历非常短的依赖停滞时仍然是活跃的CO;而在前一种情况下,延迟足够大,并使子系统暂时进入更深的c状态。

f1.jpg
图1所示。Scalability-related定义。

在给定的窗口中,负载执行活动时间是频率的倒数f。

或者,一般来说,在任何窗口:

ueq01.gif

英特尔生产性能2寄存器计数与生产(非失速)计数成正比t行为。定义可伸缩性S为delta在生产计数(P性能)到active-count (A性能),得到以下一般方程:

ueq02.gif

此外,负载l(C0百分比)在这个窗口中可以定义为:

ueq03.gif

因果关系。考虑一个特定的窗口T之间t1t0。在这里,州长分配了一个频率f0如果州长分配了不同的频率f0相同窗口,可伸缩部分的工作(即,t一个)会是,比如说t '一个,从而t0t0。出于实际目的,可以假设失速周期与所选频率无关,因为失速并不显式依赖于局部子系统的时钟频率。因此t年代只要考虑到它们与频率的因果关系,就保持独立。同样,在同一窗口内,要执行的生产(无失速)指令的数量保持固定。具体地说,我们可以归纳并暗示:

失速时间和生产周期计数是频率因果关系的不变变量。

还要注意,频率和负载是因果关系注意事项时间之窗,不可跨越。在接下来的推导中,对频率变化的引用不是沿着时间流的,而是另一种可能的因果关系,如果频率是其他的。

回到顶部

利用率(负载)到频率变化估计

工作负载可伸缩性的一个重要方面涉及到由频率变化引起的负载变化的程度。

所示图2, p的采样δ值性能和一个性能P0,一个0在windows内TSC可以与T内的活动、失速和关闭时间相关联。

ueq04.gif

ueq05.gif

ueq06.gif

f2.jpg
图2。与参考时间窗相关的性能计数器delta。

现在,假设DVFS调控器选择一些目标f0而不是最初的实际频率f0。要求是找到一个能准确表示变化后的最终目标负荷的关系l0作为这种因果关系的结果。由此得出估计的负荷变化l1在时间t1

让一个性能计数在因果关系窗口with频率f0假设从现在的A过渡00

ueq07.gif

失速时间不是局部子系统时钟的显式函数,在失速中花费的时间保持不变。换句话说,失速时间是频率因果关系的不变量。

ueq08.gif

ueq09.gif

当我们用下面的两个方程来解决这个问题时,一般的负载和比例因子tn:

ueq10.gif

而尺度因子为

ueq11.gif

解决产量

ueq12.gif

ueq13.gif

现在,

ueq14.gif

同样,由于失速时不变,

ueq15.gif

因为这不是到下一个时间窗口的迭代,所以要执行的生产周期保持不变。换句话说,

生产周期计数是频率因果关系的不变量。

ueq16.gif

这导致比例因子的缩放方程

ueq17.gif

这个中间方程定义了比例因子本身在频率上的变化(缩放)。进一步求解,我们得到扩展的负载方程:

ueq18.gif

在基于因果关系的推导中,该窗口中没有工作量的固有变化。换句话说,如果因果关系来自f0f0实际的改变f1在相邻的未来时间窗口中t1,并利用该方程来估计这样的目标负载l1,那么任何分歧(l1实际l0)从预期目标负载明显是工作量内在变化的顶点在时间窗口t0t1。自l1实际可以知道,任何偏离估计负荷的发散都可以计算出来。估计的伸缩荷载是这样给出的:

ueq19.gif

同样,估计的缩放比例因子大致由:

ueq20.gif

回到顶部

实际平台验证

后两个方程可以称为工作量伸缩方程。然而,要在实际平台上进行经验验证,就没那么简单了。在单个周期的粒度上,右边的三个参数(f0,f1,年代0)可能是确定的;但如所述,数学结果不能直接与l循环结束后;主要是因为在离散样本基上看到的传入负荷本身可能会波动。不过,通过应用一系列不同频率的直方图并跟踪其脊来进行统计验证是可能的。使用这个直方图岭跟踪方法,验证了方程的通用性。

首先,一个工作负载完全以固定的频率运行。

Workload #1是一个基于浏览器的随机图形负载(图3https://webglsamples.org/multiple-views/multiple-views.html)

f3.jpg
图3。基于浏览器的工作负载WebGLSamples.org

在捕获数据时,最好停止不需要的、与所分析的工作负载无关的后台服务。此外,一个精确和轻量级的数据记录工具是首选。在Linux系统上,Intel的PSST4可以在固定、低和精确的开销下完成日志记录。例如,捕获的数据持续时间为100秒,抽样轮询周期为20毫秒。每个样本捕获的数据包括:

  • CPU负载。
  • 比例因子。
  • 夹紧的频率值。

整个运行在CPU的每个频率上重复,同时保持其他DVFS为固定源(例如,Gfx频率在一个适中但固定的值)。

捕获CPU比例因子和利用率日志。在本例中,时域分析对于收集可伸缩性和利用率是不实际的。相反,直方图分析确定了对于给定的操作频率,负载点的最大数量位于哪个桶中。直方图的峰值代表给定频率下出现概率最高的负载值。在的示例数据中图5,约500个样本(或总样本的80%)发生在33%的负载下。这样的推论显然很难从中的时间图表中推导出来图4即使频率是固定的。

f4.jpg
图4。时域利用率变化。

f5.jpg
图5。固定频率1GHz时的利用率直方图。

实验迭代所有其他频率,一次一个,得到一个峰值直方图值的范围,如图图6

f6.jpg
图6。每个频率的利用率直方图集合。

使用来自一组实验的相同数据,可以绘制一个类似的比例因子直方图脊迹,如图所示图7

f7.jpg
图7。每个频率的比例因子直方图。

规模因子的缩放。使用绘图工具创建峰值直方图点(比例因子)的地图视图图7,然后用红点标出图8。在同一个mapview上,比例因子的缩放方程绘制了基于任意一个初始值的不同可能的目标频率种子利用价值和规模因子。方程与完整数据集之间的相关性如图8

f8.jpg
图8。比例因子脊点轮廓与方程比较。

比例的负载。峰值直方图利用率点的地图视图(图6)用红点标出图9。在同一个地图视图上,扩展的负载根据一个用于利用和比例因子的初始种子值,绘制出不同可能的目标频率的方程。

f9.jpg
图9。利用脊点轮廓与方程比较。

由这些图中显示的结果总结,方程的独立估计几乎精确地符合实际实验的统计结果。该方法被应用于多个其他工作负载(具有不同的规模因子和负载水平),并如此处所述进行验证。

回到顶部

结论

这篇文章阐述了在一个时间窗口内可能的频率选择的利用和比例因素的因果关系。在此基础上,推导了通用的工作负载缩放方程,量化了利用率的影响。通过在离散DVFS块级应用直方图脊迹法对方程进行验证。虽然只详细介绍了CPU核心示例,但在其他DVFS块(图形子块)、其他工作负载和其他操作系统(Windows/Linux)上也观察到了类似的方程一致。方程估计曲线与实际的脊迹曲线非常准确地相关。这意味着利用率影响可以在每个周期中被“预测”到统计上的准确性,任何偏离它的差异都可以归因于该周期中工作负载固有的利用率变化,并根据使用它的解决方案予以适当处理。

回到顶部

致谢

作者感谢来自英特尔同事的所有帮助,特别是来自首席工程师Harinarayanan Seshadri和Rajeev Muralidhar以及软件工程师B. M. Shravan K.的宝贵输入。

ACM队列q戳相关文章
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

回到顶部

作者

努尔Mubeen是英特尔客户研发组的软件架构师,专注于电源、热和能源管理的突破。他在包括网络、存储文件系统和嵌入式设备在内的多个领域拥有超过17年的经验。


版权归所有者/作者所有。授权ACM的出版权。
请求发布的权限permissions@acm.org

数字图书馆由计算机械协会出版。版权所有©2018 ACM, Inc.。


没有发现记录

Baidu
map