基于CPU-GPU 协同调控和网页特征感知的浏览器功耗优化研究

2024-02-18 13:46黄江杰刘晓东黄浩炜王文竹
应用科学学报 2024年1期
关键词:功耗浏览器复杂度

张 锦,黄江杰,彭 龙,刘晓东,余 杰,黄浩炜,王文竹

1.长沙理工大学计算机与通信工程学院,湖南 长沙 410114

2.国防科技大学计算机学院,湖南 长沙 410073

3.先进计算与关键软件(信创)海河实验室,天津 300459

移动端软件可分为原生软件、Web 软件和混合型软件3 种类型[1],混合型软件开发采取原生外壳内嵌浏览器的架构,兼具用户使用体验好、跨平台和易维护等优点,该开发框架在软件开发行业占有越来越高的比例[2]。3 种软件类型中Web 软件和混合型软件的开发与浏览器密切相关。浏览器作为高耗电应用[3]和智能手机用户使用频率最高的应用之一[4-5],其功耗问题得到研究者越来越多的关注[6-8]。图1 给出了浏览器的工作流程,可见用户通过浏览器向服务器发送请求;服务器给出响应后将网页文件发送至用户设备;设备接收到文件后进行解析;渲染引擎生成文档对象模型并对网页进行布局;层叠样式表控制网页中每个元素的呈现形式,最后绘制网页,一些较为复杂的网页会采取多图层结构,绘制好每个图层的内容后,还需要进行合成操作。在该过程中,文件解析和网页布局主要由CPU 主导,页面的绘制和合成主要由GPU 主导。浏览器运行时多个手机组件同时工作,如屏幕、无线网、CPU 和GPU 等,研究表明安卓设备运行过程中CPU 与GPU 功耗总占比高达85%[9]。用户在使用浏览器过程中,网页加载过程的表现对用户使用体验至关重要[10],因此,研究CPU 和GPU 在网页加载过程中对功耗的影响具有现实意义。

图1 Web 浏览器工作流程Figure 1 Workflow of Web browser

为降低浏览器功耗,研究者们对浏览器架构进行优化。文献[11] 通过增强渲染引擎布局算法的并行性,在降低了功耗的同时减少了网页加载时间。文献[12] 通过合并用户请求和服务器响应的方法,降低了网页浏览过程中数据传输的功耗。文献[13] 分析了3G 网络的特征,重新组合了浏览器的的计算顺序,使3G 无线接口更长时间地处于低功耗状态。文献[14] 指出JavaScript(JS)的执行速度过快会导致不必要的损耗,所以通过分析网页的JS 文件结构,从而插入睡眠函数限制JS 执行速度的方法降低了功耗。现如今智能手机系统中普遍存在多种类型的CPU,这种CPU 架构被称为异构多核心架构。异构系统的设计目的主要是优化CPU资源配置,进一步均衡设备的功耗与性能。big.LITTLE[15]是典型的异构多核心架构,其中核簇切换是一种较为简单且常用的架构,该架构由多个算力较强的CPU 组成的大核簇和多个算力较弱的CPU 组成的小核簇构成。随着硬件设备性能的提升,研究者们发现现有的资源调度策略还存在较大的优化空间[16]。文献[17] 基于不同的优化目标,根据网页特征与网络状况通过动态电压频率缩放(dynamic voltage and frequency scaling,DVFS)技术为不同网页配置最佳的CPU 频率组合。文献[18] 针对Chromium 多线程架构提出了自适应内容绘画技术,并应用辅助调度技术使进程在大小核之间切换,降低了功耗。这些技术普遍忽略了GPU 对网页加载的影响。文献[19] 提出适当提高GPU 频率可以减少CPU 高频运行时间。文献[20] 收集了移动端软件运行时的繁忙(CPU 利用率为100%)时间占比、各级频率的使用时间占比以及连续繁忙时间,通过构建神经网络模型预测最佳的CPU 上限频率,发现大部分应用在限制CPU 频率后都实现了不同程度的功耗节省。文献[21] 利用支持向量机自主挖掘网页特征和CPU 不同频率之间的关系,构建了CPU 资源调度预测模型,该模型根据网页特征基于不同的优化目标为渲染引擎分配最佳CPU 频率配置。结合上述研究,本文提出了一种基于系统默认策略限制CPU 上限频率并调节GPU 频率的方法。实验结果表明,相比于系统默认策略,该方法在降低了功耗的同时缩短了网页加载时间。

1 实例分析

1.1 CPU 上限频率的限制

