基于吞吐量的工作负载中的功率效率优化

文档序号:1549420 发布日期:2020-01-17 浏览:30次 >En<

阅读说明:本技术 基于吞吐量的工作负载中的功率效率优化 (Power efficiency optimization in throughput-based workloads ) 是由 李奥纳多·德·保拉·罗莎·皮加 塞缪尔·纳夫齐格 伊凡·马托西维奇 因德拉尼·保罗 于 2018-06-19 设计创作,主要内容包括:一种功率管理算法框架提出:1)针对基于吞吐量的工作负载的服务质量(QoS)度量;2)启发法,用以区分吞吐量与对延迟敏感的工作负载;3)一种算法,所述算法结合了所述启发法和所述QoS度量来确定目标频率,以最小化空闲时间并提高功率效率,而不会降低性能。一种管理算法框架能够优化服务器级的基于吞吐量的工作负载中的功率效率,同时仍然为对延迟敏感的工作负载提供所需的性能。通过识别其中一个或多个处理核可以较低的频率(并因此以较低的功率)运行而不会产生明显的负面性能影响的工作负载来实现功率节省。(A power management algorithm framework proposes: 1) a quality of service (QoS) metric for throughput-based workloads; 2) heuristics to distinguish throughput from latency sensitive workloads; 3) an algorithm that combines the heuristics and the QoS metrics to determine a target frequency to minimize idle time and improve power efficiency without degrading performance. A management algorithm framework is able to optimize power efficiency in server-level throughput-based workloads, while still providing the required performance for delay-sensitive workloads. Power savings are achieved by identifying workloads where one or more processing cores may be running at a lower frequency (and therefore at a lower power) without significant negative performance impact.)

基于吞吐量的工作负载中的功率效率优化

相关申请

本申请要求于2017年6月19日提交、发明人为Leonardo De Paula Rosa Piga等人、标题为“POWER EFFICIENCY OF OPTIMIZATION IN THROUGHPUT-BASED WORKLOADS”并且以引用方式并入本文的临时申请序列号62/522,073的优先权。

背景技术

利用各种负载平衡技术,许多服务器工作负载在固定的工作量下表现出稳定的同质负载行为。这些工作负载通常不是延迟关键的,并且没有数据依赖性线程,即,只要平均吞吐量保持恒定,处理单个请求的时间就无关紧要。片上系统(SoC)功率管理算法需要识别这些基于吞吐量的工作负载,以便可以降低频率以最小化空闲时间而不会降低性能,从而实现最佳的功率效率。现有的功率管理算法要么着眼于单独的指令处理器(例如,单个处理器)的行为,要么包含用于对SoC与工作负载之间的交互进行建模的临时解决方案,从而使其无法区分吞吐量与延迟关键工作负载,并导致次优操作点。

例如,局部优化算法的集合不太可能实现针对特定服务质量(QoS)的全局最优操作状态。相反,此解决方案将会导致不良的性能和功率效率。因此,随着SoC变得越来越复杂,了解SoC和工作负载相互作用并以可扩展的方式管理功率同时针对全局QoS目标进行优化变得越来越重要。

具体实施方式

简而言之,方法和设备提供了基于吞吐量的工作负载中的功率效率优化。在一个示例中,描述了一种用于优化计算装置中的功率效率的方法。例如,计算装置可以是服务器。计算装置基于来自计算装置中的处理核(例如,CPU、GPU等)的处理核活动数据来确定处理核的处理核活动偏差数据。计算装置基于处理核活动偏差数据来调整计算装置中的处理核中的至少一个的频率。

计算装置确定处理核活动偏差数据是否表明处理核的同质工作负载。响应于确定处理核活动偏差数据表明处理核的同质工作负载,计算装置降低处理核中的至少一个的频率。

在确定处理核活动偏差数据时,计算装置确定处于活动状态的处理核的数量以及将处于活动状态的处理核的预期数量。然后,计算装置确定处于活动状态的处理核的数量与将处于活动状态的处理核的预期数量之间的活动偏差。

