梦想是去放羊|

SheepHuan

园龄:6年5个月粉丝:21关注:5

2023-10-10 15:08阅读: 115评论: 0推荐: 0

zTT@MobiSys '21

这篇工作还是做的是一个DVFS技术,来动态调整CPU/GPU的电压和频率,达到节能、控温。

1. introduction

  1. 传统的DVFS技术主要停留在操作系统内核层面,与应用程序无关。但是不同的应用的需求决定了它们的最佳的CPU,GPU的功耗分布。
  2. 一些DVFS无法摆脱过热的问题。这里举例(图1):手机芯片一旦过热,CPU就会锁住频率,导致帧率下降。
    1696912022648.png
    • 移动设备的温度环境太复杂了,握持方式、外部温度等等。导致一些服务器上的温度管理技术不能直接用用到移动设备上。
    • 移动设备的内部的芯片温度也是存在热耦合的问题。CPU,GPU是贴合在一起的,CPU热可能也会导致GPU降频。CPU,GPU的调频策略应该联合优化。

作者们为了解决上面的两个问题,提出了一个DVFS设计,它能够持续的学习应用的性能需求和环境变换,而从适应这些改变。作者用强化学习实现这个外部的DVFS适应应用性能和环境变化。

insight

  1. 默认的控制策略不高效。作者用了3种CPU调速器(governor),分别测试Video Rendering和YOLO的功耗和帧率数据。InteractivePerformance是Linux的默认governor。Optimal是作者设置的一个虚拟的调速器,它可以提升能效。
    1696914293667.png

    对于(a)和(b)来说,我们不难发现的问题就是perf.模式下,虽然将CPU的频率拉到了最高,功耗也很高,但是由于热问题导致帧率较低。而Opt.模式却实现了功耗最低,帧率最高。默认策略没有很好的能效比表现。

    目前的DVFS技术的GAP就是缺乏对应用程序性能特点的考虑
    作者表示如果可以预测出APP的资源瓶颈,就能实现对CPU和GPU的能效控制。

  2. 热问题分析。

    • Fig3 (a)展示JETSON TX2在不同CPU频率下的渲染视频时的温度。显然这里面频率越高,温度越高。Fig3 (b)则是展示了在视频渲染的同时增加YOLO的目标检测。

      1696915174957.png

    • 温度收到热耦合影响。Fig4 展示了CPU和GPU的热耦合现象。

      1696915094157.png

      这里我们发现在GPU频率拉高的时候GPU和CPU的温度都上涨了。

    • 室温影响。Fig 5 两哈了不同室温情况下的温度管理的状况。在(a)中整体性能较为稳定,而在(b),(c)中,在手机套和在口袋中,我们发现它的温度基本超过了阈值。无线充电的情况下温度也会升高。

      1696916697117.png

问题描述 ( Problem Formulation)

maxπ1Tt=1TU(t)+βP(t)s.t.TC(t)C,th,tTG(t)G,th,t

  1. U(t)表示t时刻的应用的QoE值,通常表示帧率。
  2. P(t)表示t时刻,CPU和GPU共同的功耗消耗。
  3. π表示t=1t=T时一些可用的CPU,GPU的联合控制策略。用fC(t)fG(t)分别表示CPU和GPU的频率。
  4. β表示一个控制权重。比如不考虑功耗消耗就可以设置β=0
  5. 下面的两个限制条件时用来分别限制CPU和GPU温度不超过阈值。

这样整个问题就被表达成了最大化QoE同时最小化功耗消耗。我们从π

1696918504140.png

设计

state

  1. 当前频率,fC(t)fG(t)
  2. 当前温度,TC(t)TG(t)
  3. 当前功耗,PC(t)PG(t)
  4. 当前帧率,x(t)

action

作者设计了两类动作实现了一个ϵgreedy算法。在概率为ϵ时用探索(exploration)动作,在概率为1ϵ时用开放(exploitation)动作,而当温度接近或者超过阈值时,采取降温动作。这里的动作就是指CPU和GPU的频率。

  1. Exploration和Exploitation.Exploration是指在整个频率范围内去随机采用一个动作。而Exploitation是指要采用一个最大化奖励值的动作。
  2. Cool-down Action。在算法中,Exploration没有考虑他的执行后果,所以可能会选择到一个会导致高温的动作。所以达到温度阈值的时候,zTT会选择一个低于当前时钟频率的值去调整状态。

reward

奖励函数的原型是

r(t)=U(t)+βP(t)+W(t)

作者首先考虑到QoE指标函数的设计,它认为QoE过高也会导致性能需求过高,而且对用户来说可能没有体验上的提升。它为不同应用都设置了一个帧率需求值Xt。超过Xt不会带来体验提升的同时带来了过多的功耗消耗。

U(t)={1,if x(t)Xtx(t)Xt,otherwise

第二点W(t)是一个惩罚项,用来考虑哪些可能会导致温度过高的动作基于负数值,而低于温度阈值的基于正数奖励。WC(t)是CPU的设计,GPU设计类似,W(t)=WC(t)+WG(t)

WC(t)={λtanh(TC,thTC(t)),if TC(t)TC,th10λ,otherwise

本文作者:SheepHuan

本文链接:https://www.cnblogs.com/sheephuan/p/17754744.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   SheepHuan  阅读(115)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起