在默认策略下,将大核簇的上限频率由最高的2.45 MHz 降低至2.26 MHz,对20 个常用网页进行测试与比较。结果如图2 所示,其中,功率监测仪器每秒采集5 000 次电流和电压数据,每组数据作为该采样周期的平均电流和和平均电压,通过累加得到功耗(单位为J)。可以观察到,限制了CPU 大核簇频率后,这些网站加载过程中所消耗的电量平均节省了11.0%,而大部分网页加载时间只有小幅度的延长,平均延长幅度为9.7%。该结果表明,在默认策略下CPU 频率配置存在资源的过度配置问题,说明了通过限制CPU 上限频率降低浏览器功耗的可行性。

图2 限制CPU 大核簇频率后功耗和加载时间变化Figure 2 Power consumption and loading time change after limiting the big CPU cluster frequency

1.2 GPU 频率调节

为探究在网页加载过程中GPU 频率的变化情况,提取出20 个常用网页加载过程中GPU在各级频率下的运行时间,发现在加载过程中GPU 始终保持最低频率,这表明在默认的GPU 频率管理策略下,频率不随着网页内容的变化而调整。于是尝试将GPU 的频率由最低的257 MHz 升高至342 MHz,观察GPU 频率升高对网页加载时间和功耗的影响。测试结果如图3 所示,可见网页加载时间平均缩短了5.0%,同时功耗降低了4.3%。由于提高GPU 频率可以加快网页渲染速度,分担CPU 计算负载,所以允许CPU 大小核簇处于高频率的时间缩短,从而实现了功耗节省。可以观察到,升高GPU 频率比限制CPU 频率功耗的降低幅度小,但是减少了网页的加载时间。该结果表明,适当提高GPU 频率可以减少网页加载时间,同时可以实现功耗优化。

图3 提升GPU 频率后功耗和加载时间变化Figure 3 Power consumption and load time change after boosting the GPU frequency

2 网页分类与频率调节

2.1 网页特征与复杂度描述

为不同网页合理配置CPU 上限频率与GPU 频率的关键在于如何描述网页的复杂度。网页开发者使用HTML 脚本语言开发网页,不同网页在结构和内容上有所不同,通常可以使用相同的特征元素来描述一个网页的复杂程度,如网页大小、DOM 节点数、DOM 树深度等,这些元素被统称为网页特征。因此,可以根据网页特征和不同特征的重要性对网页的复杂度进行量化和分级。

文献[17] 从网页中提取出214 个原始特征,如DOM 节点数、DOM 树深度、图像数等,采用主成分分析对其进行筛选,得到对网页加载时间以及功耗影响最大的网页特征。基于上述研究,选取网页大小(FPagesize)、DOM 节点数(FDOMnode)、DOM 树深度(FDOMdepth)、链接数(FLink)、样式属性数(FStyle)以及图像数(FIMG)共6 种网页特征描述网页的复杂度。在提取网页特征之后对网页的各个特征进行归一化处理,将所有特征值限制在0~1 范围内。

由于网页的内容结构与设备硬件无关,所以量化网页复杂度有利于将优化浏览器功耗的方法迁移至其他类型的硬件平台。选取的6 个网页特征及其重要性占比如图4 所示。根据不同特征的重要性,通过加权求和的方式定义网页的复杂度C,公式为

图4 网页特征重要性统计Figure 4 Web page feature importance statistics

式中:Pi为不同特征的重要性量化值;Fi为不同特征归一化后的数值。

2.2 处理器运行时特征与网页分类

为研究网页在加载过程中CPU 频率的动态变化情况,统计了500 个中文网站加载时大小核簇在各级频率下的运行时间占比。其中,搜狐、百度两个网站加载时大小核簇各级CPU频率运行时间占比如图5 所示。

在核簇切换的CPU 设计架构下,当小核簇不足以处理任务时会将任务迁至大核簇中,大小核簇在无工作负载的状态下保持最低频率,所以网页加载过程中大核簇处于最低频率的时间占比可以反映出一个网页的加载过程对两个核簇的依赖程度。定义大核簇处于最低频率的状态为大核空闲态(Sidle),根据网页加载时Sidle时间占比(PS),将网页分为3 类:小核型(TL)、综合型(TBL)以及大核型(TB),其分类规则为:

1)如果PS≥80%,则T=TL;

2)如果50%<PS<80%,则T=TBL;

3)如果PS≤50%,则T=TB。

参数Sidle是通过对样本空间内不同复杂度网页加载时的特征总结得出的。如图5 所示,搜狐这一类复杂度较大的网页在加载时PS<50%;而百度这一类结构较简单的网页加载时PS>80%。每一组归一化后的特征代表一个网页,为每一组数据根据网页类型进行标注后,通过sklearn 建立逻辑回归模型。该模型返回三组参数,每一组参数计算出一个网页属于对应类别的可能性,公式为