确定处于活动状态的处理核的数量基于处理核的处理核活动级别。确定将处于活动状态的处理核的预期数量基于二项式分布,该二项式分布考虑了处理核的数量和处理核的处理核活动级别。当前一间隔中的处理核中的活动周期的百分比大于阈值时,确定处理核处于活动状态,其中前一间隔基于移动平均窗口。当确定处理核活动偏差数据时,计算装置确定处理核的当前QoS偏离目标QoS多少。

在一个示例中,片上系统或SoC包括多个处理核和耦合到多个处理核的处理核频率调整逻辑。处理核频率调整逻辑基于来自多个处理核的处理核活动数据来确定多个处理核的处理核活动偏差数据,并基于所确定的处理核活动偏差数据来调整多个处理核中的至少一个的频率。

在另一个示例中,服务器包括多个处理核、网络接口以及耦合到多个处理核和网络接口的处理核频率调整逻辑。处理核频率调整逻辑基于来自多个处理核的处理核活动数据来确定多个处理核的处理核活动偏差数据,并基于所确定的处理核活动偏差数据来调整多个处理核中的至少一个的频率。

本公开描述了一种功率管理算法框架,该框架提出:1)针对基于吞吐量的工作负载的QoS度量;2)启发法,用以区分吞吐量与对延迟敏感的工作负载;3)一种算法,该算法结合了启发法和QoS度量来确定目标频率,以最小化空闲时间并提高功率效率,而不会降低性能。

本公开提供了一种管理算法框架,该管理算法框架能够优化服务器级的基于吞吐量的工作负载中的功率效率,同时仍然为对延迟敏感的工作负载提供期望的性能。本公开旨在通过识别其中一个或多个处理核可以较低的频率(并因此以较低的功率)运行而不会产生明显的负面性能影响的工作负载来实现功率节省。本公开解决至少以下两个问题以使得这种技术在实践中可行:1)如何识别其性能具有低频率敏感性的工作负载;2)在性能过度下降之前,可以安全地将频率降低多少。

本公开提出了一种解决方案,该解决方案尤其用于:(1)区分具有独立线程的同质、稳定类别的工作负载,每个线程都执行来自具有数据依赖性线程的工作负载的固定量的工作,其中数据依赖性线程是延迟关键的;以及2)通过减少面向吞吐量的工作负载中的空闲时间来优化功率效率。

例如,特定的QoS算法以特定的“目标中央处理单元(CPU)空闲百分比”(介于0%与100%之间)作为参数,并调制CPU频率以实现该QoS目标。如果CPU空闲时间大于阈值,则降低频率,反之亦然。对于基于吞吐量的负载,理想地,系统希望将空闲时间减少到零,从而消除空闲时间所提供的所有松弛时间。但是,在实践中,这是不可能的,因为系统将需要考虑工作负载行为的变化和功率状态变化的粒度。因此,将实际的目标空闲时间留为可调的配置参数,以便针对功率节省与性能下降之间的平衡进行优化。

可以使用以下公式来计算系统空闲时间的QoS度量:

Figure BDA0002298256770000041

其中N是系统中处理核的总数,核i的空闲周期是第i个核的非C0(即CC1和CC6周期)的总和,而总周期是在同步管理单元(SMU)采样时间(lms)期间在当前CPU频率下CPU周期(包括活动和空闲)的总数。

该算法对应用程序行为做出了一些假设。

1)工作负载完全基于吞吐量,并且只要平均吞吐量保持恒定,处理单个请求的延迟就对性能无关紧要。因此,对于类似地具有活动CPU时间和空闲CPU时间的交替时段但其中活动时段是延迟关键的任何工作负载,QoS算法不会开启。例如,如果空闲时段花在等待输入/输出(I/O)上,并且在计算与I/O操作之间存在数据依赖性。

2)该算法不一定建议单独的每核控制。相反,它假设同质负载,对于所有处理核,相同的频率对于同质负载是适合的。对于服务器工作负载(通常具有负载平衡),这是一个现实的假设。但是,该算法不应针对例如线程数量少的客户端工作负载而开启,否则会导致单线程性能下降。

3)负载水平足够稳定,以相对于QoS算法的反馈响应时间而缓慢变化。例如,如果在频率被设置为以低空闲时间与低得多的负载为目标的情况下负载突然增大,则系统将获得较低的性能,直到接收到反馈响应为止。

