安卓gpu用哪个调服方式好

安卓gpu用哪个调服方式好,第1张

android 系统gpu 调试

android 系统gpu 调试_基于Android系统的GPU动态调频方案 | Imagination中文技术社区

余时行

原创

关注

0点赞·958人阅读

针对移动终端上GPU的高功耗问题,提出一种基于Android系统的GPU动态调频方案。方案根据各种应用对GPU的性能需求,引入了GPU的频率一性能模型,包括选择工作频率和测量相对性能的方法。动态调频算法通过历史负载计算出预测负载,将其代入频率一性能模型后预测出下一周期GPU的频率。实验结果表明,方案在典型场景下可以快速跟踪GPU负载的变化,预测GPU频率的准确率达到95% 以上。

系统级芯片(SoC)是智能移动终端的核心,决定了一款机器的性能水平。目前的中高端嵌入式SoC中普遍集成了嵌入式图形处理器GPU(Graphic Processing Unit),主要用于处理CPU并不擅长的三维图形任务。但高性能GPU所带来的高功耗对于移动终端是一个严峻的挑战。

动态电压频率调整DVFS(Dynamic Vohage and Fre—quency Scaling)是降低动态功耗的常用方法,其核心思想是根据当前所运行的任务对计算能力的不同需求来动态调节处理器的工作频率和电压,从而达到节能的目的。DVFS的理论依据是如下动态功耗的计算公式:

其中

, 代表动态功耗,C为负载电容, 为供电电

压,.厂为工作频率。从式(1)中可以看出,在负载电容一定的情况下,动态功耗与供电电压的平方成正比,与工作频率成正比。同时,电压与频率也存在一定的对应关系,频率越高,所需要的电压也越高。

嵌入式GPU(下文均简称GPU)的发展时间短,技术更新快,在设计目标、软硬件架构、图形标准、运行系统等方面与PC显卡都有所差异t21,有关降低功耗的研究尚不多见。针对这种现状,本文基于目前最流行的嵌入式 *** 作系统Android, 在GPU的内核驱动层提出了一种GPU 动态调频方案,使GPU可以根据性能需求自适应地调节运行频率和电压,从而降低GPU的动态功耗。

1 Android应用对GPU的性能需求