式中:ωi为对应类型的模型参数向量;x为网页特征向量。通过运算后得到P(T=TL)、P(T=TBL) 和P(T=TB),其中最大的P值所对应的类型即为该网页类型。网页分类可以快速确定在优化目标网页时应针对哪个核簇。如TL型网页的加载过程中主要依赖小核簇,大核簇80%以上时间处于最低频率状态,优化目标为小核簇。同理,TBL型网页优化对象为大小两个核簇,TB型网页优化目标为大核簇。

2.3 CPU 上限频率和GPU 频率调节

2.3.1 CPU 上限频率调节

分析大小核簇频率的分布可知,在网页加载时,系统倾向于将频率调节至最高或最低,中段频率的利用率偏低,而限制上限频率可以更充分利用中段频率。网页分类后,根据网页类型调节相应核簇的上限频率,核簇可调节频率为一个递增数列,分别定义为小核簇频率数列(LLarr)与大核簇频率数列(LBarr)。浏览器用户在使用过程中最关注的是页面加载的时间,网页在网络状况良好的情况下加载时间在1~10 s 范围内,且不相等,所以对不同的网页设置相同的加载时间上限是不合理的。为保证用户体验,定义小核簇基准上限频率下标(Lbase)和大核簇基准上限频率下标(Bbase)。在加载TL型网页时,保持大核簇频率不变,调节小核簇上限频率时网页加载时间的延长百分比并制成小核簇查询表(Ltable),当小核簇上限频率低于LLarr[Lbase] 后会使加载时间延长百分比高于某一个阈值;在加载TB型网页时,保持小核簇频率不变,调节大核簇上限频率时网页加载时间的延长百分比并制成大核簇查询表(Btable),当大核簇上限频率低于LLarr[Bbase] 后会使加载时间延长百分比高于某一个阈值。这个阈值可以根据用户对性能的要求指定,值越低代表对性能要求越高。通过设定这个阈值可以保证加载任何类型网页的加载时间都在用户可容忍范围内。

得到Lbase和Bbase后可以计算出大小核簇的频率级数。根据网页复杂度定义小核簇复杂度等级(CL)与大核簇复杂度等级(CB)。CL和CB分别由样本空间内所有网站的复杂度划分:将所有网页复杂度升序排列,按可调节级数进行均分,其中每一部分代表一个等级,得到一个网站的复杂度之后,即可根据等级划分得到对应的CL和CB。通过对网页分别进行复杂度等级划分,可以更加精细地限制不同复杂度网页的CPU 频率。限制幅度由网页的CL和CB决定,等级越高,所对应的CPU 核簇的频率上限则越高。结合系统架构特点,确定3 种类型网页的大核簇上限频率(LB)和小核簇上限频率(LL),规则为:

1)如果T=TL,则LL=LLarr[Lbase+CL],LB=min(LBarr);

2)如果T=TBL,则LL=LLarr[Lbase+CL],LB=LBarr[Bbase+CB];

3)如果T=TB,则LL=max(LLarr),LB=LBarr[Bbase+CB]。

对于TL型网页,加载过程中绝大部分时间内大核簇处于最低频率,加载这类网页时将大核簇上限频率设为最低,再限制小核簇频率;对于TBL型网页,分别对大小核簇按复杂度进行频率限制;对于TB型网页,小核簇频率不进行限制,根据复杂度限制大核簇频率。

2.3.2 GPU 频率调节

为探究GPU 频率对网页加载时间的影响,将CPU 大小核簇的频率固定,依次升高GPU频率,并统计在不同GPU 频率下网页平均加载时间。对比2.3.1 节提出的利用Ltable与Btable估计网页的加载时间延长比例,找出Gtable中最接近的比率值,据此预测加载该网页的最佳GPU 频率(FGPU)。

2.4 方法总结

使用模型预测最佳频率配置的优化方法在应用于新设备时需要根据CPU 类型重新训练预测模型,而CPU 配置的种类繁多,需要遍历每一种配置后收集每一个网页的最佳频率配置作为训练模型的数据集,这一过程极为繁琐。随着处理器可调节频率密度的增大,为网页配置一种具体频率配置的难度也会增大,这也是通过DVFS 技术实现功耗优化的一大挑战。而且随着网页复杂度的提升,网页对GPU 的依赖性也会越来越强,如果再考虑GPU 的影响因素,复杂度会进一步提升。通过限制CPU 的上限频率可以降低复杂度,因为该方法的参数获取只需单独遍历CPU 大小核簇和GPU 的各级频率,不需要考虑频率组合,于是,增大CPU 可调节频率密度仍可使复杂度保持在同一个量级。同时,由于本文所提方法逻辑结构简单,且不包含复杂的机器学习模型,可以更简便地应用于其他类型的智能手机,体现出更佳的迁移性。