由于QoS算法需要特定的条件才能正常工作,如果针对不满足这些条件的应用程序将其开启,则存在降低性能的风险,因此有必要在其开启时采用保守的启发法。

核活动分布—用以区分吞吐量以处理延迟敏感型工作负载的启发法

关于基于吞吐量的同质且稳定的负载的进一步观察是,在给定时刻活动的处理核的数量的分布紧密遵循二项式分布。活动核的数量被定义为其在前一短间隔中的活动周期的百分比高于高阈值(例如90%)的那些。这是因为对于这样的负载,可以观察到以下特性。

1)由于负载随时间流逝是稳定的,因此单个处理核在不同的时间T1和T2处于活动状态的概率大致相等。例如,负载为60%时,任何给定的核大约有60%的时间处于活动状态。

2)由于负载是同质且均衡的,因此对于所有处理核而言,概率都是相同的。

3)在给定的时间点任何两个处理核处于活动状态的概率是不相关的。

因此,如下式所示,当在给定的时间点观察到N个处理核时,活动的处理核的预期数量由N次试验的二项式分布和概率A给出,这等于活动级别。

Figure BDA0002298256770000061

例如,如果活动级别为60%,并且工作负载在4个处理核上运行,则在一段时间内恰好有3个处理核处于活动状态的预期等于

Figure BDA0002298256770000062

即,大约有34.6%的时间。

通过测量活动处理核的数量的实际分布,并与理论二项式分布(其中N是处理核的数量,A是在测量时间间隔内测得的平均活动级别)进行比较,可以估计应用程序偏离空闲QoS所针对的类型的程度。具体而言,此测量将捕获以下内容。

1)与稳定的同质且平衡负载的偏差,这会导致分布偏向特定的处理核。

2)与完全基于吞吐量的负载的偏差,在这种负载中,各个工作单元是不相关的。

只有在工作负载稳定且同质的情况下,属性2)才会相对于测量而言增加价值。例如,考虑一个工作负载,其中完全受CPU约束的单个线程在没有CPU亲和力的情况下运行,因此以循环方式跨N个处理核进行调度。该工作负载看起来稳定且同质,每个处理核在1/N的时间内处于活动状态。但是,启动空闲QoS会降低性能,因为它不是基于吞吐量的,而是在CPU上执行的每个时间片都取决于前一个时间片。

通过二项分布启发法成功识别了这种情况,因为该分布将显示出只有一个处理核在100%的时间内处于活动状态(而不是A=1/N的二项分布)。尽管这是一个简单的示例,但类似的推理表明,对于任何一种提供一系列依赖性计算的工作负载,降低CPU频率都会延长关键路径并降低性能,因此分布将偏离二项式,因为单个处理核处于活动状态的时间是相关的。

QoS开/关算法

为了避免性能下降,应仅对具有上一节中所述特征的工作负载开启算法。该方法基于以下假设:对于任何其他应用程序类型,均不会观察到针对同质的(负载平衡的)基于吞吐量的应用程序所观察到的某些规律。具体而言,当观察到以下情况时,该算法将开启QoS。

1)每个处理核在数十秒标度的时间段内均具有稳定的平均负载。

2)所有处理核都忙于大约相同的平均负载。

3)处理核活动的分布近似为二项式分布。

对于稳定的负载水平,需要长时间标度,因为对于较短的时间标度,在实践中会观察到太多变化。例如,考虑来自测量服务器功率和性能特征的基准测试程序(如StandardPerformance Evaluation Corporation(SPEC)提供的

Figure BDA0002298256770000071

基准测试)的活动图,因为活动间隔的长度在几毫秒与几百毫秒之间变化,因此仅一两秒的间隔在它包含多少活动时间与空闲时间方面仍然会有许多随机变化。

这使得该技术对于在几分钟的标度内表现出稳定负载水平的工作负载有效。典型的服务器基准测试(如SPEC提供的

Figure BDA0002298256770000072

或SERTTM基准测试)就是这种情况,它们在几分钟内测量稳定的节流负载水平,而且在测量开始之前,在每个给定的水平都有较长的预热间隔。

为了检测稳定的平均负载,可以使用活动的移动平均值,但是给定采样的时间分辨率(lms),这将需要大量存储器。因此,也可以使用1s标度内的普通平均值的计算,并可以使用这些平均值的移动平均窗口。基本平均间隔的大小(1s)、移动平均窗口(数十秒)、稳定工作负载的时间阈值(数十秒)以及允许的变化(在单个处理核内、在处理核之间、以及与二项式分布的差异)都是可调参数。类似地,当这些条件不再适用且处理核内和之间(以相同方式计算)的负载变化超过给定阈值时,将不使用该算法。

转到附图,在图1中示出了当前公开的计算装置102的一个示例。计算装置102可以是例如服务器或任何其他合适的装置。计算装置102可以是数据中心的一部分,或者是诸如基于云的(例如,云计算)系统之类的分布式系统的一部分。

如图1所示,计算装置102包括处理核频率调整逻辑104。计算装置102还包括诸如RAM或ROM之类的存储器106或任何其他合适的存储器,存储器可以用于存储参数,诸如与前述算法相关联的参数。存储器106还可存储可由处理核频率调整逻辑104访问和执行的可执行指令,如下文进一步描述。

计算装置102还包括处理核1 122、处理核2 126、处理核3 124和处理核N128。如本领域普通技术人员所认识的,处理核的数量可以变化。处理核122、124、126、128可以是例如与CPU、加速处理单元(APU)或图形处理单元(GPU)相关联的处理核。此外,处理核122、124、126、128可以是SoC 112的一部分。在其他示例中,SoC 112可以是异质SoC、APU、dGPU、CPU或半自定义SoC。另外,尽管未示出,但是计算装置102也可以包括具有附加处理核的附加SoC。

计算装置102还包括I/O装置108,所述I/O装置可以包括例如显示器、小键盘、键盘或任何其他合适的I/O装置。计算装置102还包括一个或多个网络接口110以与一个或多个网络进行通信。例如,网络接口110可以支持与例如允许在多个装置之间进行通信的任何合适的网络(例如,以太网、WiFi、WAN、互联网)的通信。

如图1所示,处理核频率调整逻辑104,处理核122、124、126、128,存储器106,I/O装置108和网络接口110均连接至总线114。总线114可以是允许装置彼此通信的任何合适的总线,例如有线或无线总线。

在一些实施方案中,计算装置102的一些或全部功能可以由任何一个或多个合适的处理器执行,所述处理器可以例如执行软件驱动程序、固件或存储在存储器中的任何其他合适的可执行代码。例如,处理核频率调整逻辑104的一些或全部功能可以由任何合适的处理核来执行。在一个示例中,处理核频率调整逻辑104从存储器106读取并执行可执行指令。在一些实施方案中,处理核频率调整逻辑104可以是CPU、APU、GPU、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、微控制器,作为一个或多个状态机,或作为任何合适的逻辑和/或硬件和软件的合适组合,或任何其他合适的指令处理装置。

具有处理核频率调整逻辑104的计算装置102调整一个或多个处理核122、124、126、128的频率,例如以下参考图2所述。在一个示例中,具有处理核频率调整逻辑104的计算装置102可以附加地或替代地调整与另一计算装置(例如,远程服务器)相关联的处理核的频率。例如,计算装置102可以通过一个或多个网络与远程服务器进行通信。

图2是图1的处理核频率调整逻辑104的更详细功能框图。如图2所示,处理核频率调整逻辑104包括处理核活动确定逻辑202、处理核工作负载敏感度确定逻辑204和处理核频率确定逻辑206。

处理核活动确定逻辑202从例如一个或多个处理核(例如,图1的处理核122、124、126、128)获得(例如,接收)处理核活动数据212。处理核活动数据212可以包括指出特定处理核是活动的(例如,正在执行工作负载)还是空闲的数据。处理核活动确定逻辑202基于处理核活动数据212来确定处理核的处理核活动级别。处理核活动级别指出例如一段时间内的处理器活动百分比。在一个示例中,处理核活动确定逻辑202执行包括以上所述的等式1的算法。处理核活动确定逻辑202将处理核活动级别作为处理核活动级别数据210提供给处理核工作负载敏感度确定逻辑204。

