zTT@MobiSys '21
这篇工作还是做的是一个DVFS技术,来动态调整CPU/GPU的电压和频率,达到节能、控温。
1. introduction
- 传统的DVFS技术主要停留在操作系统内核层面,与应用程序无关。但是不同的应用的需求决定了它们的最佳的CPU,GPU的功耗分布。
- 一些DVFS无法摆脱过热的问题。这里举例(图1):手机芯片一旦过热,CPU就会锁住频率,导致帧率下降。
- 移动设备的温度环境太复杂了,握持方式、外部温度等等。导致一些服务器上的温度管理技术不能直接用用到移动设备上。
- 移动设备的内部的芯片温度也是存在热耦合的问题。CPU,GPU是贴合在一起的,CPU热可能也会导致GPU降频。CPU,GPU的调频策略应该联合优化。
作者们为了解决上面的两个问题,提出了一个DVFS设计,它能够持续的学习应用的性能需求和环境变换,而从适应这些改变。作者用强化学习实现这个外部的DVFS适应应用性能和环境变化。
insight
-
默认的控制策略不高效。作者用了3种CPU调速器(governor),分别测试Video Rendering和YOLO的功耗和帧率数据。
Interactive
和Performance
是Linux的默认governor。Optimal
是作者设置的一个虚拟的调速器,它可以提升能效。
对于(a)和(b)来说,我们不难发现的问题就是perf.模式下,虽然将CPU的频率拉到了最高,功耗也很高,但是由于热问题导致帧率较低。而Opt.模式却实现了功耗最低,帧率最高。默认策略没有很好的能效比表现。
目前的DVFS技术的GAP就是缺乏对应用程序性能特点的考虑。
作者表示如果可以预测出APP的资源瓶颈,就能实现对CPU和GPU的能效控制。 -
热问题分析。
-
Fig3 (a)展示JETSON TX2在不同CPU频率下的渲染视频时的温度。显然这里面频率越高,温度越高。Fig3 (b)则是展示了在视频渲染的同时增加YOLO的目标检测。
-
温度收到热耦合影响。Fig4 展示了CPU和GPU的热耦合现象。
这里我们发现在GPU频率拉高的时候GPU和CPU的温度都上涨了。
-
室温影响。Fig 5 两哈了不同室温情况下的温度管理的状况。在(a)中整体性能较为稳定,而在(b),(c)中,在手机套和在口袋中,我们发现它的温度基本超过了阈值。无线充电的情况下温度也会升高。
-
问题描述 ( Problem Formulation)
- 表示t时刻的应用的QoE值,通常表示帧率。
- 表示t时刻,CPU和GPU共同的功耗消耗。
- 表示到时一些可用的CPU,GPU的联合控制策略。用和分别表示CPU和GPU的频率。
- 表示一个控制权重。比如不考虑功耗消耗就可以设置
- 下面的两个限制条件时用来分别限制CPU和GPU温度不超过阈值。
这样整个问题就被表达成了最大化QoE同时最小化功耗消耗。我们从中
设计
state
- 当前频率,和
- 当前温度,和
- 当前功耗,和
- 当前帧率,
action
作者设计了两类动作实现了一个算法。在概率为时用探索(exploration)动作,在概率为时用开放(exploitation)动作,而当温度接近或者超过阈值时,采取降温动作。这里的动作就是指CPU和GPU的频率。
- Exploration和Exploitation.Exploration是指在整个频率范围内去随机采用一个动作。而Exploitation是指要采用一个最大化奖励值的动作。
- Cool-down Action。在算法中,Exploration没有考虑他的执行后果,所以可能会选择到一个会导致高温的动作。所以达到温度阈值的时候,zTT会选择一个低于当前时钟频率的值去调整状态。
reward
奖励函数的原型是
作者首先考虑到QoE指标函数的设计,它认为QoE过高也会导致性能需求过高,而且对用户来说可能没有体验上的提升。它为不同应用都设置了一个帧率需求值。超过不会带来体验提升的同时带来了过多的功耗消耗。
第二点是一个惩罚项,用来考虑哪些可能会导致温度过高的动作基于负数值,而低于温度阈值的基于正数奖励。是CPU的设计,GPU设计类似,
本文作者:SheepHuan
本文链接:https://www.cnblogs.com/sheephuan/p/17754744.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步