获取所需参数并训练好网页分类模型后,本文所提方法的应用过程可由算法1 描述。

3 实验与评价

3.1 参数设置与示例

选择50 个TL型网页,将大核簇频率设置为最低,依次降低小核簇的上限频率;选择50个TB型网页,将小核簇的频率限制在最低,依次降低大核簇的上限频率。收集每种频率配置对这些网页的加载时间影响,如图6~7 所示。进而可得每一级上限频率对应的网页加载时间延长百分比、Ltable和Btable。设置加载时间延长阈值为20%,这一阈值可以根据用户对性能的需求进行调节。从图6~7 中可以观察到:在大核簇上限频率处于1.96 MHz 和小核簇上限频率处于1.19 MHz 时,网页的平均加载时间相较于默认策略增长了20%,因此选择大核簇的2.04 MHz 与小核簇的1.25 MHz 为基准上限频率,这两个基准上限频率在LLarr与LBarr中的下标分别为13、24,所以Lbase设置为13,Bbase设置为24。又因为小核簇与大核簇分别有22 级和31 级可调节频率,所以CL可分为9 个等级(0~8),CB可分为7 个等级(0~6)。CL和CB分别由样本空间内所有网页的复杂度划分:将所有网页的复杂度升序排列,分别按复杂度大小均分为9 个等级与7 个等级。GPU 与CPU 分属于两个不同模块,二者之间是无关联的。为了避免CPU 频率变化影响加载时间,将CPU 大小核簇的频率固定,依次调节GPU 频率,对100 个包含3 种类型的网页进行测试,测试结果如图8 所示,记录每一级GPU 频率下加载时间缩短百分比得到Gtable。

图6 固定小核簇频率,调节大核簇频率上限Figure 6 Adjusted the upper limit of large cluster frequency when little cluster frequency is fixed

图7 固定大核簇频率,调节小核簇频率上限Figure 7 Adjusted the upper limit of small cluster frequency when big cluster frequency is fixed

图8 固定CPU 频率,调节GPU 频率Figure 8 Adjusted GPU frequency when CPU frequency is fixed

3.2 实验评估

对排名前500 的中文网站进行测试,所有测试均在稳定的WIFI 网络状态下进行,以避免网络波动对实验结果造成影响。为了避免人为因素干扰,使用自动测试工具加载网页。每一次测试前均会删除浏览器缓存,每组实验数据均多次测量再取平均值。将500 个网站随机分为10 组分别进行实验。实验结果如图9 所示,其中图9(a) 为功耗对比统计图,可见,相较于默认策略,所有组别的网页加载时的总功耗均有不同程度的降低;由如图9(b) 可见,所提方法实现了7.3%~20.3% 的功耗优化,平均节省了12.0% 功耗。如图10(a)~(b) 所示,网页加载时间的变化幅度为-2.9%~9.2%,平均缩短了5.0%。

图9 功率优化统计Figure 9 Power optimization statistics

图10 网页加载时间优化统计Figure 10 Web page load time optimization statistics

4 结语

本文提出了一种限制CPU 频率的同时调节GPU 频率实现浏览器功耗优化的方法。通过探究网页加载时CPU 频率调节特征建立模型对网页进行分类,根据网页类型优化目标核簇。分析了限制CPU 频率以及GPU 频率对网页加载功耗和加载时间的影响,根据网页的复杂度调节CPU 的上限频率,同时协调GPU 频率保证网页的加载速度。实现了网页加载功耗优化的同时降低了网页加载时间,体现出本文方法的简便性和更好的迁移性。

在未来的研究过程中,由于网络因素对页面加载存在较大影响,所以应该进一步考虑如何根据网络状态动态地调度处理器资源;对于浏览器用户而言,交互阶段的功耗优化也是十分重要的,因为用户操作的随机性和用户对于交互响应的敏感性,所以针对这个阶段进行功耗优化是非常具有挑战性的,同时也是未来需要研究的重点问题;混合式应用与浏览器密切相关,因此针对浏览器提出的功耗优化方法在未来应考虑如何广泛地应用于系统架构层面来降低智能手机整体的功耗。

猜你喜欢
功耗浏览器复杂度
基于任务映射的暗硅芯片功耗预算方法
反浏览器指纹追踪
一种低复杂度的惯性/GNSS矢量深组合方法
求图上广探树的时间复杂度
揭开GPU功耗的面纱
数字电路功耗的分析及优化
环球浏览器
某雷达导51 头中心控制软件圈复杂度分析与改进
再见,那些年我们嘲笑过的IE浏览器
IGBT模型优化及其在Buck变换器中的功耗分析