处理核工作负载敏感度确定逻辑204确定一个或多个处理核的当前QoS偏离目标QoS多少。例如,基于处理核活动级别数据210,处理核工作负载敏感度确定逻辑204确定活动处理核的数量。例如,当前一短间隔中的活动周期的百分比高于高阈值(例如,90%)时,处理核工作负载敏感度确定逻辑204可以确定处理核处于活动状态。处理核工作负载敏感度确定逻辑204还基于例如包括以上描述的等式2的算法的执行,来确定活动核的预期数量。然后,例如,如上所述,处理核工作负载敏感度确定逻辑204确定活动处理核的数量与活动处理核的预期数量之间的活动偏差,并将活动偏差作为处理核活动偏差数据208提供给处理核频率确定逻辑206。

然后,处理核频率确定逻辑206基于处理核活动偏差数据208来调整一个或多个处理核的频率。例如,处理核频率确定逻辑206可以导致通过处理核频率调整数据214来调整(例如,增大或减小)图1的处理核122、124、126、128中的一个或多个处理核的频率。

为了说明如本文所公开的示例算法的操作,图3示出了运行基准测试程序(例如SPEC提供的

Figure BDA0002298256770000101

基准测试)的系统中单个核的CPU活动图,其中工作负载处于50%的负载水平。虽然图3为了清楚起见仅示出了一个处理核,但负载是同质的并且对于其他处理核可能看起来相似。图3中的每个点示出了1ms采样中活动(即C0)周期的百分比,并绘制了两秒的总时段。根据图3,可以明显地看出,在处理请求时,此工作负载使CPU保持完全忙碌,因此100%C0活动的时段与空闲时段交替出现。在这种情况下,大约有50%的时间是空闲的,这反映了基准测试中此阶段的负载水平。基准测试程序(例如SPEC提供的

Figure BDA0002298256770000102

基准测试)通过测量系统的最大吞吐量来控制负载,然后在0%到100%之间调节请求率,以便测量功耗随负载变化的方式。

对于与此类似的基于吞吐量的负载,如果处理核利用率明显低于100%,则可以在保持相同吞吐量的同时降低处理核,从而降低空闲时间的百分比。这是空闲时间QoS算法的基础。

图4提供了根据本公开阐述的一个示例的用于测量用于执行工作负载的QoS的示例方法的流程图400。图4所示的方法以及本文描述的每个示例方法都可以由计算装置102执行。这样,可以由硬件或硬件和执行软件的硬件的组合来执行这些方法。合适的硬件可以包括一个或多个GPU、CPU、APU、ASIC、状态机、FPGA、数字信号处理器(DSP)或其他合适的硬件。尽管参考所示的流程图(例如,在图4中)描述了方法,但是将理解的是,可以使用执行与方法相关联的动作的许多其他方式。例如,一些操作的顺序可以改变,并且所描述的一些操作可以是可选的。另外,尽管可以参考示例计算装置102描述方法,但是应当理解,这些方法也可以由其他设备实现,并且计算装置102可以实施其他方法。

如图4所示,在框402处,基本输入/输出系统(BIOS)设置确定是否启用了QoS。如果启用QoS,则在框408处开始工作负载检测循环。该方法包括从框406获得开始定时参数。否则,在框404处禁用该特征。一旦在框410处检测到工作负载,该方法就前进至框412,在此开始QoS循环。在框414处,QoS循环运行以测量执行工作负载上的QoS。该方法包括从框416获得空闲时间目标参数。在框418处,确定工作负载是否已经结束。该方法还包括从框420获得结束定时参数。如果工作负载已经结束,则该方法返回到框410。否则,QoS循环在框414处继续运行。在框414处,该方法还提供功率状态限制信号以向一个或多个处理核提供功率状态变化。在一个示例中,从诸如图1的存储器106之类的存储器获得开始定时参数、空闲时间目标参数和结束定时参数中的一个或多个。

以上详细描述和本文中描述的示例仅是出于说明和描述的目的呈现,而非为了限制。例如,可以以任何合适的方式完成所描述的操作。因此,可以设想,本文的各实施方案覆盖落入以上所公开的并在本文要求保护的基本原理的范围内的任何和所有修改、变化或等效物。此外,尽管上文描述了处理器执行代码形式的硬件、状态机形式的硬件或能够产生相同效果的专用逻辑,但是也可以设想其他结构。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种降低耗电的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!