CN110287028A - 一种模式切换的方法以及相关装置 - Google Patents

一种模式切换的方法以及相关装置 Download PDF

Info

Publication number
CN110287028A
CN110287028A CN201910564590.3A CN201910564590A CN110287028A CN 110287028 A CN110287028 A CN 110287028A CN 201910564590 A CN201910564590 A CN 201910564590A CN 110287028 A CN110287028 A CN 110287028A
Authority
CN
China
Prior art keywords
parameter
gpu
processing unit
cpu
load parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910564590.3A
Other languages
English (en)
Other versions
CN110287028B (zh
Inventor
黄斌
高志强
王谊
罗章龙
严明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Domain Computer Network Co Ltd
Original Assignee
Shenzhen Tencent Domain Computer Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Domain Computer Network Co Ltd filed Critical Shenzhen Tencent Domain Computer Network Co Ltd
Priority to CN201910564590.3A priority Critical patent/CN110287028B/zh
Publication of CN110287028A publication Critical patent/CN110287028A/zh
Application granted granted Critical
Publication of CN110287028B publication Critical patent/CN110287028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本申请公开了一种模式切换的方法以及相关装置,通过确定处理单元的标识信息;并获取所述处理单元运行目标程序时的实际运行频率;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。保证了处理单元在运行过程中不会超过预设的负载范围,保证了处理单元的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度。

Description

一种模式切换的方法以及相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种模式切换的方法以及相关装置。
背景技术
随着终端应用程序的功能越来越强大,相应的也需求性能更好的硬件设备支持,这其中对于芯片的要求尤为突出。
一般在运行程序时,终端会根据手机的综合配置选择程序相应的运行模式,例如:终端运行游戏时,会在启动之前调整至默认的画质或帧率模式,以满足对于游戏的负载。
但是,由于程序的负载在其运行过程中并不稳定,有时甚至会超过芯片所能处理的能力范围,此时会影响程序的正常运行,降低程序运行的流畅性,甚至导致终端产生故障。
发明内容
有鉴于此,本申请第一方面提供一种模式切换的方法,可应用于终端或相关硬件设备中,具体包括:确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;基于所述实际运行频率计算得到第一负载参数,所述第一负载参数用于指示所述处理单元的负载情况;若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,所述预设条件基于所述预设运行频率设定,所述第二运行模式与第一运行模式不同。
优选的,在本申请一些可能的实现方式中,所述处理单元包括中央处理器CPU,所述处理单元的标识信息包括所述CPU的预设运行频率、型号和架构信息,所述基于所述实际运行频率计算得到负载参数包括:根据所述CPU的型号获取修正参数;根据所述CPU的架构信息获取架构倍率参数;
根据第一公式计算所述负载参数,所述第一公式为:
其中,所述CpuScore表示第一负载参数,所述SocCoef表示修正参数,所述ArchCoef表示架构倍率参数,所述RealDeviceFreq表示所述CPU在预设时间段内的实际运行频率,所述MaxArchFreq表示所述CPU的预设运行频率。优选的,在本申请一些可能的实现方式中,所述处理单元还包括图形处理器GPU,所述处理单元的标识信息包括所述GPU的标识信息,所述方法还包括:根据所述GPU的标识信息计算第二负载参数;所述若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,包括:根据所述第一负载参数和所述第二负载参数计算得到实际负载参数;若所述实际负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
优选的,在本申请一些可能的实现方式中,所述根据所述GPU的标识信息计算第二负载参数,包括:根据所述GPU的标识信息确定所述GPU的渲染框架;根据所述GPU的渲染框架选择预设的计算方式获取浮点运算能力参数;根据所述GPU的浮点运算能力参数计算得到第二负载参数。
优选的,在本申请一些可能的实现方式中,所述方法还包括:获取所述CPU的权重和所述GPU的权重;所述根据所述第一负载参数和所述第二负载参数计算实际负载参数,包括:
根据第二公式计算实际负载参数,所述第二公式为:
SocScore=CpuScore*CpuWeight+GpuScore*GpuWeight
其中,所述SocScore表示实际负载参数,所述CpuScore表示第一负载参数,所述CpuWeight表示所述CPU的权重,所述GpuScore表示第二负载参数,所述GpuWeight表示所述GPU的权重。
优选的,在本申请一些可能的实现方式中,所述获取所述CPU的权重和所述GPU的权重,包括:获取所述CPU运行目标程序时的第一帧率;获取所述GPU运行目标程序时的第二帧率;根据所述第一帧率和所述第二帧率的比例确定所述CPU的权重和所述GPU的权重。
本申请第二方面提供另一种模式切换的装置,包括:确定模块,用于确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;
获取模块,用于获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;
计算模块,用于基于所述实际运行频率计算得到第一负载参数,所述第一负载参数用于指示所述处理单元的负载情况;
切换模块,用于若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,所述预设条件基于所述预设运行频率设定,所述第二运行模式与第一运行模式不同。
优选的,在本申请一些可能的实现方式中,所述处理单元包括中央处理器CPU,所述处理单元的标识信息包括所述CPU的预设运行频率、型号和架构信息;
所述获取模块,具体用于根据所述CPU的型号获取修正参数;
所述获取模块,具体用于根据所述CPU的架构信息获取架构倍率参数;
所述计算模块,具体用于根据第一公式计算所述负载参数,所述第一公式为:
其中,所述CpuScore表示第一负载参数,所述SocCoef表示修正参数,所述ArchCoef表示架构倍率参数,所述RealDeviceFreq表示所述CPU在预设时间段内的实际运行频率,所述MaxArchFreq表示所述CPU的预设运行频率。
优选的,在本申请一些可能的实现方式中,所述处理单元还包括图形处理器GPU,所述处理单元的标识信息包括所述GPU的标识信息;
所述计算模块,还用于根据所述GPU的标识信息计算第二负载参数;
所述切换模块,具体用于根据所述第一负载参数和所述第二负载参数计算得到实际负载参数;
所述切换模块,具体用于若所述实际负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
优选的,在本申请一些可能的实现方式中,所述计算模块,具体用于根据所述GPU的标识信息确定所述GPU的渲染框架;根据所述GPU的渲染框架选择预设的计算方式获取浮点运算能力参数;根据所述GPU的浮点运算能力参数计算得到第二负载参数。
优选的,在本申请一些可能的实现方式中,所述获取模块,还用于获取所述CPU的权重和所述GPU的权重;
所述计算模块,具体用于根据第二公式计算实际负载参数,所述第二公式为:
SocScore=CpuScore*CpuWeight+GpuScore*GpuWeight
其中,所述SocScore表示实际负载参数,所述CpuScore表示第一负载参数,所述CpuWeight表示所述CPU的权重,所述GpuScore表示第二负载参数,所述GpuWeight表示所述GPU的权重。
优选的,在本申请一些可能的实现方式中,所述获取模块,具体用于获取所述CPU运行目标程序时的第一帧率;获取所述GPU运行目标程序时的第二帧率;根据所述第一帧率和所述第二帧率的比例确定所述CPU的权重和所述GPU的权重。
本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的模式切换的方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的模式切换的方法。
本申请第五方面提供一种模式切换系统,该模式切换系统包括处理器,用于支持切换装置实现第一方面或第一方面任一项所涉及的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;并获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。保证了处理单元在运行过程中不会超过预设的负载范围,保证了处理单元的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种模式切换的方法的流程图;
图2为本申请实施例提供的另一种模式切换的方法的流程图;
图3为本申请实施例提供的一种GPU运行状态模拟的流程图;
图4为本申请实施例提供的GPU能力值与GPU型号的对应关系图;
图5为本申请实施例提供的GPU浮点运算能力与rex评分拟合图;
图6为本申请实施例提供的另一种模式切换的方法的流程图;
图7为本申请实施例提供的一种用于模式切换的界面;
图8为本申请实施例提供的一种切换装置的结构示意图;
图9为本申请实施例提供的另一种切换装置的结构示意图。
具体实施方式
本申请实施例提供了一种模式切换的方法以及相关装置,通过确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;并获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。保证了处理单元在运行过程中不会超过预设的负载范围,保证了处理单元的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度,同时降低了功耗,提升了终端的续航能力。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的模式切换方法可以应用于具有处理单元的终端之中,例如:手机、平板电脑、个人数字助理(personal digital assistant,PDA)、销售终端(point ofsales,POS)、车载电脑等任意终端设备;具体的,本申请涉及的处理单元可以是CPU,也可以是GPU,还可以是具有逻辑处理功能的其他功能器件,可以是一种,也可以是上述多种的组合应用,具体器件类型因实际场景而定。
随着终端应用程序的功能越来越强大,相应的也需求性能更好的硬件设备支持,这其中对于芯片的要求尤为突出。一般在运行程序时,终端会根据手机的综合配置选择程序相应的运行模式,例如:终端运行游戏时,会在启动之前调整至默认的画质或帧率模式,以满足对于游戏的负载。
但是,由于程序的负载在其运行过程中并不稳定,有时甚至会超过芯片所能处理的能力范围,此时会影响程序的正常运行,降低程序运行的流畅性,甚至导致终端产生故障;有时目标程序在当前运行模式下所占用的资源又比较小,此时空闲的处理单元的资源可以支持性能更高的运行模式,然而目标程序一直保持较低的性能需求水平,影响用户的体验。
为了解决上述问题,本申请提出了一种模式切换的方法,该方法可应用于终端设备的处理器系统架构中,具体的,可以是以程序的方式写入处理逻辑中,其呈现方式可以是系统组件,也可以通过应用程序的运行呈现;该方法还可以作为外接设备的逻辑主体,具体的,终端设备可以通过接入该外接设备实现模式切换的方法,该逻辑主体至少包括:通过确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;并获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。
结合上述系统架构,下面将对本申请中模式切换的方法进行介绍,请参阅图1,图1为本申请实施例提供的一种模式切换的方法的流程图,本申请实施例至少包括以下步骤:
101、确定处理设备的标识信息。
本实施例中,处理设备可以是CPU,也可以是GPU,还可以是具有逻辑处理功能的其他功能器件,可以是一种,也可以是上述多种的组合应用,具体器件类型因实际场景而定。
可以理解的是,处理设备的标识信息可以包括处理设备的型号、采用的架构类型、预设工作频率或架构下的最大频率,具体的,在实际应用中,可以获取上述信息的一种或多种的组合,具体信息组成由实际场景而定,此处不做限定。
102、获取所述处理单元在预设时间段内运行目标程序时的实际运行频率。
本实施例中,处理单元在预设时间段内运行目标程序时,检测运行频率的过程可以是实时的,也可以是周期性的,还可以是根据用户的需求在某一指定时刻获取;其中,预设时间段可以是目标程序从开启到结束的时间段,也可以是选取从开启到结束之间某一特定时间。
可选的,预设时间段还可以是在终端运行目标程序预设时长后开启,这是由于一般目标程序开始运行时处于初始准备状态,不会利用较多的运行资源,此时处理单元的运行频率无法反应整体的运行状态;可以理解的是,预设时长的设定可以是基于历史记录中目标程序达到资源占有率的峰值时长,并根据该峰值时长推断一般的运行高峰时间段,例如:历史记录中指出目标程序在启动5分钟后达到资源占有率的峰值,则预设时长可以取2分钟;另外,预设时长的设定还可以是基于相关人员的设定。
可以理解的是,本实施例中目标程序可以是游戏,例如:王者荣耀、和平精英等;也可以是工具程序,例如:3DMAX、CAD等;还可以是播放器类的程序,例如:酷狗音乐、网易云音乐等,具体的程序种类因实际场景而定,本申请选取游戏为例进行说明。
在一种可能的场景中,处理单元可以分为多个运行档位,例如:高通骁龙835在实际应用中可能达到的最大档位频率为2.4GHz,此时,可以根据处理单元所处的档位判定实时运行频率。
103、基于所述实际运行频率计算得到第一负载参数。
本实施例中,第一负载参数可以是实际运行频率与预设运行频率的比值,其中,预设运行频率可以是芯片厂商官方公布的使用最大频率,例如:高通骁龙835公布最大频率为2.45GHz,实际运行频率为2.4GHz,此时,第一负载参数可以是2.4/2.45=0.98。
104、若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
本实施例中,预设条件可以是第一负载参数大于某个值,例如:预设条件为第一负载参数大于0.9,则为满足预设条件,此时,可切换至第二运行模式运行目标程序;预设条件还可以是第一负载参数小于某个值,这是由于当目标程序需要高频率的处理单元支持时,需要提升原有的低频率模式,例如:预设条件为第一负载参数小于0.3,则为满足预设条件,此时,可切换至第二运行模式运行目标程序。
具体的,第二运行模式可以是采用低频率的处理单元的方案,例如:第一运行模式为高画质运行,第二运行模式为低画质运行,一旦第一负载参数满足预设条件,则降低目标程序运行的画质,采用第二运行模式运行。在一些场景中,第二运行模式也可以是采用高频率的处理单元的方案,这是由于当目标程序需要高频率的处理单元支持时,需要提升原有的低频率模式,例如:第一运行模式为低画质运行,第二运行模式为高画质运行,一旦第一负载参数满足预设条件,则提升目标程序运行的画质,采用第二运行模式运行目标程序。
上述实施例通过确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;并获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。保证了处理单元在运行过程中不会超过预设的负载范围,保证了处理单元的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度,同时降低了功耗,提升了终端的续航能力。
在一般情况下,终端的处理单元都包括中央处理器,即CPU,下面针对处理单元为CPU的场景对本申请提供的模式切换方法进行说明,请参阅图2,图2为本申请实施例提供的另一种模式切换的方法的流程图,本申请实施例至少包括以下步骤:
201、确定CPU的标识信息。
本实施例中,CPU的标识信息可以包括处理设备的型号、采用的架构类型、预设工作频率或架构下的最大频率,具体的,在实际应用中,可以获取上述信息的一种或多种的组合,具体信息组成由实际场景而定,此处不做限定。
可选的,标识信息可以是通过CPU自身的信息读取,也可以是通过外部获取渠道,例如网络。
202、根据所述CPU的型号获取修正参数。
可以理解的是,由于部分CPU实际的运算能力与标记的运算能力有所却别,故需要添加人为干预修正,目前需要修正参数的CPU包括:骁龙810、骁龙808、骁龙805、联发科MT6763T、海思Kirin935、海思Kirin930。
本实施例中,修正参数的获取可以是基于预先的设定,例如CPU型号与修正参数的对应关系,也可以是相关人员的输入。
203、根据所述CPU的架构信息获取架构倍率参数。
可以理解的是,目前手机芯片都采用Arm架构,手机各芯片可与Arm架构对应,基于官网等渠道的架构性能基础对比。
在一种可能的方式中,以A15架构作为基础,进行权重计算,权重的值是指同频率下性能的倍率差异。对应的Arm架构下处理器如Cortex-A73的能力评级,数据来源于官网,例如,若Cortex-A57的ArchCoef取值为1.0,则Cortex-A72的ArchCoef取值为1.3,Cortex-A73的ArchCoef取值为2.1。华为P20的芯片为麒麟970,其大核架构为Cortex-A73,此处取值为2.1。
根据上述架构倍率参数的取值方法,可参照如表1所示的型号进行选择,表1为CPU架构以及对应的代表芯片。
表1 CPU架构以及对应的代表芯片
204、根据第一公式计算所述第一负载参数。
本实施例中,考虑到上述修正参数与架构倍率参数对于第一负载参数的影响,为保证第一负载参数体现当前CPU运行状态的准确性,可以通过第一公式进行计算,第一公式可以为:
其中,所述CpuScore表示第一负载参数,所述SocCoef表示修正参数,所述ArchCoef表示架构倍率参数,所述RealDeviceFreq表示所述CPU在预设时间段内的实际运行频率,所述MaxArchFreq表示所述CPU的预设运行频率。
在一种可能的场景中,修正参数为0.87,架构倍率参数为2.1,CPU在预设时间段内的实际运行频率为2.2GHz,CPU的预设运行频率为2.4GHz,则第一负载参数为0.87*2.1*2.2/2.4=1.67475。
205、若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
本实施例中,预设条件可以是第一负载参数大于某个值,例如:预设条件为第一负载参数大于1.1,则为满足预设条件,此时,可切换至第二运行模式运行目标程序;预设条件还可以是第一负载参数小于某个值,这是由于当目标程序需要高频率的CPU支持时,需要提升原有的低频率模式,例如:预设条件为第一负载参数小于0.4,则为满足预设条件,此时,可切换至第二运行模式运行目标程序。
具体的,第二运行模式可以是采用低频率的CPU的方案,例如:第一运行模式为高画质运行,第二运行模式为低画质运行,一旦第一负载参数满足预设条件,则降低目标程序运行的画质,采用第二运行模式运行。在一些场景中,第二运行模式也可以是采用高频率的CPU的方案,这是由于当目标程序需要高频率的CPU支持时,需要提升原有的低频率模式,例如:第一运行模式为低画质运行,第二运行模式为高画质运行,一旦第一负载参数满足预设条件,则提升目标程序运行的画质,采用第二运行模式运行目标程序。
上述实施例通过确定CPU的标识信息,所述标识信息包括所述CPU的预设运行频率;并获取所述CPU运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述CPU的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配CPU的负载能力。保证了CPU在运行过程中不会超过预设的负载范围,保证了CPU的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度,同时降低了功耗,提升了终端的续航能力。
可以理解的是,由于一些目标程序需要额外的图形处理功能,故一般处理单元也包括GPU,下面针对处理单元为GPU的场景对本申请提供的模式切换方法进行说明,请参阅图3,图3为本申请实施例提供的一种GPU运行状态模拟的流程图,本申请实施例至少包括以下步骤:
301、确定GPU的标识信息。
本实施例中,GPU的标识信息可以包括处理设备的型号、采用的架构类型、预设工作频率或架构下的最大频率,具体的,在实际应用中,可以获取上述信息的一种或多种的组合,具体信息组成由实际场景而定,此处不做限定。
可选的,标识信息可以是通过GPU自身的信息读取,也可以是通过外部获取渠道,例如网络。
302、根据所述GPU的标识信息确定所述GPU的渲染框架。
考虑到不同厂商GPU设计架构以及计算方案的差异,本实施例采用不同的模拟方法对不同的GPU进行负载模拟。
本实施例中,GPU的渲染框架可以包括Mail GPU、Adreno GPU、PowerVR GPU和PowerVR SGX系列GPU。
303、根据所述GPU的渲染框架选择预设的计算方式获取浮点运算能力参数。
本实施例中,通过浮点运算能力参数来反应GPU的运行能力,下面针对上述渲染框架分别进行说明。
一、若GPU的渲染框架为Mail GPU,则可以采用如下公式计算GPU的浮点运算能力参数:
GLFOPS=Cores*AluPerCore*FlopsPerAluCycle*GpuFreq
其中,GLFOPS为浮点运算能力参数。
Cores表示GPU核心数,例如麒麟970芯片的GPU为Mali-G72MP12,后缀的“MP+x”代表拥有多少个计算核心,则麒麟970 Cores为12。
AluPerCore:ALU表示算数逻辑单元arithmetic logic unit,因此AluPerCore表示每个核心包含的算数逻辑单元数量,即是每个核心的Pipeline数量。
FlopsPerAluCycle表示单个ALU每个周期的浮点运算能力,从官方架构说明文档获取。以Midgard架构[3]为例,单ALU单周期单精度计算性能是17FLOP。Mali Midgard架构使用统一渲染架构,采用Tri-Pipe技术,通过一个完整的128位的SIMD来分解操作较小位宽的计算。比如一个128位的SIMD可以灵活的分解成2xFP64、4xFP32、8xFP16、2xInt64、4xInt32、8xInt16、16xInt8等操作。这使得尽可能多的相同操作可以填充SIMD流水线,提高效率。在计算能力方面,一个完整的Midgard计算单元每时钟能够输出17FLOPS FP32的性能,它包含了4个矢量加、4个矢量乘法、1个标量加法、一个标量乘法、一个点积(7FLOPS)。
GpuFreq表示GPU频率,单位GHz。
二、若GPU的渲染框架为Adreno GPU,则可以采用如下公式计算GPU的浮点运算能力参数:
其中,ALUs表示GPU所包含的alu数量。
FlopsPerUnitCycle表示单组alu每个周期的浮点运算能力。
GpuFreq表示GPU频率,单位GHz。
本实施例中,由于Adreno GPU为统一渲染架构,shader ALU为典型的Vec4+Scalar,Vec4每周期可以处理4个FP32的MAD运算(乘加运算,记为2FLOPS),Scalar单元不能做MAD,Scalar单元不能做MAD。所以,一个Adreno的Shader单元,每周期可提供的浮点操作数为4×2+1=9FLOPS。一个Vec4有4个ALU,所以公式中ALUs除以4。
三、若GPU的渲染框架为PowerVR GPU,则可以采用如下公式计算GPU的浮点运算能力参数:
GLFOPS=UscClusters*FlopsPerClusterCycle*GpuFreq
其中,UscClusters表示通用着色器簇USC的数量,USC是PowerVR Series 6引入的统一着色簇简称,是指具体微架构里将若干个计算、贴图部件绑定在一起的单元,一个USC就是一个Compute Unit。
FlopsPerClusterCycle表示单USC集群每个周期的浮点运算能力。
GpuFreq表示GPU频率,单位GHz。
四、若GPU的渲染框架为PowerVR SGX系列GPU,则可以采用如下公式计算GPU的浮点运算能力参数:
GLFOPS=Cores*Pipelines*FlopsPerPipeCycle*GpuFreq
其中,Cores表示GPU的核数,后缀的“MP+x”代表拥有多少个计算核心,例如xxxMP3表示Cores为3。
Pipelines表示GPU渲染管线数量。
FlopsPerPipeCycle表示单管线每周期FP32运算单元数量。
GpuFreq表示GPU频率,单位GHz。
304、根据所述GPU的浮点运算能力参数计算得到第二负载参数。
本实施例中,通过GPU的浮点运算能力参数计算得到第二负载参数的过程可以是基于外接设备或程序的测试值拟合而成。
在一种可能的场景中,选取霸王龙(一种测试软件)作为参考数值,对通过本申请获取的多次GPU的浮点运算能力参数进行拟合,可以得到如图4所示的数据,图4为本申请实施例提供的GPU能力值与GPU型号的对应关系图,通过图4可以观察到各GPU的霸王龙跑分(rex)与GPU浮点运算能力正相关。为得到可信度高的计算公式,将GFLOPS与rex评分做线性拟合,使用scipy库的curve_fit方法分别对数据做一次、二次、三次线性拟合,得出如图5所示的结果,图5为本申请实施例提供的GPU浮点运算能力与rex评分拟合图,通过观察可知Adreno gpu与三次曲线拟合结果更加接近。故通过GPU的浮点运算能力参数计算得到第二负载参数的公式可以为图5中拟合曲线所对应的函数,由于不同场景下评分可能有波动,此处不做赘述。
可以理解的是,在同时存在CPU与GPU的终端中也可以实施本申请提供的模式切换的方法,下面针对处理单元为CPU和GPU的场景对本申请提供的模式切换方法进行说明,请参阅图6,图6为本申请实施例提供的另一种模式切换的方法的流程图,本申请实施例至少包括以下步骤:
601、确定CPU和GPU的标识信息。
本实施例中,步骤601与上述实施例中步骤201和301类似,此处不再赘述。
602、根据所述CPU的型号获取修正信息。
603、根据所述CPU的架构信息获取架构倍率参数。
604、根据第一公式计算所述第一负载参数。
本实施例中,步骤602-604与上述实施例中步骤202和204类似,此处不再赘述。
605、根据GPU的标识信息确定GPU的渲染框架。
606、根据GPU的渲染框架选择预设的计算方式获取浮点运算能力参数。
607、根据GPU的浮点运算能力参数计算得到第二负载参数。
本实施例中,步骤605-607与上述实施例中步骤302和304类似,此处不再赘述。
608、根据所述第一负载参数和所述第二负载参数计算得到实际负载参数。
本实施例中,考虑到实际应用中CPU与GPU的协作问题,在服务与同一目标程序时,所利用的资源率不一样,应加以权重以提高准确性。
可选的,在根据所述第一负载参数和所述第二负载参数计算得到实际负载参数之前,可以获取CPU与GPU运行同一目标程序时的帧率比值,并确定CPU与GPU的权重,例如:CPU的权重为0.8,GPU的权重为0.2,然后通过如下公式计算实际负载参数:
SocScore=CpuScore*CpuWeight+GpuScore*GpuWeight
其中,所述SocScore表示实际负载参数,所述CpuScore表示第一负载参数,所述CpuWeight表示所述CPU的权重,所述GpuScore表示第二负载参数,所述GpuWeight表示所述GPU的权重。
609、若所述实际负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
本实施例中,步骤609与上述实施例中步骤104类似,此处不再赘述。
在一种可能的场景中,终端可以为手机,并提供一种界面显示方式以实现本申请提供的模式切换方法与用户的交互过程,如图7所示,是本申请实施例提供的一种用于模式切换的界面。
图中包括处理单元A1、目标程序A2和推荐模式A3这些显示模块,其中处理单元A1包括CPU与GPU模式的选择,可以选择其中一种,也可以都选择;目标程序A2包括多个程序的运行情况,以及使用的模式和实际负载参数,图中程序1在高画质模式下运行,实际负载参数为80%;推荐模式A3包括推荐的模式切换选择,图中程序1可切换至低画质模式,实际负载参数为10%。
可以理解的是,上述界面还可以包括程序负载排行,或历史负载记录等信息,该信息均可通过上述方法实施例中涉及的参数、过程来体现,此处不做赘述。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图8,图8为本申请实施例提供的切换装置的结构示意图,切换装置800包括:
确定模块801,用于确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;
获取模块802,用于获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;
计算模块803,用于基于所述实际运行频率计算得到第一负载参数,所述第一负载参数用于指示所述处理单元的负载情况;
切换模块804,用于若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,所述预设条件基于所述预设运行频率设定,所述第二运行模式与第一运行模式不同。
可选的,在本申请一些可能的实现方式中,所述处理单元包括中央处理器CPU,所述处理单元的标识信息包括所述CPU的预设运行频率、型号和架构信息;
所述获取模块802,具体用于根据所述CPU的型号获取修正参数;
所述获取模块802,具体用于根据所述CPU的架构信息获取架构倍率参数;
所述计算模块803,具体用于根据第一公式计算所述负载参数,所述第一公式为:
其中,所述CpuScore表示第一负载参数,所述SocCoef表示修正参数,所述ArchCoef表示架构倍率参数,所述RealDeviceFreq表示所述CPU在预设时间段内的实际运行频率,所述MaxArchFreq表示所述CPU的预设运行频率。
可选的,在本申请一些可能的实现方式中,所述处理单元还包括图形处理器GPU,所述处理单元的标识信息包括所述GPU的标识信息;
所述计算模块803,还用于根据所述GPU的标识信息计算第二负载参数;
所述切换模块804,具体用于根据所述第一负载参数和所述第二负载参数计算得到实际负载参数;
所述切换模块804,具体用于若所述实际负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
可选的,在本申请一些可能的实现方式中,所述计算模块803,具体用于根据所述GPU的标识信息确定所述GPU的渲染框架;根据所述GPU的渲染框架选择预设的计算方式获取浮点运算能力参数;根据所述GPU的浮点运算能力参数计算得到第二负载参数。
可选的,在本申请一些可能的实现方式中,所述获取模块802,还用于获取所述CPU的权重和所述GPU的权重;
所述计算模块803,具体用于根据第二公式计算实际负载参数,所述第二公式为:
SocScore=CpuScore*CpuWeight+GpuScore*GpuWeight
其中,所述SocScore表示实际负载参数,所述CpuScore表示第一负载参数,所述CpuWeight表示所述CPU的权重,所述GpuScore表示第二负载参数,所述GpuWeight表示所述GPU的权重。
可选的,在本申请一些可能的实现方式中,所述获取模块802,具体用于获取所述CPU运行目标程序时的第一帧率;获取所述GPU运行目标程序时的第二帧率;根据所述第一帧率和所述第二帧率的比例确定所述CPU的权重和所述GPU的权重。
通过确定模块801确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;并通过获取单元802获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;然后基于所述实际运行频率计算得到用于指示所述处理单元的负载情况的第一负载参数;当所述第一负载参数满足预设条件时,则切换至第二运行模式运行所述目标程序,以匹配处理单元的负载能力。保证了处理单元在运行过程中不会超过预设的负载范围,保证了处理单元的正常运行,提高了终端运行程序的稳定性,并提升了程序运行的流畅程度,同时降低了功耗,提升了终端的续航能力。
本申请实施例还提供了一种切换装置,请参阅图9,图9是本申请实施例提供的另一种切换装置的结构示意图,该切换装置900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对切换装置中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在切换装置900上执行存储介质930中的一系列指令操作。
切换装置900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由切换装置所执行的步骤可以基于该图9所示的切换装置结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有模式切换指令,当其在计算机上运行时,使得计算机执行如前述图1至图6所示实施例描述的方法中切换装置所执行的步骤。
本申请实施例中还提供一种包括模式切换指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图1至图6所示实施例描述的方法中切换装置所执行的步骤。
本申请实施例还提供了一种模式切换系统,所述模式切换系统可以包含图6所描述实施例中的模式切换装置,或者图8所描述的切换装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,切换装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种模式切换的方法,应用于终端,其特征在于,包括:
确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;
获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;
基于所述实际运行频率计算得到第一负载参数,所述第一负载参数用于指示所述处理单元的负载情况;
若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,所述预设条件基于所述预设运行频率设定,所述第二运行模式与第一运行模式不同。
2.根据权利要求1所述的方法,其特征在于,所述处理单元包括中央处理器CPU,所述处理单元的标识信息包括所述CPU的预设运行频率、型号和架构信息,所述基于所述实际运行频率计算得到第一负载参数包括:
根据所述CPU的型号获取修正参数;
根据所述CPU的架构信息获取架构倍率参数;
根据第一公式计算所述第一负载参数,所述第一公式为:
其中,所述CpuScore表示第一负载参数,所述SocCoef表示修正参数,所述ArchCoef表示架构倍率参数,所述RealDeviceFreq表示所述CPU在预设时间段内的实际运行频率,所述MaxArchFreq表示所述CPU的预设运行频率。
3.根据权利要求1或2所述的方法,其特征在于,所述处理单元还包括图形处理器GPU,所述处理单元的标识信息包括所述GPU的标识信息,所述方法还包括:
根据所述GPU的标识信息计算第二负载参数;
所述若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,包括:
根据所述第一负载参数和所述第二负载参数计算得到实际负载参数;
若所述实际负载参数满足预设条件,则切换至第二运行模式运行所述目标程序。
4.根据权利要求3所述的方法,其特征在于,所述根据所述GPU的标识信息计算第二负载参数,包括:
根据所述GPU的标识信息确定所述GPU的渲染框架;
根据所述GPU的渲染框架选择预设的计算方式获取浮点运算能力参数;
根据所述GPU的浮点运算能力参数计算得到第二负载参数。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述CPU的权重和所述GPU的权重;
所述根据所述第一负载参数和所述第二负载参数计算实际负载参数,包括:
根据第二公式计算实际负载参数,所述第二公式为:
SocScore=CpuScore*CpuWeight+GpuScore*GpuWeight
其中,所述SocScore表示实际负载参数,所述CpuScore表示第一负载参数,所述CpuWeight表示所述CPU的权重,所述GpuScore表示第二负载参数,所述GpuWeight表示所述GPU的权重。
6.根据权利要求4或5所述的方法,其特征在于,所述获取所述CPU的权重和所述GPU的权重,包括:
获取所述CPU运行目标程序时的第一帧率;
获取所述GPU运行目标程序时的第二帧率;
根据所述第一帧率和所述第二帧率的比例确定所述CPU的权重和所述GPU的权重。
7.一种模式切换的装置,应用于终端,其特征在于,包括:
确定模块,用于确定处理单元的标识信息,所述标识信息包括所述处理单元的预设运行频率;
获取模块,用于获取所述处理单元运行目标程序时的实际运行频率,所述目标程序处于第一运行模式,所述目标程序包括至少两种运行模式;
计算模块,用于基于所述实际运行频率计算得到第一负载参数,所述第一负载参数用于指示所述处理单元的负载情况;
切换模块,用于若所述第一负载参数满足预设条件,则切换至第二运行模式运行所述目标程序,所述预设条件基于所述预设运行频率设定,所述第二运行模式与第一运行模式不同。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至6任一项所述的模式切换的方法。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述权利要求1至6任一项所述的模式切换的方法。
10.一种模式切换系统,所述模式切换系统包括处理器,用于支持切换装置实现权利要求1至6任一项所涉及的方法。
CN201910564590.3A 2019-06-24 2019-06-24 一种模式切换的方法以及相关装置 Active CN110287028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910564590.3A CN110287028B (zh) 2019-06-24 2019-06-24 一种模式切换的方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910564590.3A CN110287028B (zh) 2019-06-24 2019-06-24 一种模式切换的方法以及相关装置

Publications (2)

Publication Number Publication Date
CN110287028A true CN110287028A (zh) 2019-09-27
CN110287028B CN110287028B (zh) 2024-01-30

Family

ID=68007538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910564590.3A Active CN110287028B (zh) 2019-06-24 2019-06-24 一种模式切换的方法以及相关装置

Country Status (1)

Country Link
CN (1) CN110287028B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112526904A (zh) * 2020-11-26 2021-03-19 合肥富煌君达高科信息技术有限公司 一种含有fpga的电子产品电路的工作模式切换控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170134461A1 (en) * 2015-11-09 2017-05-11 Le Shi Zhi Xin Electronic Technology (Tian Jin) Limited Method and device for adjusting definition of a video adaptively
CN107172274A (zh) * 2017-04-27 2017-09-15 努比亚技术有限公司 一种降低负载的方法及终端
CN107659828A (zh) * 2017-10-30 2018-02-02 广东欧珀移动通信有限公司 视频画质调整方法、装置、终端设备及存储介质
JP2018084863A (ja) * 2016-11-21 2018-05-31 キヤノンマーケティングジャパン株式会社 情報処理システム、情報処理装置、その制御方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170134461A1 (en) * 2015-11-09 2017-05-11 Le Shi Zhi Xin Electronic Technology (Tian Jin) Limited Method and device for adjusting definition of a video adaptively
JP2018084863A (ja) * 2016-11-21 2018-05-31 キヤノンマーケティングジャパン株式会社 情報処理システム、情報処理装置、その制御方法及びプログラム
CN107172274A (zh) * 2017-04-27 2017-09-15 努比亚技术有限公司 一种降低负载的方法及终端
CN107659828A (zh) * 2017-10-30 2018-02-02 广东欧珀移动通信有限公司 视频画质调整方法、装置、终端设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112526904A (zh) * 2020-11-26 2021-03-19 合肥富煌君达高科信息技术有限公司 一种含有fpga的电子产品电路的工作模式切换控制方法

Also Published As

Publication number Publication date
CN110287028B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
EP4036724A1 (en) Method for splitting neural network model by using multi-core processor, and related product
CN108292241B (zh) 处理计算图
US11741362B2 (en) Training neural networks using mixed precision computations
CN103853618B (zh) 基于截止日期驱动的云系统代价最小化资源分配方法
CN110826708B (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
WO2022048557A1 (zh) Ai模型的训练方法、装置、计算设备和存储介质
CN103870335B (zh) 用于信号流编程的数字信号处理器代码的高效资源管理的系统和方法
US11275561B2 (en) Mixed precision floating-point multiply-add operation
CN111984400A (zh) 神经网络的内存分配方法及装置
CN110033091A (zh) 一种基于模型进行预测的方法和装置
JP7412489B2 (ja) 連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム
EP3676698B1 (en) Providing efficient floating-point operations using matrix processors in processor-based systems
CN110287028A (zh) 一种模式切换的方法以及相关装置
CN112051981B (zh) 一种数据流水线计算路径结构及单线程数据流水线系统
CN110490317B (zh) 神经网络运算装置及运算方法
CN112380016A (zh) 基于改进遗传算法的云计算资源负载均衡调度方法及应用
CN107357206A (zh) 一种基于fpga板卡的运算优化的方法、装置及系统
CN116468078A (zh) 面向人工智能芯片的智能引擎处理方法和装置
CN114003198B (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN113988277A (zh) 用于存算一体芯片的神经网络映射方法、装置、设备
CN109960572A (zh) 设备资源管理方法和装置以及智能终端
CN114692824A (zh) 一种神经网络模型的量化训练方法、装置和设备
CN109308327A (zh) 基于子图模型兼容点中心模型的图计算方法装置介质设备
CN114692847A (zh) 数据处理电路、数据处理方法及相关产品
US20230315528A1 (en) Computing resource scheduling method, device, electronic apparatus, and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant