首页 > 其他分享 >zTT@MobiSys '21

zTT@MobiSys '21

时间:2023-10-10 15:25:55浏览次数:34  
标签:21 功耗 DVFS MobiSys 频率 GPU zTT CPU 温度

这篇工作还是做的是一个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)

\[\begin{align*} \max_{\pi}{\frac{1}{T}\sum_{t=1}^{T}{U(t)+\frac{\beta}{P(t)}}} \\ \text{s.t.} \quad T_{C}(t)\leq_{C,th}, \forall t \\ T_{G}(t)\leq_{G,th}, \forall t \\ \end{align*} \]

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

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

1696918504140.png

设计

state

  1. 当前频率,\(f_{C}(t)\)和\(f_{G}(t)\)
  2. 当前温度,\(T_{C}(t)\)和\(T_{G}(t)\)
  3. 当前功耗,\(P_{C}(t)\)和\(P_{G}(t)\)
  4. 当前帧率,\(x(t)\)

action

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

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

reward

奖励函数的原型是

\[r(t) = U(t)+\frac{\beta}{P(t)} + W(t) \]

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

\[U(t) = \begin{cases} 1, & if\text{ }x(t) \geq X_t \\ \frac{x(t)}{X_t} , & otherwise \end{cases} \]

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

\[W_C(t) = \begin{cases} \lambda \cdot \tanh(T_{C,th}-T_C(t)), & if\text{ }T_C(t) \geq T_{C,th} \\ -10 \cdot \lambda , & otherwise \end{cases} \]

标签:21,功耗,DVFS,MobiSys,频率,GPU,zTT,CPU,温度
From: https://www.cnblogs.com/sheephuan/p/17754744.html

相关文章

  • 2023年高二10月月考21题空间直角坐标系
    ......
  • Java 21新特性-虚拟线程 审核中
    本文翻译自国外论坛medium,原文地址:https://medium.com/@benweidig/looking-at-java-21-virtual-threads-0ddda4ac1be1Java21版本更新中最重要的功能之一就是虚拟线程(JEP444)。这些轻量级线程减少了编写、维护和观察高吞吐量并发应用程序所需的工作量。正如我的许多其他文......
  • P7928 [COCI2021-2022#1] Kamenčići
    P7928[COCI2021-2022#1]Kamenčići[P7928COCI2021-2022#1]Kamenčići-洛谷|计算机科学教育新生态(luogu.com.cn)目录P7928[COCI2021-2022#1]Kamenčići题目大意思路code题目大意Alice和Bob又在玩游戏。在他们面前有\(n\)块石头排成一行,石头有红和蓝两种颜......
  • UAV2101~UAV2105编程与仿真51MCU初学者训练
    练习001:51单片机Proteus仿真:点亮一个灯1、器件清单Proteus关键词元器件CAP固定电容CAP-ELEC电解电容AT89C51AT89C51单片机CRYSTAL晶振BUTTON复位按键RES电阻RESPACK排阻LED-YELLOW黄色发光二极管2、电路3、代码#include<reg51.h>/......
  • P8511 [Ynoi Easy Round 2021] TEST_68
    题目传送门看到异或最大值,根据套路不妨考虑\(0-1trie\)。通过\(trie\)找到异或值最大的点对\((x,y)\)。那么除了\((x,y)\)到\(1\)路径上的点之外,其他的点的答案就是\((x,y)\)的异或值。接下来考虑怎么算出这\((x,y)\)到\(1\)路径上的点的答案,可以直接暴力计算!......
  • 力扣-2114-句子中的最多单词数
    一个句子由一些单词以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。给你一个字符串数组sentences,其中sentences[i]表示单个句子。请你返回单个句子里单词的最多数目。 示例1:输入:sentences=["aliceandbobloveleetcode","ithinksotoo","......
  • [鹤城杯 2021]New MISC
    [鹤城杯2021]NewMISC拿到文件发现是PDF打开文件,完全看不懂。用010打开后发现有一段中0920出现次数比较多,大概率为wbStego4open加密,上家伙使用工具wbStego4.3open进行解密最后一直点继续就行。......
  • Java21上手体验-分代ZGC和虚拟线程 | 京东云技术团队
    一、导语几天前Oracle刚刚发布了Java21,由于这是最新的LTS版本,引起了大家的关注。我也第一时间在个人项目中进行了升级体验。一探究竟,和大家分享。二、Java21更新内容介绍官方release公告:https://jdk.java.net/21/release-notes开源中国介绍:https://my.oschina.net/waylau/blog/10......
  • 学习笔记421—Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
    Win7下使用U盘安装linuxUbuntu16.04双系统图文教程安装步骤:1、下载Ubuntu16.04镜像软件;2、使用ultraISO软件制作U盘启动盘;3、利用U盘启动盘来安装Ubuntu系统;4、使用EasyBCD创建启动系统启动引导;5、重启系统即可。Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源G......
  • 21 人脸识别
    importtensorflowastffromtensorflow.kerasimportSequentialfromtensorflow.keras.modelsimportModelfromtensorflow.keras.layersimportConv2D,ZeroPadding2D,Activation,Input,concatenatefromtensorflow.keras.layersimportBatchNormalization,Max......