Android系统主界面的混合与叠加采用GPU硬件加速[31,除此之外,图库、动态壁纸、3D桌面、3D游戏等多种应用也需要GPU的支持。各种应用对于GPU性能的需求大不相同,例如,动态壁纸的帧率一般被限定在15~20 f/s左右,对GPU的性能需求较低;不同的3D游戏对于GPU性能的需求也大不相同, 即使在同一个游戏中,对GPU性能的需求也是随着场景的变化而不断变化的。GPU性能测试软件需要反映GPU 的最高性能,对GPU处理能力的要求远超其他应用程序。根据以上分析,如果GPU始终以固定的频率运行,则会出现两种情况:对于低复杂度的任务,若GPU运行在高频,则性能过剩,造成功耗的浪费[41;对于高复杂度的任务,若GPU没有运行在足够高的频率,则无法满足性能需求。因此最理想的情况是GPU 能够根据需求快速地调整频率,以提供期望的性能。

2 GPU频率一性能模型

2.1选择GPU 工作频率

Android系统的时钟模块可以为GPU提供多种频率,GPU动态调频的工作频率从这些频率中选出。在备选频率中,选择能满足最低性能需求的最低频率作为最低工作频率,选择GPU能正常工作的最高频率作为最高工作频率。在最低和最高工作频率之间尽可能等间隔地选择工作频率,并且相邻频率的间隔不能太小,否则GPU容易在相邻的两个频率上反复切换。以1 200 MHz的输入时钟为例,通过分频可以得到75 MHz、100 MHz、120 MHz、150 MHz、20o MHz、240 MHz、300 MHz、400 MHz、600 MHz等频率。根据上述方法首先确定最低工作频率为100 MHz,最高工作频率为400 MHz。考虑到相邻工作频率之间的间隔,在1O0 MHz~400 MHz之间的频率中选择200 MHz和300 MHz作为工作频率。

2.2测量GPU相对性能

GPU的性能可以通过运行Nenamark2、GLBenchmark、Basemark等专业的GPU性能测试软件测量得到的帧率反映出来。图1是测量得到的某GPU的频率一帧率对应关系图。不同的测试软件下发给GPU 的任务量不同,因此测得的帧率有所差异,但是帧率与频率之间都呈现近似分段线性的关系,且频率越高帧率的增长速度越缓慢。这是因为随着频率的增加,GPU内部某个模块会最先达到性能瓶颈,从而影响整体性能的提升。

设GPU共有Ⅳ 个工作频率,分别为fi, 1,2, ,Ⅳ,fi 对应的帧率为 ,相对性能Ri=Pi/PI。表1是运行性能测试软件得到的3组相对性能值。从表中可看出,通过不同的性能测试软件测得的 值是基本一致的。综合R 值就可以建立该GPU 的频率一性能模型,如图2所示。

3 GPU动态调频算法

在Android系统的主界面切换、动态壁纸、游戏等3D应用场景中,GPU的负载在几帧到几十帧的短时间内具有相关性, 因此可以根据过去一段时问内的GPU负载预测将来的GPU性能需求。为了兼顾精确度和复杂度的需求,本文采用一种基于历史值加权平均的动态调频算法,算法可分为4步:

(1)每隔周期T 计算GPU的负载。由于只有部分GPU驱动提供了统计负载的专用接口 Sl,所以本文介绍一种近似估计GPU负载的通用方法。GPU都具有工作状态与空闲状态这两种基本的电源状态,可能还具有其他一些临时状态。在GPU驱动中根据电源状态的转换统计出一个周期内GPU的工作时间Tworking和空闲时间 Tklle,估算出GPU负载率 L:

如果忽略掉GPU处于临时状态所的一些时间,则可以推导出下式:

可以认为GPU 的相对负载 等于GPU 负载率与GPU处于当前频率点. 时的相对性能 的乘积,这样可以得出下式:

假设LCD的显示帧率为60 f/s,则T值可在16 ms~50 ms范围取值,即LCD显示1~3帧的时间。这样计算出的GPU负载值包含了1~3帧的统计信息,且算法的跟踪速度较快。

(2)预测下一周期GPU负载。预测GPU负载 Wn+1由历史值加权计算得出

其中,W[n—k,k=0,l, ,K一1为前K 个周期的GPU负载,K为大于0的常数。hD]为预测系数,离当前时刻越

近的GPU负载值的权重越大,即满足0≤h[K-1

4实验结果

本文在Android4.1系统上,选择了界面切换、动态壁纸(bubbles)、捕鱼达人游戏和Nenamark2 4种典型的应用场景测试动态调频的效果。作为测试对象的某GPU有4种工作频率:100 MHz、200 MHz、300 MHz和400 MHz。实验参数选择如下:GPU负载的统计周期T=30 ms,式(5)中K=4,预测系数h[0=0.4,h[1]=0.3,h[2]=0.2,h3]=0.1,性能门限/3=0.9。在每个应用场景下随机抽取10 S的统计数据,如表2所示。

表2中,预测负载误差是指预测负载值与实际负载值的平均误差。由于GPU只有4个离散的工作频率,因此预测频率的错误率比预测负载误差小很多。预测频率的准确率不仅与预测负载误差的大小有关,还与应用对GPU性能的需求范围有关。如果应用对GPU性能的需求变化大,GPU可能的工作频率多,频率的调整比较频繁,则预测频率的准确率就会降低。实验结果表明,4种典型场景下预测GPU工作频率的准确性都达到了95%以上。

GPU负载统计周期为30 I/1S时,在最差情况下,即GPU的初始频率为100 MHz、需求工作频率为400 MHz时,动态调频算法只需要8个周期,即240 ms就可以完成调频的过程。因此对于各种3D应用,动态调频算法都能快速跟踪GPU 负载的变化,及时调整频率以满足需求。

本文介绍了一种基于Android系统的GPU 动态调频方案,可以有效降低GPU的动态功耗,延长移动终端的工作时间。通过调整动态调频算法的系数,方案适用于多种GPU,且易于移植到不同版本的Android系统上。针对特定的GPU,还可以通过GPU驱动中提供的其他一些有用信息以及GPU厂商提供的开发工具对方案进行优化。本方案已申请国家发明专利,并在多款平板电脑产品上应用实施。

安卓手机打开强制gpu渲染方法如下:

1、一般在系统设置的“开发人员选项”中可以找到“强制GPU渲染”一项,打勾后即开启了这个功能了:

2、强制GPU渲染的作用

所谓GPU,就是图形处理器的缩写,相当于PC中的显卡,而从PC的情况来看,显卡的性能是可以决定游戏运行的流畅度以及运行品质的,这样的道理放在手机中也是一样的。

手机中的GPU也是为了对图形、图像处理而存在的,所谓强制渲染,就是hwa(hard ware acceleration硬件加速)的一种,其存在的意义就是为了分担CPU的负担,其原理是通过GPU对软件图形图像的处理来减轻CPU的负担,从而使应用软件能够以更快的速度被处理,以达到提速的目的。对于普通的玩家来说,强制GPU渲染是一把双刃剑,有利有弊。

3、强制GPU渲染的利弊:

虽然强制GPU渲染能够实现应用软件的提速,不过长期的开启强制GPU渲染会造成手机长期处于超负荷的状态,对电池的续航以及手机的使用寿命都会有不利的影响,往小了说就是大幅降低待机时间,使手机发热,往大了说,就是会让电池快速报废。

而除影响续航外,强制GPU还有一个致命的弊端,那就是有一些较老的软件在强制GPU渲染下是无法正常运行的,会经常性的出现FC的情况,主要原因是过去程序的SDK版本多数不支持GPU加速,或者默认不开启GPU渲染,所以当你开启强制GPU渲染的时候就会出现问题。

所以不建议长时间开启“强制GPU渲染”选项,毕竟整体来看,就目前来说,这个功能依然是弊大于利。如果觉得某款软件运行起来比较吃力,可以尝试开启这一选项,关闭软件后也要记得及时关闭。

gpu是图形处理器,你玩游戏画面卡不卡好不好和它有关。但是有些软件是不用gpu太多去处理的应付的。强制开启就是让gpu参与运行一切。甚至是短信电话都参与。\x0d\优点: 更加流畅运行游戏,有些触发gpu不好的游戏也可很流畅的玩\x0d\缺点: 耗电,降低gpu寿命\x0d\通常不推荐打开\x0d\但是如果某个游戏软件里面有强制开启推荐打开(就是说只有在运行这个软件的时候强制gpu)。

如图,如果显示的柱线较高,则说明绘制的时间越多,也是衡量一个app是否流畅的一个参考指标。

在Android系统中是以每秒60帧为满帧的,那么只要将1秒÷60帧,就能得出每帧为16毫秒(ms)时为满帧的界限,每帧快于16ms即为流畅,而这根绿线所标示的高度即为16ms线,低于绿线即为流畅

打开方式,很简单:

开发模式->GPU呈现模式分析

分析说明:

红色代表了“执行时间”,它指的是Android渲染引擎执行盒子中这些绘制命令的时间,假如当前界面的视图越多,那么红色便会“跳”得越高。实际使用中,比如我们平时刷淘宝App时遇到出现多张缩略图需要加载时,那么红色会突然跳很高,但是此时你的页面滑动其实是流畅的,虽然等了零点几秒才加载出来,但其实这可能并不意味着你卡住了。

**通常较短,它代表着CPU通知GPU“你已经完成视图渲染了”,不过在这里CPU会等待GPU的回话,当GPU说“好的知道了”,才算完事儿。假如橙色部分很高的话,说明当前GPU过于忙碌,有很多命令需要去处理,比如Android淘宝客户端,红色**通常会很高。

蓝色。假如想通过玄学曲线来判断流畅度的话,其实蓝色的参考意义是较大的。蓝色代表了视图绘制所花费的时间,表示视图在界面发生变化(更新)的用时情况。当它越短时,即便是体验上更接近“丝滑”,当他越长时,说明当前视图较复杂或者无效需要重绘,即我们通常说的“卡了”。

绿色水平线代表16ms,要确保一秒内打到60fps,你需要确保这些帧的每一条线都在绿色的16ms标记线之下任何时候你看到一个竖线超过了绿色的标记现,你就会看到你的动画有卡顿现象产生

橙色部分表示的是处理时间,或者说是CPU告诉GPU渲染一帧的时间,这是一个阻塞调用,因为CPU会一直等待GPU发出接到命令的回复,如果柱状图很高,那就意味着你给GPU太多的工作,太多的负责视图需要OpenGL命令去绘制和处理

Google这次更新AndroidSDK最重要的一点,就是提升在x86平台的流畅度,最关键的是Android404上的GPU加速功能,这对在x86模拟器的执行顺畅度有相当大的助益,也终于能在SDK中顺畅的执行OpenGL游戏。

、AndroidDevelopers

跳转有开启加速前后的比较短片

以上就是关于安卓gpu用哪个调服方式好全部的内容,包括:安卓gpu用哪个调服方式好、安卓手机强制gpu渲染、安卓设置里面有个,强制使用gpu渲染,是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9462513.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存