CN114697341A - 计算电子设备的算力的方法、控制设备以及存储介质 - Google Patents

计算电子设备的算力的方法、控制设备以及存储介质 Download PDF

Info

Publication number
CN114697341A
CN114697341A CN202011580350.1A CN202011580350A CN114697341A CN 114697341 A CN114697341 A CN 114697341A CN 202011580350 A CN202011580350 A CN 202011580350A CN 114697341 A CN114697341 A CN 114697341A
Authority
CN
China
Prior art keywords
electronic device
computing
power
calculation
usage
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
CN202011580350.1A
Other languages
English (en)
Other versions
CN114697341B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011580350.1A priority Critical patent/CN114697341B/zh
Publication of CN114697341A publication Critical patent/CN114697341A/zh
Application granted granted Critical
Publication of CN114697341B publication Critical patent/CN114697341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Abstract

本申请提供了一种计算电子设备的算力的方法、控制设备以及计算机可读存储介质。计算电子设备的算力的方法包括:获取目标电子设备的峰值算力;获取目标电子设备的算力资源的使用率信息,使用率信息包括目标电子设备的一项或多项算力资源中各项算力资源的当前使用率或当前空闲率;将峰值算力和当前使用率信息作为输入,运行预设的第一算力计算模型,得到目标电子设备的可用算力;其中,第一算力计算模型是根据若干台样本电子设备的峰值算力以及样本电子设备的使用率信息训练得到的机器学习模型。本申请可以计算不同形态的电子设备的可用算力,并且可以降低对电子设备的正常使用的影响。

Description

计算电子设备的算力的方法、控制设备以及存储介质
技术领域
本申请涉及分布式计算技术领域,尤其涉及一种计算电子设备的算力的方法、控制设备以及计算机可读存储介质。
背景技术
随着物联网(Internet of Things,IoT)技术的发展,越来越多的IoT设备(例如,监控摄像头,温控器等)进驻到人们的日常生活中,给人们的日常生活带来了较大的便利。以安防摄像头-为例,安防摄像头可以对其周围的事物进行24小时监控,为用户提供提前预防和历史影像数据查询等功能,从而为人们的安全生活提供保障。
但IoT设备本身的算力通常比较有限,当其涉及到较为复杂的计算任务时,需要借助其他设备的算力来完成计算任务。例如,当安防摄像头采集到图像数据时,需要借助其他设备对图像数据进行识别,以判断是否有异常情况出现(例如,家中是否有陌生人出现)。
现有技术中,根据电子设备的峰值算力来部署计算任务。即,当电子设备的峰值算力大于计算任务所需的算力时,会将计算任务部署至该设备上。但是,当用户同时在使用电子设备的其他功能时(例如,通过电子设备进行视频通话)时,电子设备的正常使用会受到影响。
发明内容
本申请的一些实施方式提供了一种计算电子设备的算力的方法、控制设备以及计算机可读存储介质,以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
第一方面,本申请实施方式提供了一种计算电子设备的算力的方法,包括:获取目标电子设备的峰值算力;获取目标电子设备的算力资源的使用率信息,使用率信息包括目标电子设备的一项或多项算力资源中各项算力资源的当前使用率或当前空闲率;将峰值算力和当前使用率信息作为输入,运行预设的第一算力计算模型,得到目标电子设备的可用算力;其中,第一算力计算模型是根据若干台样本电子设备的峰值算力以及样本电子设备的使用率信息训练得到的机器学习模型。
“一项或多项算力资源(为便于表述,将该“一项或多项算力资源”称为“算力资源组G1”)中各项算力资源的当前使用率或当前空闲率”的含义为:算力资源组G1中各项算力资源的当前使用率;或者,算力资源组G1中各项算力资源的当前空闲率;或者,算力资源组G1中一部分算力资源的当前使用率以及另一部分算力资源的当前空闲率。
本申请实施方式可以提供一种通用的计算方法,用于计算不同形态的电子设备的可用算力。当根据本申请实施方式提供的可用算力进行计算任务的分发时,可以降低对电子设备的正常使用的影响。
在一些实施方式中,使用率信息还包括目标电子设备的一项或多项算力资源中各项算力资源的预期使用率或预期空闲率。
“一项或多项算力资源(为便于表述,将该“一项或多项算力资源”称为“算力资源组G2”)中各项算力资源的预期使用率或预期空闲率”的含义为:算力资源组G2中各项算力资源的预期使用率;或者,算力资源组G2中各项算力资源的预期空闲率;或者,算力资源组G2中一部分算力资源的预期使用率以及另一部分算力资源的预期空闲率。
在一些实施方式中,算力资源的预期使用率是根据N个历史使用周期中算力资源的使用率确定的,N为正整数,N个历史使用周期按照时间先后顺序依次排列;预期使用率
Figure BDA0002865836090000021
其中,i为1至N之间的正整数,Zi为第i个历史使用周期中算力资源的使用率;Ki为使用率Zi的权值,且Ki≤Ki+1
根据本申请的实施方式,时间越靠后的历史使用周期,其算力资源使用率具有越重的权值,相当于,本申请实施方式更加关注与当前时间接近的历史使用周期的算力资源使用率,这样,有利于提升预期使用率Z的准确性。
在一些实施方式中,
Figure BDA0002865836090000022
也就是说,各使用率Zi的权值之和为1。
在一些实施方式中,当i=1时,使用率Zi的权值Ki=1/2N-1;当i≠1时,使用率Zi的权值Ki=1/2N-i+1
在一些实施方式中,第i个历史使用周期的时长为W天,W为正整数;第i个历史使用周期中算力资源的使用率Zi为集合{Zi,1,Zi,2,…,Zi,j,…,Zi,W}中各元素的最大值,其中,Zi,j为第i个历史使用周期的第j天中算力资源的使用率,j为1至W之间的正整数。
在一些实施方式中,Zi,j为第i个历史使用周期的第j天的特定时段中算力资源的使用率,特定时段为当前时间所属的时段。
由于用户在一天的各时段中使用电子设备的习惯有所不同,例如,在上午工作时间,用户在使用电子设备的概率较低;在晚上休息时间,用户使用电子设备的概率较高。因此,根据算力资源在当前时间所在时段内的使用率计算算力资源的预期使用率,具有较高的准确率。
在一些实施方式中,特定时段的时长为1小时。由于计算任务的执行时长通常为1小时左右,因此,本申请实施方式中,特定时段的时长为1小时,以便更准确地反映计算任务执行期间内算力资源的预期使用率。
在一些实施方式中,第i个历史使用周期的时长为一周。由于用户的工作生活通常以一周为一个循环,因此,将一周作为一个历史使用周期更能反映电子设备的真实使用状态。
在一些实施方式中,目标电子设备的峰值算力是根据目标电子设备的硬件编码向量以及第二算力计算模型计算得到的,其中,第二算力计算模型是根据若干台样本电子设备的硬件编码向量训练得到的机器学习模型。
本申请实施方式为计算不同形态电子设备的峰值算力提供了一个统一的方法,具有较高的实用价值。
在一些实施方式中,目标电子设备的硬件编码向量包括目标电子设备的一个或多个硬件中各硬件的硬件编码。
在一些实施方式中,至少部分硬件编码是根据其所对应的硬件的类型信息确定的;和/或,至少部分硬件编码是根据其所对应的硬件的性能信息确定的。
在一些实施方式中,第一算力计算模型和/或第二算力计算模型为XGBoost模型。
在一些实施方式中,目标电子设备的算力资源包括目标电子设备的硬件资源和/或软件资源。
第二方面,本申请实施方式提供了一种控制设备,包括:存储器,用于存储由控制设备的一个或多个处理器执行的指令;处理器,当处理器执行存储器中的指令时,可使得控制设备执行本申请第一方面任一实施方式提供的方法。第二方面能达到的有益效果可参考本申请第一方面任一实施方式的有益效果,此处不再赘述。
第三方面,本申请实施方式提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,该指令在计算机上执行时,可使计算机执行本申请第一方面任一实施方式提供的方法。第三方面能达到的有益效果可参考本申请第一方面任一实施方式的有益效果,此处不再赘述。
附图说明
图1为本申请实施方式的应用场景示意图;
图2a为本申请实施方式提供的任务分发方法的效果示意图一;
图2b为本申请实施方式提供的任务分发方法的效果示意图二;
图3为GXBoost模型的训练方法示意图;
图4a为本申请实施例提供的计算可用算力的方法的原理图一;
图4b为本申请实施例提供的可用算力计算模型的示意图一;
图4c为本申请实施例提供的计算可用算力的方法的流程图一;
图5a为本申请实施例提供的峰值算力计算方法的流程图一;
图5b为本申请实施例提供的硬件编码规则的示意图;
图5c为本申请实施例提供的峰值算力计算模型的示意图;
图6a为本申请实施例提供的计算可用算力的方法的原理图二;
图6b为本申请实施例提供的可用算力计算模型的示意图二;
图6c为本申请实施例提供的计算可用算力的方法的流程图二;
图7为本申请实施例提供的可用算力计算模型的训练数据获取方法流程图;
图8a为本申请实施例提供的算力资源预期使用率的获取方法流程图;
图8b为本申请实施例提供的算力资源使用率数据采集方法流程图;
图9为本申请实施例提供的峰值算力计算方法的流程图二;
图10为本申请实施例提供的控制设备的模块结构示意图;
图11示出了本申请实施方式提供的控制设备的框图;
图12示出了本申请实施方式提供的片上系统(SoC,System on Chip)的结构示意图。
具体实施方式
以下将参考附图详细说明本申请的具体实施方式。
图1示出了一个智能家居示例性场景图。图1中包括智慧屏110、智能音箱120、摄像头130、平板140、手机160等电子设备,各电子设备通过各自的WiFi通信模块连接在家庭网关150上,从而形成一个家庭局域网100。其中,当手机160位于家中时(图中虚线示出),手机160与家庭网关150通信连接,以形成家庭局域网100的一部分;当用户携带手机160外出时,手机160可以与云端服务器200通信连接。基于云端服务器200和家庭局域网100,各电子设备通过发挥各自的功能,可以为用户构建一个智能化的生活场景,从而为用户的日常生活带来便利。
例如,当用户携带手机160外出时,摄像头130开启全景巡航模式(以设定的时间间隔对住宅内部进行360°全景环视),以对用户住宅内的图像进行实时采集。摄像头130在采集到住宅内的图像后,通过家庭网关150将图像数据上传到云端服务器200,并通过云端服务器对图像中出现的人脸图像进行识别。云端服务器200在对人脸图像进行识别后,将识别结果发送至用户随身携带的手机160。当识别结果指示家中有陌生人出现时,手机160向用户发出警示信息,以使得用户可以对家中的异常情况进行处理。因此,通过摄像头130提供的功能,可以为用户提供“放心离家”的用户体验。
在上述实现方式中,摄像头130通过借助云端服务器200的计算能力,完成人脸识别任务,从而可以克服自身算力不足的缺陷。但是,该实现方式存在下述问题:(1)现实场景中存在大量如摄像头130这样的需要借助其他设备完成复杂计算的IoT设备(例如,智能音箱120、温控器、扫地机器人等),如果这些设备的计算任务均通过云端服务器完成,将会对云端算力资源造成较为严重的负担。尤其是当计算任务高度并发时,可能会面临云端服务器计算节点不足的问题;(2)为借助云端服务器的计算能力,IoT设备需要将采集到的本地数据上传到云端服务器,这样可能会带来隐私泄漏的风险。例如,当摄像头130将拍摄到的用户住宅内的图像数据上传到云端服务器后,云端工程师可能会对该图像数据进行人工标注,以将标注后的图像数据作为云端图像识别模型的训练样本数据。在对用户图像数据进行人工标注的过程中,用户的隐私数据存在被泄露的风险。
随着云雾计算技术的发展,在另一些实现方式中,摄像头130无需将采集到的图像数据上传至云端服务器,而是将图像数据发送到本地网络(即家庭局域网100)内的其他电子设备(例如,智慧屏110、平板140)上,以借助这些电子设备的计算能力完成图像识别的任务。该实现方式中,用户图像数据无需上传至云端服务器,从而可以减轻云端服务器的计算负担,也可以降低用户隐私泄露的风险。
本文中,借助其他电子设备的计算能力来完成的计算任务被称为“分布式计算任务(简称“计算任务”)”,例如,上文所述的图像识别任务。
无论是上述哪一种实现方式,均基于计算设备(例如,云端服务器200,智慧屏110)的峰值算力来对分布式计算任务进行分发。即,当分布式计算任务所需的算力为C时,可将其分发至任一峰值算力大于C的计算设备上。
具体地,结合图1示出的场景,对于通过云端服务器(例如,Spark,Yarn,MapReduce等服务器)来进行执行图像识别任务的方式,由于云端服务器的各计算节点仅需承载中心节点(又称“控制节点”)分发来的任务,而无需承载其他计算任务,因此,中心节点接收到来自摄像头130的图像识别任务时,只需根据各计算节点的峰值算力进行任务分发即可。也就是说,当中心节点确定某一计算节点的峰值算力大于图像识别任务所需的算力C时,即可将图像识别任务分发至该计算节点。
对于通过本地计算设备(即家庭局域网100中的电子设备)来进行图像识别的方式,当摄像头130采集到图像数据后,向家庭局域网100中的控制设备(又称:“中心设备”,例如,家庭网关150)发送计算任务分发请求。具体而言,家庭网关150在接收到摄像头130发送的请求后,根据家庭局域网100中各电子设备的峰值算力来进行任务的分发。例如,当家庭网关150确定智慧屏110的峰值算力大于图像识别任务所需的算力C时,可以将人脸识别任务分发至智慧屏110上。
但是,家庭局域网100中的电子设备通常用于满足用户的多样化需求,例如,智慧屏110用于播放电视节目,智能音箱120用于识别用户的语音指令,平板140用于运行各类应用程序(例如,视频应用,购物应用)等,基于峰值算力来进行任务分发可能会影响到目标电子设备(即拟被分发分布式计算任务的电子设备)的正常使用。例如,当智慧屏110正在播放电视节目时,分发至智慧屏110上的图像识别任务可能会影响电视节目的正常播放,这会降低用户体验。
因此,本申请实施方式提供了基于电子设备的可用算力进行任务分发的方法,其中,可用算力是不超过电子设备在当前运行状态下的空闲算力的算力。进一步地,本申请实施方式还提供了计算电子设备的可用算力的方法。因此,当控制设备接收到来自摄像头130的任务分发请求时,可以基于目标电子设备的可用算力进行任务分发,例如,仅当智慧屏110的可用算力大于图像识别任务所需的算力C时,才将图像识别任务分发至智慧屏110上;否则,中心设备将图像设备任务分发至算力合适(即可用算力大于C)的其他电子设备上。可以理解,当基于目标电子设备的可用算力进行任务分发时,可以降低对目标电子设备正常使用的影响。另外,在电子设备执行本地任务(例如,运行本地应用程序)时,相较于基于峰值算力的任务分发方式,基于可用算力的任务分发方式可以对电子设备的空闲算力资源进行有效利用。
表1列出了基于峰值算力进行任务分发和基于可用算力进行任务分发的效果对比。
表1
Figure BDA0002865836090000051
虽然图1中将来自摄像头130的图像识别任务作为分布式计算任务的示例,但本申请不限于此。在其他示例中,计算任务可以是其他类型的任务,例如语音识别、用户行为预测、导航路径规划等AI任务,或者数据库维护、编解码计算、工程计算、图形渲染等非AI任务;分布式计算任务也可以来自智能音箱120、扫地机器人(未示出)、智慧屏110、平板140、手机160等其他设备。
另外,图1所示场景仅是本申请技术方案的示例性应用场景,本申请技术方案也可以应用于其他需要进行互助计算的场景,例如,智慧城市场景,智能工厂场景,智慧交通场景、车联网场景等。
进一步地,由于计算设备的类型(又称“形态”)各异,例如,计算设备的形态可以为PC、手机、智慧屏等,因此,难以通过统一的计算规则计算各种形态的电子设备的峰值算力和/或空闲算力。为此,本申请实施方式中,通过预训练的机器学习模型来计算电子设备的可用算力。在一些实施例中,机器学习模型的输入包括电子设备的峰值算力和电子设备的算力资源的使用率信息,其中,算力资源的使用率信息包括算力资源的当前使用率。由于算力资源的当前使用率对应于电子设备的当前消耗算力,从而也可以间接反映电子设备的当前空闲算力。将电子设备的峰值算力和算力资源的使用率信息输入预训练的机器学习模型,通过运行该模型,可以得到电子设备的可用算力。因此,本实施例提供了一种通用的计算方法,用于计算电子设备的可用算力。
在根据本申请实施方式的提供的方法计算得到目标电子设备的可用算力之后,如果控制设备判断目标电子设备的可用算力大于分布式计算任务所需的算力,则可以将分布式计算任务部署至目标电子设备上。在一些示例中,目标计算设备(例如,智慧屏110)在接收到控制设备部署的计算任务后,显示如图2a或图2b所示的界面。其中,对于图2a,目标电子设备直接开始执行接收到的分布式计算任务;对于图2b,在用户点击“同意”按钮后,目标电子设备才开始执行接收到的分布式计算任务。
以下结合图1中的场景对本申请的技术方案进行说明。在开始介绍具体实施例之前,首先介绍本申请实施例即将涉及的一些概念。
算力:算力用于表示电子设备处理数据的能力,通常用电子设备在单位时间内处理的数据量来衡量,例如,算力可以是电子设备每秒处理的浮点数(单位为:Flop/s,下文将以此作为算力单位的示例)。但本申请不限于此,在其他实施例中,算力也可以通过其他方式进行衡量,例如,电子设备处理设定任务所花费的时间等。
机器学习模型:机器学习模型通过对已知数据进行学习(对应于模型训练阶段),从而可以对未知数据进行预测(对应于模型使用阶段)。在模型训练阶段,基于训练数据集D={(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)}训练数据来对模型中的权重系数进行调整,以使得模型具有一定的预测准确率。其中,训练数据集包括n组(其中,n≥1)训练数据(xi,yi),训练数据(xi,yi)中的xi为输入特征,yi为标签。训练好的机器学习模型可以理解为输入特征x与预测结果y之间映射关系,本文将该映射关系记作y=T(x)。在模型使用阶段,向模型y=T(x)中输入新的特征xn+1,即可得到与特征xn+1对对应的输出yn+1,yn+1即为预测结果。
本申请实施方式中,对机器学习模型的类型不进行限定,机器学习模型可以为决策树算法,神经网络模型,聚类模型等。下文中,以决策树模型的其中一种——XGBoost(Extreme Gradient Boosting)模型为例来介绍本申请的技术方案。XGBoost模型是GBDT(Gtadient Boosting Decision Tree)模型的改进版,XGBoost模型通过对损失函数进行二阶泰勒展开并在代价函数中加入相应正则项,来达到控制模型复杂度,加快收敛速度的目的。以下结合图3简要介绍XGBoost模型的原理,XGBoost模型的其他细节可以参考现有技术中的介绍,不作赘述。
参考图3,XGBoost模型中包括若干棵“决策树”,每棵“决策树”相当于一个“弱”学习器(预测准确率较低的学习器)。对于输入模型的输入特征xn+1,“决策树”经各决策节点的层层决策后,最终落到一片“叶子”上,该“叶子”对应的值为“决策树”的预测值。例如,第1棵决策树的预测值为“叶子13”对应的值y1(n+1)
XGBoost算法通过将多棵树的预测结果相加,形成一个“强”学习器(预测准确率较高的学习器)。例如,对于输入模型的输入特征xn+1,第1棵决策树的预测值为y1(n+1),第2棵决策树的预测值为y2(n+1),……,第K棵决策树的预测值为yK(n+1),那么,XGBoost模型的最终预测结果yn+1=y1(n+1)+y2(n+1)+……+yK(n+1)
示例性地,XGBoost模型的训练过程为:
(1)设定决策树的深度d(即决策树的最大层数)以及收敛误差σ。图3给出的示例中,决策树的深度d=4,收敛误差σ=0.0001;但本申请不限于此,在其他示例中,可以设为深度d=5,收敛误差σ=0.0002等;
(2)构建首棵决策树T1。构建决策树模型T1的过程相当于通过训练数据集D拟合一个函数T1的过程,其中,
Figure BDA0002865836090000061
其中,L为误差函数。本示例对误差函数的类型不进行限定,例如,误差函数可以是均方误差函数L(x)=x2,对数误差函数等;
(3)计算已构建的决策树的全量误差∑iL(yi-T1(xi)),判断是否符合收敛标准∑iL(yi-T1(xi))≤σ,若是,则模型训练结束;若否,则执行步骤(4);
(4)构建下一棵决策树模型Ti,对误差进行拟合。构建决策树模型Ti的过程相当于通过训练数据D拟合一个函数Ti,其中,
Figure BDA0002865836090000071
(5)重复执行步骤(3)和(4),直至符合收敛标准,完成模型构建。训练完成后的模型记为T={T1,T2,……,TK},其中,K为决策树的总棵数。
相当于,XGBoost模型通过对上一棵决策树的预测梯度作为下一棵决策树的目标输出,通过不断添加树,达到对上次预测残差的近似,进而提升模型性能的目的。模型完成构建后,对于输入特征xn+1,将各棵决策树的预测值相加,即可得到XGBoost模型的最终预测结果
Figure BDA0002865836090000072
以下介绍本申请的具体实施例。在下文介绍中,将家庭网关150(简称:网关150)作为控制设备的示例,但本申请不限于此。在其他示例中,控制设备可以为智慧屏110、智能音箱120等其他设备,只要能实现计算任务的分发即可。目标电子设备可以为平板140,笔记本电脑(未示出)等位于家庭局域网100中的设备,也可以为用户随身携带手机160,可穿戴设备等与家庭局域网100通信连接的设备,只要具备一定的计算能力即可。
【实施例一】
本实施例提供一种计算电子设备的可用算力的方法。图4a示出了本实施例提供的可用算力计算方法的理论模型。参考图4a,电子设备的可用算力相当于电子设备的峰值算力减去电子设备实际的消耗算力,换句话说,电子设备的可用算力相当于电子设备的空闲算力。
由于现有技术中没有统一的标准来计算电子设备的峰值算力、当前消耗算力和/或当前空闲算力,因此,本实施例通过预训练的机器学习模型(具体为计算模型M_a)来计算电子设备的可用算力。参考图4b,计算模型M_a(作为第一算力计算模型的一个示例)的输入特征为电子设备的峰值算力、电子设备的算力资源的当前使用率(属于电子设备的算力资源的使用率信息),由于算力资源的当前使用率可用于表征为电子设备的当前消耗算力,因此,通过本实施例提供的计算模型M_a,可以计算电子设备的可用算力。
以下首先介绍计算模型M_a的使用过程(即通过计算模型M_a计算目标电子设备的可用算力的过程),再介绍计算模型M_a的训练过程。为便于理解,在介绍计算M_a的使用过程时,将计算模型M_a抽象为一个黑盒,着重介绍其输入特征的确定方法。
参考图4c,本实施例中,计算目标电子设备的可用算力的方法包括以下步骤:
S110:网关150获取目标电子设备的峰值算力Cmax
电子设备的峰值算力用于表征电子设备的最大计算能力。在一些示例中,电子设备的峰值算力为其理论峰值算力;在另一些示例中,电子设备的峰值算力为其实际峰值算力。
其中,电子设备的理论峰值算力可以根据电子设备处理器的型号计算得到,具体地,理论峰值算力=处理器的主频×处理器每个时钟周期执行浮点运算的次数。
需要说明的是,当电子设备中有多个处理器时,电子设备的理论峰值算力为各处理器的理论峰值算力之和。例如,智慧屏110采用鸿鹄818芯片,鸿鹄818芯片包括4个CPU(2个A73大核和2个A53小核)以及4个GPU(4个Mali-G51 GPU核心),那么,智慧屏110的理论峰值算力为4个CPU和4个GPU的理论峰值算力之和。
理论峰值算力能够一定程度上反映电子设备的运算能力,但并不等于代表电子设备的实际运算能力。这是因为,电子设备的实际运算能力不仅受到各处理器性能的影响,还受到处理器之间的接口能力,操作系统的调度能力等的影响。
为更准确地反映电子设备的实际运算能力,在本示例的另一些示例中,电子设备的峰值算力为其实际峰值算力。电子设备的实际峰值算力用于表征电子设备实际的最大计算能力。
关于电子设备的实际峰值算力的计算方法的示例,将在后文进行进一步的介绍。
S120:网关150获取目标电子设备的算力资源组G1中各项算力资源的当前使用率Q1。
电子设备的算力资源组G1包括电子设备的一项或多项算力资源,电子设备的算力资源可以为电子设备的硬件资源,也可以为电子设备的软件资源。其中,电子设备的硬件资源可以包括下述一个或多个:
处理器:处理器可以是电子设备的CPU、GPU和/或NPU,处理器还可以是电子设备的SoC芯片,例如,HUAWEI Kirin 9000芯片;
存储器:存储器可以是电子设备的内存,电子设备的设备存储等;
电池:对于一些电子设备,当电池容量低于设定阈值(例如,30%)时,CPU会降频运行,因此,电池的使用率也可能会影响到电子设备的算力;
是否插电运行,当电子设备插电运行时,说明电子设备通过外接电源供电;
通信模块:通信模块可以是WiFi通信模块、蓝牙通信模块、NFC通信模块、4G/5G通信模块等;
设备类型(又称设备形态),设备类型可以是手机,智慧屏,车机,平板,智能手表等。同形态的设备,其应用侧重点不同,操作系统对设备中各硬件的调度方式、操作系统在运行时所占用的资源等也有所不同。因此,设备类型在一定程度上会影响电子设备的算力。
电子设备的软件资源可以为下述一个或多个:电子设备安装的应用程序的数量;电子设备支持的进程数量;电子设备运行的任务类型(例如,是否运行显示任务,是否运行计算任务)等。为便于表述,下文中,将算力资源组G1中各项算力资源的使用率简称为“算力资源组G1的使用率”。
本实施例中,当网关150接收到计算任务分发请求时(例如,来自摄像头130的计算任务分发请求),采集目标电子设备的算力资源组G1中各项算力资源的实时使用率,并将采集到实时使用率作为算力资源组G1的当前使用率,但本申请不限于此。例如,在其他示例中,网关150以设定的时间间隔(例如,1小时)采集目标电子设备的算力资源组G1的实时使用率,将接收到计算任务分发请求时,将最新采集到的实时使用率作为目标电子设备的算力资源组G1的当前使用率。
表2以智慧屏110为例,给出了算力资源组G1的当前使用率的一个示例。表2中,第一列为算力资源组G1包括的算力资源选项,第二列为各项算力资源的当前使用量,第三列为各项算力资源的当前使用率。
其中,对于“应用程序数量”选项,当前使用率Q11=当前使用量(表2为10)/安装的应用程序总量;对于“有无显示任务”选项,有显示任务时,当前使用率Q13=100%,没有显示任务时,当前使用率Q13=0%;对于“有无计算任务”选项,有计算任务(例如,AI计算任务、编解码任务和/或图形计算任务等)时,当前使用率Q14=100%,没有计算任务时,当前使用率Q14=0%;对于“电池”选项,如果电子设备中没有电池时,当前使用率Q15=100%,如果电子设备中设有电池,当前使用率Q15=当前使用量/电池容量;对于“内存”选项,当前使用率Q17=当前使用量(表2为1GB)/内存容量;对于“是否有使用NPU”选项,有使用NPU时,当前使用率Q19=100%,不使用NPU时,当前使用率Q19=0%;对于“是否有插电”选项,有插电时,当前使用率Q110=100%,没有插电时,当前使用率Q110=0%。
表2智慧屏110的算力资源组G1的当前使用率
Figure BDA0002865836090000081
Figure BDA0002865836090000091
需要说明的是,表2为算力资源组G1的当前使用率的示例性说明,本领域技术人员可以在此基础上进行其他调整。例如,增加算力资源组G1中的算力资源选项(例如,增加“通信模块”选项),减少算力资源组G1中的算力资源选项(例如,减少“是否有计算任务选项”),替换算力资源组G1中的算力资源选项(例如,将“应用程序数量”选项替换为“进程数量”选项),以及将部分或全部算力资源选项(例如,内存)的“当前使用量”替换为算力资源的“当前剩余量”等。
另外,网关150可以直接从目标电子设备中获取表2第三列中“当前使用率”信息,也可以从目标电子设备获取表2第二列的“当前使用量”信息,之后,网关150根据自身存储的目标电子设备的算力资源配置信息(例如,目标电子设备安装的应用程序总量、内存容量等)等计算目标电子设备的算力资源组G1的当前使用率。
网关150在获取到目标电子设备的算力资源组G1中各项算力资源的当前使用率之后,将各项算力资源的当前使用率Q1i进行组合,得到算力资源组G1的当前使用率Q1。例如,参考表2,智慧屏110的算力资源组G1的当前使用率Q1={Q11,Q12,…,Q110}={0.2,0.5,1,1,1,0.2,0.25,0.4,1,1}。
S130:网关150将目标电子设备的峰值算力Cmax、目标电子设备的算力资源组G1的当前使用率Q1输入计算模型M_a,计算目标电子设备的可用算力。
计算模型M_a是预训练的XGBoost模型,其输入特征x={Cmax,Q1},如上文所述,Cmax为目标电子设备的峰值算力,Q1为目标电子设备的算力资源组G1的当前使用率;其输出是目标电子设备的可用算力。
在通过步骤S110获取到目标电子设备的峰值算力Cmax,通过步骤S120获取目标电子设备的算力资源组G1的当前使用率Q1后,网关150将峰值算力Cmax和当前使用率Q1进行组合,得到计算模型M_a的输入特征x={Cmax,Q1}。之后,网关150将输入特征x={Cmax,Q1}输入计算模型M_a,运行计算模型M_a,即可得到目标电子设备的可用算力。
以下介绍计算模型M_a的训练方法。在计算模型M_a的训练阶段,首先获取用于训练计算模型M_a的样本数据(xa,ya),之后根据训练样本数据对计算模型M_a中的权重系数进行调整,最终得到具有一定预测准确率的计算模型M_a。其中,根据训练样本数据对模型权重系数进行调整的过程可参考现有技术中对XGBoost的相关介绍,以下着重介绍训练样本数据的获取方法。
计算模型M_a的训练样本数据包括样本电子设备的峰值算力Cmax_a、样本电子设备的算力资源组G1的当前使用率Q1_a。本实施例对样本电子设备的设备类型和数量不作限定,样本电子设备可以手机、车机、智慧屏、PC和/或可穿戴设备等,数量可以是1台、5台、20台等。但可以理解,样本电子设备的类型越丰富,样本电子设备的数量越多,越有利于提高计算模型M_a的预测准确率。
计算模型M_a的训练样本数据(xa,ya)的输入特征xa={Cmax_a,Q1_a},其中,Cmax_a为样本电子设备的峰值算力,其计算方法可以参考上文步骤S110中以及下文步骤S111~S113叙述的电子设备峰值算力的计算方法;Q1_a为样本电子设备的算力资源组G1的当前使用率,其确定方法为:当样本电子设备工作于某一状态时(本文称为状态P1),实时采集到的样本电子设备的算力资源组G1的实际使用率,并将采集到的实际使用率作为样本电子设备算力资源组G1的当前使用率Q1_a。之后,在获取到样本电子设备的峰值算力Cmax_a和算力资源组G1的当前使用率Q1_a之后,将两者组合可以得到样本电子设备的输入特征xa
然后,保持样本电子设备的工作状态不变(即保持样本电子设备的算力资源组G1的当前使用率不变),获取训练样本数据(xa,ya)中的标签ya
训练样本数据(xa,ya)中的标签ya为样本电子设备在工作状态P1下的可用算力,其具体获取方法为:保持样本电子设备工作于状态P1,然后在样本电子设备上部署总计算量为Q_a(单位:Flop)的测试任务,并记录样本电子设备完成该测试任务的时长ta(单位:s),得到样本电子设备在工作状态P1下的可用算力Q_a/ta(单位:Flop/s)。本实施例对测试任务的类型不进行限定,在一些示例中测试任务是图像识别任务、视频压缩任务等具有较高运算量的任务;在另一些示例中,测试任务是Linpack等具有标准计算程序的算力测试任务。
本实施例对训练样本数据的数量不进行限定,训练样本数据的数量可以是1组、10组、50组、100组等。可以理解,训练样本数据越多,越有利于提高计算模型M_a的预测准确率。另外,在训练计算模型M_a的过程中,每台样本电子设备可用于获取多组训练样本数据。具体而言,当样本电子设备工作于不同的状态时,其算力资源组G1具有不同的使用率,因此,通过调整样本电子设备的工作状态,可以获取多组训练样本数据。
综上,本实施例提供了一种方法,可以对目标电子设备的可用算力进行计算。这样,网关150在部署计算任务时,可根据目标电子设备的可用算力确定是否在要在目标电子设备上部署计算任务,从而减小对目标电子设备的正常使用的影响。
另外,本实施例提供的方法为不同形态的电子设备提供了一种可用算力的统一计算方法,具有较高的实用性。
在计算得到目标电子设备的可用算力后,网关150可以以目标电子设备的可用算力为依据,进行计算任务的分发。例如,网关150根据待分发任务(例如,来自摄像头130的图像识别任务)的任务类型,确定待分发任务所需的算力。如果目标电子设备的可用算力大于待分发任务所需的算力,则网关150将待分发任务部署至目标电子设备上;如果目标电子设备的可用算力小于待分发任务所需的算力,则网关150重新确定用于部署待分发任务的电子设备。
示例性地,网关150从家庭局域网100中的离线数据库(该离线数据库可以设置在家庭局域网100中的任一电子设备上)查询待分发任务所需的算力。网关150向离线数据库提供待分发任务的任务标识,离线数据库可以返回待分发任务所需的算力。其中,任务标识可以根据待分发任务的任务类型确定,例如,图像识别任务的任务标识为CV,编解码任务的任务标识为C/D。
需要说明的是,本实施例为本申请技术方案的示例性说明,本领域技术人员可以在此基础上进行其他变形。
例如,由于每项算力资源的使用率和该项算力资源的空闲率具有唯一对应关系(即每项算力资源的使用率与该项算力资源的空闲率相加等于1),因此,在一些实施例中,在计算模型M_a的输入特征中,可以将算力资源的使用率调整为空闲率。例如,将算力资源组G1中部分或全部算力资源的当前使用率调整为该部分算力资源的当前空闲率。
另外,本实施例中各步骤的序号并非用于对各步骤的实施顺序进行限定。在满足发明目的前提下,本领域技术人员可以对各步骤的实施顺序进行调整,例如,更换步骤S110、S120的次序等。
以下介绍本实施例提供的计算电子设备的实际峰值算力的方法。本实施例提供的该方法的实施主体可以是网关150,也可以是除网关150以外的其他设备(例如,智慧屏110、智能音箱120)。示例性地,其他设备根据图5a所示的方法计算得到目标电子设备的实际峰值算力后,将实际峰值算力发送至网关150,以使网关150获取到目标电子设备的实际峰值算力。
具体地,参考图5a,本实施例提供的计算目标电子设备的实际峰值算力的方法包括:
S111:获取目标电子设备的硬件配置信息。电子设备的硬件配置信息包括电子设备的一个或多个硬件资源的信息。其中,电子设备的硬件资源的含义请参考步骤S110中的介绍,以下介绍本实施例提供的硬件信息的表示方法。
处理器,处理器信息可以是电子设备的CPU型号、GPU型号、NPU型号等。其中,“CPU型号”例如为A76 2.6GHz,Cortex-A72 2.1GHz等;“GPU型号”例如为Mali-G76,PowerVRGT7800等;NPU型号例如为Big Core,Tiny Core等。处理器信息还可以为电子设备SoC芯片(其上集成了电子设备的CPU、GPU等处理器)的型号信息,例如HUAWEI Kirin 9000,APPLEA14等。
存储器,存储器信息可以是电子设备的各类存储器的容量信息,例如,内存容量、设备存储容量。其中,内存容量例如为4G,8G等,设备存储容量例如为128G,256G,512G等。
电池,电池信息可以是电池容量,例如为3000mAh,5000mAh等;
是否插电运行,当电子设备插电运行时,说明电子设备通过外接电源供电;
通信模块,通信模块信息可以是电子设备支持的最大通信速率,例如,200Mbps;也可以是通信模块的类型信息,例如,蓝牙通信模块、5G通信模块等;
设备类型(又称设备形态),设备类型信息例如为手机,智慧屏,车机,平板,智能手表等。
表3为本实施例提供的智慧屏110的硬件配置信息,其中,第一列为硬件选项,第二列为硬件选项的值。参考表3,智慧屏110的设备SoC芯片型号为“鸿鹄818”,GPU包括4个Mali-G51核心,不包括NPU,内存为4GB,设备存储为64GB,不设电池,通过外接电源供电。
表3智慧屏110的硬件配置信息
Figure BDA0002865836090000111
Figure BDA0002865836090000121
表3为电子设备的硬件配置信息的示例性说明,在其他实施例中,硬件配置信息可以多于表3中的信息(例如,还包括电子设备的通信模块信息),也可以少于表3中的信息(例如,不包括“电池容量”一项)。
示例性地,当电子设备首次加入家庭局域网100时,网关150获取电子设备的硬件配置信息,并按照表3所示的格式将电子设备的硬件配置信息存储在网关150本地。这样,当需要在电子设备上部署计算任务时,网关150可以从本地存储器中读取目标电子设备(例如,智慧屏110)的硬件配置信息,而无需在每次部署计算任务时均向目标电子设备请求其硬件配置信息。
S112:对目标电子设备的硬件配置信息进行编码,以获取目标电子设备的硬件编码向量。
本申请基于机器学习模型(本实施例以XGBoost模型作为示例)计算目标电子设备的实际峰值算力。在步骤S111中,网关150获取到的智慧屏110的硬件信息为文本形式的信息(例如,设备SoC芯片型号通过文本“鸿鹄818”进行表示),而XGBoost模型的输入特征需要是以数字形式表示的信息,因此,需要将电子设备的硬件配置信息从文本形式转化数字形式,该转化过程称为对电子设备的硬件配置信息进行编码,编码后的数字形成电子设备的硬件编码向量。
参考表3,电子设备的硬件配置信息分为两类,一类为硬件类型信息,例如,设备类型,CPU类型等;另一类是硬件性能信息,具体是以数值形式表达的硬件性能,例如,内存容量,电池容量等。对于上述两种不同类型的硬件配置信息,通过不同编码方式进行编码。图5b以智慧屏110和手机160(手机160为HUAWEI Mate 30 8GB+128GB版本)为例示出了本实施例提供的编码规则。
对于第一类硬件配置信息(即硬件类型信息),本实施例为硬件选项的各类型值分配一个唯一编码,并将该唯一编号作为该硬件的编码。例如,对于“设备类型”选项,手机的编码为01(即001B),智慧屏的编码为02(即010B),车机的编码为03(即011B),平板的编码为04(即100B)等;又如,对于“设备SoC芯片型号”选项,鸿鹄818的编码为016,Kirin990的编码为020,Kirin 9000的编码为021,APPLE A14的编码为030;再如,对于“是否插电运行”选项,“是”的编码值为1,“否”的编码值为0。图5b中,按照此规则进行编号的硬件还包括CPU型号、GPU型号,NPU型号,不一一赘述。
进一步地,为节省编码位数,本实施例根据各硬件选项的取值范围,为硬件设定最大编码值(可以理解,最大编码值对应于该硬件的编码位数)。例如,对于CPU类型,设定CPU的最大编码值为256,因而,CPU编码位数为1字节。
对于第二类硬件配置信息(即硬件性能信息),对硬件的性能数值进行数学换算,以得到硬件的编码值。例如,对于通过存储容量表示的性能信息(例如,内存容量,设备存储容量),将存储容量换算为以MB为单位后,再对存储容量进行以2为底数的log运算,并将运算后的值作为硬件的编码值。举例来说,容量为128MB的内存的编码值为7,容量为2GB的内存的编码值为11,容量为64GB的设备存储的编码值为16。通过对性能数值进行数学换算,可使得硬件的编码值具有较少的编码位数。
但本实施例不限于此,本实施例也可以直接将硬件的性能数值作为该硬件的编码值,例如,当电池容量为4200mAh时,直接将电池容量值4200作为电池的编码值。另外,如果电子设备中无相应硬件时,该硬件的编码值为0。例如,当智慧屏110中没有NPU时,NPU的编码值为0。
对表3中的各硬件选项进行编码后,将各硬件的编码值进行组合,可以形成电子设备的硬件编码向量。参考图5b,智慧屏110的硬件编码向量为“020160140240001116000000”,手机160的硬件编码向量为“010200290300101217042000”。
S113:将目标电子设备的硬件编码向量作为输入,运行计算模型M_b(作为第二算力计算模型),得到目标电子设备的实际峰值算力。
计算模型M_b是预训练的XGBoost模型,参考图5c,其输入是电子设备的硬件编码向量,输出是电子设备的实际峰值算力(单位为:Flop/s)。因此,将步骤S112获取到的目标电子设备的硬件编码向量输入计算模型M_b,并运行计算模型M_b之后,即得到目标电子设备的实际峰值算力。
以下介绍计算模型M_b的训练方法。与计算模型M_a类似,在计算模型M_b的训练阶段,首先获取用于训练计算模型M_b的训练样本数据(xb,yb),之后根据训练样本数据(xb,yb)对计算模型M_b中的权重系数进行调整,最终得到具有一定预测准确率的计算模型M_b。同样地,根据训练样本数据对模型权重系数进行调整的过程可参考现有技术中对XGBoost的相关介绍,本文不作赘述,以下着重介绍训练样本数据的获取方法。
计算模型M_b的训练样本数据包括样本电子设备的硬件编码向量和峰值算力。与计算模型M_a的训练过程类似,本实施例对样本电子设备的设备类型和数量不作限定,但可以理解,样本电子设备的类型越丰富,样本电子设备的数量越多,越有利于提高计算模型M_b的预测准确率。
计算模型M_b的训练样本数据(xb,yb)中的输入xb为样本电子设备的硬件编码向量,样本电子设备的硬件编码向量根据上文步骤S112提供的电子设备的编码规则进行确定,不再赘述。
计算模型M_b的训练样本数据(xb,yb)中的标签yb为样本电子设备的实际峰值算力。本实施例中,样本电子设备的实际峰值算力是经测试得到的峰值算力。具体而言,当样本电子设备处于空载状态时(例如,样本电子设备上没有应用程序运行的状态时),在样本电子设备上部署一个总计算量为Q_b(单位:Flop)的测试任务,并记录样本电子设备完成该任务的时长tb(单位:s),那么,样本电子设备的峰值算力为Q_b/tb(单位:Flop/s)。本实施例对测试任务的类型不进行限定,在一些示例中测试任务是图像识别任务、视频压缩任务等具有较高运算量的任务;在另一些示例中,测试任务是Linpack等具有标准计算程序的算力测试任务。
按照上述过程,获取训练样本数据(xb,yb)后,根据训练样本数据(xb,yb)对模型中的权重系数进行调整,即可得到训练完成的计算模型M_b。本实施例对训练样本数据的数量不进行限定,训练样本数据的数量可以是1组、10组、50组、100组等。
综上,步骤S111~S113提供了一种电子设备的峰值算力的计算方法,可以计算电子设备的实际峰值算力。并且,步骤S111~S113基于机器学习模型计算电子设备的实际峰值算力,为计算不同形态电子设备的峰值算力提供了一个统一的方法,具有较高的实用价值。
另外,电子设备的硬件编码向量(即计算模型M_b的输入特征)既包括硬件的类型信息,又包括硬件的性能信息,对于该情况,本实施例将XGBoost模型作为电子设备峰值算力的计算模型,预测结果有较为优异的表现。
以上对目标电子设备的峰值算力的获取方法进行了介绍。在一些示例中,网关150在获取到目标电子设备的峰值算力后,可以将目标电子设备的峰值算力存储在网关150本地,这样,网关150在下次计算目标电子设备的可用算力时,可直接从本地存储中获取目标电子设备的峰值算力,从而节省计算量,提高计算速度。
【实施例二】
本实施例提供另一种计算电子设备的可用算力的方法。图6a示出了本实施例提供的可用算力计算方法的理论模型,与实施例一不同的是,本实施例中,电子设备的可用算力并非相当于电子设备的当前空闲算力,而是不超过当前空闲算力与预期消耗算力的差值,其中,预期消耗算力包括:在未来时段内,电子设备预计用于本地任务(例如,运行本地应用程序)的算力。
为满足用户的多样化需求,目标电子设备上运行的应用程序是动态变化的。例如,在A时刻(例如,8:32PM),用户通过智慧屏110浏览网页;在B时刻(例如,8:50PM),用户通过智慧屏110进行视频通话。而不同的应用所消耗的算力是不一样的。假设A时刻,智慧屏110上的空闲算力为CA,网关150按照空闲算力CA在智慧屏110上部署了算力为C0(其中,C0<CA)的计算任务。当计算任务执行到B时刻时,智慧屏110上运行的应用程序由浏览器应用变化为视频通话应用,如果视频通话应用所消耗的算力大于浏览器应用所消耗的算力的话,部署至智慧屏110上的计算任务可能会对智慧屏110的正常使用产生影响,例如,视频通话画面出现卡顿。
为此,本实施例在计算电子设备的可用算力时,不仅考虑电子设备的当前使用情况,还考虑了电子设备在计算任务执行期间的预期使用情况。具体地,本实施例中,电子设备可用算力与实际消耗算力之和,不超过电子设备的预期空闲算力(预期空闲算力=峰值算力-预期消耗算力),从而,在分布式计算任务执行期间内,电子设备上可以保留较多的算力储备,降低对电子设备正常使用的影响,提高用户体验。
与实施例一相似,本实施例通过预训练的机器学习模型(具体为计算模型M_c)来计算电子设备的可用算力。参考图6b,计算模型M_c的输入特征包括电子设备的峰值算力Cmax、电子设备的算力资源组G1的当前使用率Q1,电子设备的算力资源组G2的预期空闲率Q2(属于电子设备的算力资源的使用率信息),由于算力资源的预期空闲率Q2可用于表征为电子设备的预期空闲算力,因此,通过本实施例提供的计算模型M_c,可以计算电子设备的可用算力。
具体地,参考图6c,本实施例提供计算目标电子设备的可用算力的方法包括:
S210:网关150获取目标电子设备的峰值算力Cmax
网关150获取目标电子设备的峰值算力Cmax的方法与实施例一中步骤S110的叙述实质相同,因此,可以参考实施例一中的叙述,不再赘述。
S220:网关150获取目标电子设备的算力资源组G1的当前使用率Q1。
网关150获取目标电子设备的算力资源的当前使用率Q1的方法与实施例一中步骤S120的叙述实质相同,因此,可以参考实施例一中的叙述,不再赘述。
S230:网关150获取目标电子设备的算力资源组G2中各项算力资源的预期使用率Z。
电子设备的算力资源组G2包括电子设备的一项或多项算力资源,其中,算力资源可以是电子设备的硬件资源,也可以是电子设备的软件资源,具体请参考实施例一步骤S120中的介绍,不再赘述。
算力资源组G2中包括的算力资源的项目可以与算力资源组G1中包括的算力资源的项目相同,也可以与算力资源组G1中包括的算力资源项目不同。由于算力资源的当前使用率是可以经一次采集得到的数据,而算力资源的预期使用率是对多次采集结果进行统计后得到的数据,因此,在一些示例中,算力资源组G1中算力资源项目的数量多于算力资源组G2中算力资源项目的数量。为便于表述,下文中,将算力资源组G2的各项算力资源的使用率简称为“算力资源组G2的使用率”。
表4以智慧屏110为例,给出了算力资源组G2的预期使用率Z的一个示例。从表4看出,本实施例提供的算力资源组G2包括“CPU”、“GPU”、“内存”“NPU”、“电池电量”、“网络带宽”,但本申请不限于此。在其他实施例中,算力资源组G2中的算力资源项目可以多于表4中列出的项目,也可以少于表4中列出的项目。
表4智慧屏110的算力资源组G2的预期使用率Z
算力资源选项 CPU GPU 内存 电池电量 NPU 网络带宽
预期使用率Z 59.2% 28.3% 37.7% 62.5% 12.4% 47.3%
本实施例中,算力资源的预期使用率Z用于表征算力资源在当前时段内预计发生的使用率。本实施例中,算力资源的预期使用率Z是根据算力资源在N个历史使用周期中实际使用率统计得到的,其中,N为正整数。
具体地,假设算力资源在第i个历史使用周期中的使用率为Zi,其中,i为1至N之间的正整数,那么,算力资源的预期使用率Z为各历史使用周期中算力资源的使用率Zi的加权平均值。具体地,算力资源的预期使用率
Figure BDA0002865836090000151
其中,Ki为使用率Zi的权值,且Ki≤Ki+1。也就是说,时间越靠后的历史使用周期,其算力资源使用率具有越重的权值,相当于,本实施例更加关注与当前时间接近的历史使用周期的算力资源使用率,这样,有利于提升预期使用率Z的准确性。在此基础上,本实施例对权值Ki的确定方法不作限定,在一个示例中,当N=10时,可以将K1~K5分别确定为0.05,将K6~K10分别确定为0.15;在另一个示例中,权值Ki根据下文步骤S231~S235所述的方法确定。在一些示例中,
Figure BDA0002865836090000152
也就是说,各使用率Zi的权值之和为1。
在一些实现方式中,各历史使用周期的时长为W天,W为正整数。第i个历史使用周期中算力资源的使用率Zi为集合{Zi,1,Zi,2,…,Zi,j,…,Zi,W}中各元素的最大值,其中Zi,j为第i个历史使用周期的第j天中算力资源的使用率,j为1至W之间的正整数。相当于,对于每一个历史使用周期,其算力资源使用率Zi为该周期中每天的算力资源使用率的最大值。
由于用户的工作生活通常以一周为一个循环,因此,将一周作为一个历史使用周期更能反映电子设备的真实使用状态。为此,本实施例中,每个历史使用周期的时长设为一周,即W=7。但本申请不以此为限,在其他实施例中,每个历史使用周期的时长可以是3天、10天、一个月等其他值。另外,在其他实现方式中,每个历史使用周期的使用率Zi也可以是该周期中各天使用率的平均值,或者为该周期中指定日期(例如,第1天)的使用率等。
在一些实现方式中,Zi,j为第i个历史使用周期的第j天的特定时段中算力资源的使用率,特定时段为当前时间(例如,网关150接收到计算任务分发请求的时间)所属的时段。由于用户在一天的各时段中使用电子设备的习惯有所不同,例如,在上午工作时间,用户在使用电子设备的概率较低;在晚上休息时间,用户使用电子设备的概率较高。因此,根据算力资源在当前时间所在时段内的使用率计算算力资源的预期使用率,具有较高的准确率。
由于计算任务的执行时长通常为1小时左右,因此,本实施例中,特定时段的时长为1小时,以便更准确地反映计算任务执行期间内算力资源的预期使用率。例如,当前时间为22:13时,当前时间所对应的特定时段为22:00~23:00。但本申请不限于此,在其他实施例中,特定时段的时长可以是0.5小时、1.5小时、2小时等其他值。另外,在其他实现方式中,第i个历史使用周期的第j天的使用率Zi,j也可以是该天任意时段(或时刻)的使用率等。
为叙述的连贯性,获取预期使用率Z的具体示例将在本实施例的末尾进行介绍。
S240:网关150获取目标电子设备的算力资源组G2中各项算力资源的预期空闲率Q2。
在通过步骤S200获取到目标电子设备的算力资源组G2的预期使用率后,用1减去各项算力资源的预期使用率,即可得到算力资源组G2的预期空闲率Q2。
表5列出了智慧屏110的算力资源组G2的预期空闲率Q2。
表5智慧屏110的算力资源组G2的预期空闲率Q2(时段22:00~23:00)
CPU GPU 内存 NPU 电池电量 网络带宽
预期使用率Z 59.2% 28.3% 37.7% 62.5% 12.4% 47.3%
预期空闲率Q2=(1-Z) 40.8% 71.7% 62.3% 37.5% 87.6% 52.7%
S250:网关150将目标电子设备的峰值算力Cmax、算力资源组G1的当前使用率Q1、算力资源组G2的预期空闲率Q2输入计算模型M_c(作为第一算力计算模型的另一个示例),计算目标电子设备的可用算力。
计算模型M_c是预训练的XGBoost模型,其输入特征为x={Cmax,Q1,Q2},Cmax为目标电子设备的峰值算力,Q1为目标电子设备的算力资源组G1的当前使用率,Q2为目标电子设备的算力资源组G2的预期空闲率;其输出是目标电子设备的可用算力。
在通过步骤S210获取目标电子设备的峰值算力Cmax,通过步骤S220获取目标电子设备的算力资源组G1的当前使用率Q1,通过步骤S240获取目标电子设备的算力资源组G2的预期空闲率Q2之后,网关150将峰值算力Cmax、当前使用率Q1和预期空闲率Q2进行组合,得到输入特征x={Cmax,Q1,Q2}。之后,网关150将输入特征x={Cmax,Q1,Q2}输入计算模型M_c,运行计算模型M_c,即可得到目标电子设备的可用算力。
以下介绍计算模型M_c的训练方法。与计算模型M_a、M_b类似,在计算模型M_c的训练阶段,首先获取用于训练计算模型M_c的样本数据(xc,yc),之后根据训练样本数据对计算模型M_c中的权重系数进行调整,最终得到具有一定预测准确率的计算模型M_c。根据训练样本数据对计算模型M_c的权重系数进行调整的过程可参考现有技术中对XGBoost的相关介绍,以下着重介绍训练样本数据的获取方法。
计算模型M_c的训练样本数据包括样本电子设备的峰值算力Cmax_c、样本电子设备算力资源组G1的当前使用率Q1_c以及样本电子设备的算力资源组G2的预期空闲率Q2_c。本实施例对样本电子设备的设备类型和数量不作限定,但可以理解,样本电子设备的类型越丰富,样本电子设备的数量越多,越有利于提高计算模型M_c的预测准确率。
计算模型M_c的训练样本数据(xc,yc)中的输入特征xc={Cmax_c,Q1_c,Q2_c},其中,Cmax_c为样本电子设备的峰值算力,Q1_c为样本电子设备的算力资源组G1的当前使用率,Q2_c为样本电子设备的算力资源组G2的预期空闲率。训练样本数据(xc,yc)中的标签yc为样本电子设备的可用算力(单位:Flop/s)。
图7示出了本实施例提供的训练样本数据(xc,yc)的确定方法。本实施例对图7所示方法的实施主体不进行限定。图7所示方法的实施主体可以是家庭局域网100中的设备,也可以是家庭局域网100以外的设备;其可以是PC,也可以是服务器等。
具体地,参考图7,计算模型M_c的训练样本数据(xc,yc)的确定方法包括:
S251:确定样本电子设备的峰值算力Cmax_c,峰值算力Cmax_c的确定方法与实施例一步骤S110、步骤S111~S113中电子设备峰值算力Cmax的确定方法实质相同,因此可参考实施例一的叙述,不再赘述。
S252:确定样本电子设备的算力资源组G1的当前使用率Q1_c。当样本电子设备工作于某一状态时(本文称该状态为“状态P2”),实时采集样本电子设备的算力资源组G1中各项算力资源的使用率,并将采集到的使用率作为样本电子设备的算力资源组G1的当前使用率Q1_c。
S253:确定样本电子设备的算力资源组G2的预期空闲率Q2_c。算力资源组G2的预期空闲率Q2_c用于反映样本电子设备的预期空闲状态。在一些示例中,算力资源组G2的预期空闲率Q2_c根据经验确定;在另一些示例中,首先根据下文图8a和图8b所示的方法确定样本电子设备的算力资源组G2的预期使用率Z_c,再用1减去预期使用率Z_c后,得到样本电子设备的算力资源组G2的预期空闲率Q2_c(即表5示出的方法);在另一些示例中,算力资源组G2的预期空闲率Q2_c可以在一定的范围内随机确定。例如,在0~40%的范围内,确定样本电子设备算力资源组G2中各项算力资源的预期空闲率Q2_c。示例性地,样本电子设备的算力资源组G2的预期空闲率Q2_c={0.32,0.28,0.33,0.39,0.33,0.42}。
S254:确定样本电子设备的可用算力C_c。
保持样本电子设备工作于状态P2,然后在样本电子设备上部署计算量为Q_c(单位:Flop)的测试任务T_c,并记录样本电子设备完成测试任务T_c的时长tc(单位:s)。
在样本电子设备完成测试任务T_c的过程中,实时采集样本电子设备算力资源组G2中各项算力资源的使用率。如果算力资源组G2中各项算力资源的使用率均不超过步骤S253确定的该项算力资源的预期空闲率Q2_c,则说明测试任务Tc部署成功(表6给出了测试任务Tc部署成功的一个示例),此时,将样本电子设备的可用算力确定为C_c=Q_c/tc;否则,调整部署在样本电子设备上的测试任务,直至测试任务部署成功。
表6测试任务T_c部署成功的示例
Figure BDA0002865836090000171
S255:确定训练样本数据(xc,yc),其中,xc={Cmax_c,Q1_c,Q2_c},yc=C_c。
步骤S251~S255介绍了其中一组训练样本数据(xc,yc)的获取过程,按照步骤S251~S255示出的方法,通过更换样本电子设备、调整样本电子设备中的算力资源组G1的当前使用率Q1_c、和/或调整样本电子设备中的算力资源组G2的预期空闲率Q2_c,可以获取多组训练样本数据。与计算模型M_a的训练过程类似,每台样本电子设备可用于获取多个训练样本数据。具体而言,通过调整样本电子设备的工作状态(即调整样本电子设备的算力资源组G1的当前使用率Q1_c),和/或调整样本电子设备的算力资源组G2的预期空闲率Q2_c,可以通过该样本电子设备获取多组训练样本数据。
在计算得到目标电子设备的可用算力后,网关150可以以目标电子设备的可用算力为依据,进行计算任务的分发。其具体示例请参考实施例一的叙述,不再赘述。
以上介绍了本实施例提供的计算目标电子设备的可用算力的方法。需要说明的是,本实施例为本申请技术方案的示例性说明,本领域技术人员可以在本实施例的基础上进行其他变形。
例如,由于每项算力资源的使用率和该项算力资源的空闲率具有唯一对应关系(即每项算力资源的使用率与该项算力资源的空闲率相加等于1),因此,在一些实施例中,在计算模型M_c的输入特征中,可以将算力资源的使用率调整为空闲率;或将算力资源的空闲率调整为使用率。例如,将算力资源组G1中部分或全部算力资源的当前使用率调整为该部分算力资源的当前空闲率,和/或,算力资源组G2中部分或全部算力资源的预期空闲率调整为该部分算力资源的预期使用率。
另外,本实施例中各步骤的序号并非用于对各步骤的实施顺序进行限定。在满足发明目的前提下,本领域技术人员可以对各步骤的实施顺序进行调整,例如,更换步骤S210、S220、S240的次序等。
以下结合图8a,以智慧屏110为例,介绍本实施例提供的预期使用率Z获取方法的具体示例。在以下示例中,每个历史使用周期的时长为1周,每个特定时段的时长为1小时。并且,为表述方便,在部分叙述中,将算力资源的使用率简称为“使用率”。
另外,图8a所示方法的实施主体可以是网关150(下文以网关150为例进行介绍),也可以是除网关150以外的其他设备(例如,智慧屏110、智能音箱120)。如果实施主体是其他设备,网关150在部署分布式计算任务时,可以从该设备读取算力资源的预期使用率Z。
参考图8a,本示例提供的电子设备的算力资源的预期使用率Z的确定方法,包括以下步骤:
S231:网关150获取智慧屏110的算力资源在第i周第j天的使用率。
表7示例性地列出了智慧屏110的算力资源组G2中的各项算力资源在第i周第j天的使用率Zi,j。参考表7,本实施例中,将一天划分为24个时段(每个时段作为一个特定时段),网关150分别获取算力资源在每个时段(即每小时)中的使用率。
表7智慧屏110的算力资源组G2在第i周第j天的使用率Zij
Figure BDA0002865836090000181
对于每个时段,本实施例通过图8b所示的步骤获取算力资源的使用率。以下对图8b中的各步骤进行具体说明。
S231a:网关150确定是否接收到来自电子设备的数据采集请求,其中,电子设备可以为家庭局域网100中的任一电子设备,也可以是家庭局域网100以外的与家庭局域网100通信连接的其他电子设备。以下以智慧屏110为例进行说明。
在一个时段中,如果智慧屏110发生高负载任务,向网关150发送使用率数据采集请求。网关150在接收到该采集请求后,执行步骤S231b(采集智慧屏110算力资源的使用率数据),直至智慧屏110上的高负载任务结束;如果在一个时段中,智慧屏110始终没有发生高负载任务,则网关150不会接收到来自智慧屏110的使用率数据采集请求,此时,网关150执行步骤S231d。
示例性地,当智慧屏110的关键硬件(例如,CPU、GPU或内存)的使用率高于设定阈值(例如,40%)时,智慧屏110确定其发生高负载任务,因此向网关150发送使用率数据采集请求;当智慧屏110的关键硬件的使用率降低至设定阈值(例如,30%)以下时,智慧屏110确定高负载任务运行结束,因此向网关150发送高负载任务结束信号,并停止向网关150发送算力资源的使用率信息。但申请不限于此,在其他实施例中,智慧屏110以其他方式确定高负载任务的开始和结束。例如,当智慧屏110在运行某些特定类型的应用程序(例如,视频压缩应用)时,智慧屏110确定其在执行高负载任务;当该特定类型的应用程序结束运行时,智慧屏110确定高负载任务结束。
S231b:网关150获取电子设备算力资源的使用率数据。
当网关150接收到智慧屏110的使用率数据采集请求后,向智慧屏110发送使用率数据采集指令。响应于该指令,智慧屏110以1分钟为时间间隔向网关150发送其算力资源的使用率,直至智慧屏110结束执行高负载任务。
本实施例中,网关150以“分钟”为颗粒度获取智慧屏110的算力资源的使用率。但本申请不限于此,在其他实施例中,网关150可以以“0.5分钟”、“2分钟”等其他颗粒度获取智慧屏110的算力资源使用率。
S231c:网关150根据获取到的使用率数据,计算电子设备算力资源在当前时段的使用率。根据步骤S231b,对于每项算力资源,网关150获取到该算力资源在当前时段中的多个使用率数据。网关150对该多个使用率数据取平均值,得到该算力资源在当前时段中的使用率。
以表7所示时段22:00~23:00为例。示例性地,在时段22:00~23:00中,智慧屏110执行高负载任务的时间为22:12至22:40(共29分钟),因此,智慧屏110向网关150发送29组使用率数据。网关150将29组使用率数据取平均值后,即得到算力资源在时段22:00~23:00的使用率。例如,在22:12至22:40,CPU的使用率分别为a1~a29,那么,网关150将a1~a29取平均平均值后,得到CPU在时段22:00~23:00中的使用率(a1+a2+…+a29)/29。
S231d:网关150将算力资源在当前时段中的使用率确定为0。
如果在一个时段中(例如,表7所示1:00~2:00时段),智慧屏110始终没有发生高负载任务(即网关150没有接受到来自智慧屏110的使用率数据采集请求),网关150将智慧屏110算力资源在该时段中的使用率确定为0。
需要说明的是,本实施例为本申请技术方案的示例性说明,本领域技术人员可以进行其他变形。
例如,在另一个实施例中,智慧屏110不向网关150发送算力资源的使用率,而是向网关150发送算力资源的使用量绝对值(例如,内存的使用量或剩余量,网络的上下行速率等),网关150在接收到算力资源的使用量绝对值后,将其换算成算力资源的使用率。
又如,在另一个实施例中,各时间段的起始时间为时钟半点,而非时钟整点,例如,第1个时间段为0:30~1:30,第2个时间段为1:30~2:30等等。
S232:网关150更新临时存储的算力资源使用率Zi-temp
网关150中临时存储有算力资源使用率Zi-temp,使用率Zi-temp是第i周第1~(j-1)天获取到的算力资源使用率Zi,1~Zi,j中的最大值。示例性,网关150以<日期,设备名>作为使用率Zi-temp的存储标识。以智慧屏为例,该存储标识为<第j-1天,智慧屏>。
每一天结束之后,网关150根据当天获取到的算力资源使用率Zi,j(即表7),对网关150中临时存储的算力资源的使用率Zi-temp进行更新。当网关150获取到当天(第j天)的使用率Zi,j之后,将Zi,j与网关150中临时存储的Zi-temp的进行比较,取其大者替换原来存储的Zi-temp,以对临时存储的使用率Zi-temp进行更新,并将使用率Zi-temp的存储标识更新为<第j天,智慧屏>。
举例来说,当j=1时,更新后的Zi-temp=Zi,1;当j≥2时,更新后的使用率Zi-temp=max{Zi,1,Zi,2,…,Zi,j}。
为便于理解,表8以j=4为例,示出了使用率Zi-temp的更新方法。为节省篇幅,表8中仅示出了时段22:00~23:00的情况。
表8使用率Zi-temp的更新方法(时段22:00~23:00)
Figure BDA0002865836090000201
S233:网关150判断j是否等于第i周的最大天数W(本实施例中,W=7),如果j等于W,则说明当前周期结束,网关150进一步执行步骤S234;如果j小于7,网关150将j的值增加1,并返回执行步骤S231。
S234:当j达到当前周期的最大天数W后,网关150将当前存储的使用率Zi-temp确定为算力资源在第i周的使用率Zi
根据本实施例提供的方法,网关150中仅需存储使用率Zi-temp即可,而无需存储每天获取到使用率Zi,j,因此可以节省存储容量。但本申请不限于此,在其他实施例中,网关150可以存储每天获取到的使用率Zi,1~Zi,7,在当前周期结束后,确定Zi,1~Zi,7中的最大值,并将该最大值作为当前周期的使用率Zi
S235:网关150在获取第i周(i=N)的使用率ZN之后,根据使用率ZN更新算力资源的预期使用率Z。
网关150在获取到第1周的使用率Z1后(即N=1),将预期使用率Z确定为Z=Z1
网关150在获取到第2周的使用率Z2后(即N=2),将第2周的使用率Z2与第1周确定的预期使用率Z=Z1进行平均,得到更新后的预期使用率Z=(Z1+Z2)/2;
网关150在获取到第3周的使用率Z3后(即N=3),将第3周的使用率Z3与第2周确定的预期使用率Z=(Z1+Z2)/2进行平均,得到更新后的预期使用率
Figure BDA0002865836090000202
……;
网关150在获取到第N周的使用率ZN,将第N周的使用率与第N-1周确定的预期使用率Z进行平均,得到更新后的预期使用率率
Figure BDA0002865836090000211
其中,i为1至N之间的正整数,Zi为第i周的使用率,Ki为Zi的权值。并且,当i=1时,Ki=1/2N-1;当i≠1时,Ki=1/2N-i+1
为便于理解,表9以N=4为例,示出了预期使用率Z的更新方法。与表8相似,为节省篇幅,表9中仅示出了时段22:00~23:00的情况。
表9预期使用率Z的确定方法(时段22:00~23:00)
Figure BDA0002865836090000212
另外,上文表5、表7、表8和表9以时段22:00~23:00为例介绍了算力资源组G2的预期使用率和预期空闲率的获取方法,根据上文所述的方法,可以获取一天其他时段的预期使用率和预期空闲率。当网关接收到计算任务分发请求时,确定当前时间(例如,网关的系统当前时间)所属的时段,并使用该时段中算力资源组G2的预期空闲率Q2形成输入至计算模型M_c的输入特征x={Cmax,Q1,Q2},以得到更准确的预测效果。
【实施例三】
本实施例基于实施例一和实施例二。本实施例提供一种电子设备的峰值算力的获取方法,具体为对实施例一和实施例二的峰值算力获取方法(即步骤S110、S210)的改进。
在实际应用过程中,目标电子设备可能是新加入家庭局域网100的设备。当目标电子设备是新加入家庭局域网100的设备时,网关150存储的硬件编码规则有可能不能覆盖该新设备的硬件。此时,网关150无法按照既有规则对新设备进行编码,进而不能按照步骤S111~S113计算目标电子设备的实际峰值算力。本实施例用于解决该技术问题。
参考图9,本实施例提供的目标电子设备的峰值算力的获取方法包括:
S301:网关150接收到计算任务分发请求。例如,网关150接收到来自摄像头130的图像识别任务。
S302:网关150判断目标电子设备是否为新加入家庭局域网100的电子设备。
网关150在与其通信连接的电子设备中确定目标电子设备,例如,将平板140作为目标电子设备。之后,网关150根据目标电子设备的身份标识信息确定该设备是否为新加入家庭局域网100中的电子设备,其中,电子设备的身份标识信息可以为电子设备的MAC地址、设备名称等,只要能在家庭局域网100中唯一标识该电子设备的身份即可。
如果网关150判断目标电子设备为新加入家庭局域网100的设备,则执行步骤S303;如果网关150判断目标电子设备为家庭局域网100中原有的设备,则网关150中存储有目标电子设备的硬件配置信息,网关150可以直接执行步骤S311、S312、S313,以获取目标电子设备的峰值算力。
S303:网关150采集目标电子设备的硬件配置信息。
网关150向目标电子设备发送硬件信息采集请求,目标电子设备在接收到该请求后,向网关150发送自身的硬件配置信息,例如,目标电子设备向网关150发送表3所示硬件选项的硬件配置信息。
S304:网关150将目标电子设备的硬件配置信息添加至硬件配置信息数据库。
网关150在接收到目标电子设备发送的硬件配置信息后,按照表3所示的格式,存储目标电子设备的硬件配置信息,以供下次查询。
S305:网关150判断本地存储的硬件编码规则是否可以覆盖目标电子设备的硬件。
网关150在获取到目标电子设备的硬件配置信息后,查询本地存储的硬件编码规则是否可以覆盖目标电子设备的硬件,也就是说,本地存储的硬件编码规则是否足以对目标电子设备的硬件进行编码。
以硬件选项“设备SoC芯片型号”为例,本地存储的硬件编码规则包括:Kirin 950的编码值为018,Kirin 955的编码值为019,Kirin 990的编码值为010,但不包括Kirin9000的编码值。如果目标电子设备的设备SoC芯片型号为Kirin 990,则本地存储的硬件编码规则可以覆盖该硬件;如果目标电子设备的设备SoC芯片型号为Kirin 9000,则本地存储的硬件编码规则可以不能覆盖该硬件。
如果网关150本地存储的硬件编码规则可以覆盖目标电子设备的硬件,则执行步骤S312、S313,以计算目标电子设备的峰值算力;如果网关150本地存储的硬件编码规则不能覆盖目标电子设备的硬件,则进一步执行步骤S306。
S306:网关150确定用于测试目标电子设备的峰值算力的测试任务。
当网关150中存储的硬件编码规则不能覆盖目标电子设备的硬件时,需要通过测试获取目标电子设备的实际峰值算力,并根据测试结果更新存储的硬件编码规则和计算模型M_b。为对目标电子设备的实际峰值算力进行测试,本实施例首先确定用于测试目标电子设备的峰值算力的测试任务。
在一些示例中,网关150根据目标电子设备的设备类型确定测试任务。具体地,家庭局域网100中存储有计算量各不相同的多个测试任务,多个测试任务计算量标签分别为高、中、低等。当目标电子设备为手机、平板、PC、智慧屏等具有较强计算能力的电子设备时,网关150选择计算量标签为“高”的测试任务作为目标电子设备的测试任务;当目标电子设备为智能音箱、智能手表等具有中等计算能力的电子设备时,网关150选择计算量标签为“中”的测试任务作为目标电子设备的测试任务;当目标电子设备为摄像头、扫地机器人、智能手环等具有较低计算能力的电子设备时,网关150选择计算量标签为“低”的测试任务作为目标电子设备的测试任务。
S307:网关150测试目标电子设备的峰值算力。
使目标电子设备处于空载状态(例如,目标电子设备上没有应用程序运行的状态)。网关150通过家庭局域网100将步骤S206确定的测试任务分发至目标电子设备中,然后再通过分布式调度(例如,“鸿蒙”系统的分布式调度功能)控制目标电子设备执行该测试任务。目标电子设备在完成测试任务之后,向网关150反馈测试任务的执行时长td
之后,网关150根据测试任务的总计算量为Q_d(单位:Flop),以及目标电子设备完成该任务的时长td(单位:s),计算目标电子设备的实际峰值算力。具体地,目标电子设备的实际峰值算力为Q_d/td(单位:Flop/s)。
S308:网关150更新本地存储的硬件编码规则,并对目标电子设备的硬件进行编码。
当网关150中存储的硬件编码规则不能覆盖目标电子设备的硬件时,网关150对该不能覆盖的硬件分配编码值,并存储为该硬件与新分配的编码值之间的对应关系,以更新本地存储的硬件编码规则。
例如,当目标电子设备的设备SoC芯片型号为Kirin 9000时,网关150为在未使用的编码值中为型号为Kirin 9000的设备SoC芯片分配编码值(例如,021),并存储“Kirin9000”与“021”的对应关系,以对本地存储的硬件编码规则进行更新。
网关150在更新硬件编码规则后,对目标电子设备的硬件进行编码,以获取目标电子设备的硬件编码向量。
S309:网关150更新计算模型M_b。
网关150将步骤S308确定的目标电子设备的硬件编码向量作为输入,将步骤S307确定的目标电子设备的实际峰值算力作为标签,对计算模型M_b进行训练(即对计算模型M_b中的权重系数进行调整),以更新计算模型M_b。
S311:网关150读取存储的目标电子设备的硬件配置信息。
当目标电子设备为家庭局域网100中的已有设备时,网关150存储有目标电子设备的硬件配置信息,网关150从本地存储中读取目标电子设备的硬件配置信息,并进一步执行步骤S312。
S312、S313:分别与实施例一中的步骤S112、S113相同,因此可以参考实施例一中的叙述,不再赘述。
S321:网关150获取目标电子设备的实际峰值算力。
参考图9,当目标电子设备为新加入家庭局域网150的电子设备时,网关150将步骤S307得到的峰值算力作为目标电子设备的实际峰值算力;当目标电子设备为家庭局域网150中已有的电子设备时,网关150将步骤S313计算得到的峰值算力确定为目标电子设备的实际峰值算力。
以下结合图9说明根据本申请实施例提供的控制设备300。参考图9,本申请实施例提供了一种控制设备300,该控制设备包括信息采集模块M100、信息存储模块M200、峰值算力计算模块M300、可用算力计算模块M400以及API接口M500。
信息采集模块M100包括:
(1)硬件配置信息采集模块M110,用于采集电子设备的硬件配置信息,并将采集到的硬件配置信息写入硬件配置信息数据库M210。模块M110所执行的功能可以与图5a中的步骤S111、图9中的步骤S303、S304相对应;
(2)使用率采集模块M120,用于采集电子设备的算力资源的当前使用率,并将采集到的当前使用率发送到可用算力实时计算模块M420;以及,基于使用率信息获取模块M410发出的使用率数据采集指令,接收来自电子设备的使用率数据,并将接收到的使用率数据发送至历史使用率信息获取模块M410。模块M120还包括使用率信息临时存储模块M121,模块121模块用于临时存储模块M410确定的算力资源使用率Zi-temp。模块M120所执行的功能可以与图8a中的步骤S231相对应。
信息存储模块M200包括:
(1)硬件配置信息数据库M210:用于存储硬件配置信息采集模块M210采集到的电子设备的硬件配置信息;
(2)历史使用率信息数据库M220:用于存储历史使用率信息获取模块M410确定的电子设备算力资源的预期使用率。
峰值算力计算模块M310包括:
(1)硬件编码模块M310:用于存储电子设备的硬件编码规则;以及,从硬件配置信息数据库M310中读取电子设备的硬件编码信息,对目标电子设备的硬件进行编码,得到目标电子设备的硬件编码向量;以及,将目标电子设备的硬件编码向量发送至在网设备峰值算力计算模块M320。模块M310所执行的功能可以与图5a中的步骤S112、图9中的步骤S312相对应;
(2)在网设备峰值算力计算模块M320:用于存储算力计算模型M_b;以及,接收来自模块M320的硬件编码向量,将硬件编码向量输入计算模型M_b,计算目标电子设备实际峰值算力;以及,向可用算力实时计算模块M420输出目标电子设备的实际峰值算力。模块320所执行的功能可以与图5a中的步骤S113、图9中的步骤S313、S321相对应;
(3)新入网设备峰值算力计算模块M330:用于判断目标电子设备是否为新入网的设备;以及,确定用于测试目标电子设备的峰值算力的测试任务,并基于该测试任务测试目标电子设备的实际峰值算力;以及,基于新入网设备的硬件编码向量和新入网设备的峰值算力,更新模块M320中的计算模型M_b以及模块M310中的硬件编码规则;以及,向模块M420输出新入网设备的实际峰值算力。模块330所执行的功能可以与图9中的步骤S301、S302、S305~S309、S321相对应。
可用算力计算模块M400包括:
(1)历史使用率信息获取模块M410:用于接收来自电子设备的使用率数据采集请求,并基于该请求向电子设备发送使用率数据采集指令;以及,接收来自使用率采集模块M130的使用率数据,并且基于该使用率数据计算电子设备的预期使用率;以及,将计算得到的电子设备的预期使用率写入历史使用率信息数据库M220。模块410所执行的功能可以与图8a中的步骤S232~S235、图8b中的步骤S231a~S231d相对应。
(2)可用算力实时计算模块M420:用于接收来自模块M120的电子设备算力资源的当前使用率;并且,接收来自模块M320或模块M330的目标电子设备的峰值算力;并且,从历史使用率信息数据库M220读取目标电子设备的预期使用率,并根据读取到的预期使用率计算目标电子设备的预期空闲率;以及,用于存储算力计算模型M_a和/或M_c,并将目标电子设备的峰值算力、目标电子设备算力资源的当前使用率、目标电子设备算力资源的预期空闲率数输入计算模型M_a和/或M_c,计算目标设备的可用算力;以及,向控制设备300中的其他应用和/或控制设备300以外的其他电子设备输出目标电子设备的可用算力。模块M420所执行的功能可以与图4c步骤S110~S130、图6c步骤S210~S250、图9中的步骤S311相对应。
API接口M500:模块M100~M400与控制设备300中其他模块(例如,分布式调度模块,应用程序(例如,视频应用,远程监控应用等)模块等)的连接接口。其他模块可以通过API接口M500读取模块M100~M400中的信息,例如,读取模块M420计算得到的可用算力。
现在参考图11,所示为根据本申请的一个实施例的控制设备400的框图。控制设备400可以包括耦合到控制器中枢403的一个或多个处理器401。对于至少一个实施例,控制器中枢403经由诸如前端总线(FSB,Front Side Bus)之类的多分支总线、诸如快速通道连(QPI,QuickPath Interconnect)之类的点对点接口、或者类似的连接406与处理器401进行通信。处理器401执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢403包括,但不局限于,图形存储器控制器中枢(GMCH,Graphics&Memory Controller Hub)(未示出)和输入/输出中枢(IOH,Input Output Hub)(其可以在分开的芯片上)(未示出),其中GMCH包括存储器和图形控制器并与IOH耦合。
控制设备400还可包括耦合到控制器中枢403的协处理器402和存储器404。或者,存储器和GMCH中的一个或两者可以被集成在处理器内(如本申请中所描述的),存储器404和协处理器402直接耦合到处理器401以及控制器中枢403,控制器中枢403与IOH处于单个芯片中。
存储器404可以是例如动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、相变存储器(PCM,Phase Change Memory)或这两者的组合。存储器404中可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个执行时导致控制设备400实施如图4c、图5a、图6c、图7、图8a、图8b和/或图9所示方法的指令。当指令在计算机上运行时,使得计算机执行上述实施例一、实施例二和/或实施例三公开的方法。
在一个实施例中,协处理器402是专用处理器,诸如例如高吞吐量MIC(ManyIntegrated Core,集成众核)处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU(General-purpose computing on graphics processing units,图形处理单元上的通用计算)、或嵌入式处理器等等。协处理器402的任选性质用虚线表示在图11中。
在一个实施例中,控制设备400可以进一步包括网络接口(NIC,NetworkInterface Controller)406。网络接口406可以包括收发器,用于为控制设备400提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口406可以与控制设备400的其他组件集成。网络接口406可以实现上述实施例中的通信单元的功能。
控制设备400可以进一步包括输入/输出(I/O,Input/Output)设备405。I/O405可以包括:用户界面,该设计使得用户能够与控制设备400进行交互;外围组件接口的设计使得外围组件也能够与控制设备400交互;和/或传感器设计用于确定与控制设备400相关的环境条件和/或位置信息。
值得注意的是,图11仅是示例性的。即虽然图11中示出了控制设备400包括处理器401、控制器中枢403、存储器404等多个器件,但是,在实际的应用中,使用本申请各方法的设备,可以仅包括控制设备400各器件中的一部分器件,例如,可以仅包含处理器401和网络接口406。图11中可选器件的性质用虚线示出。
现在参考图12,所示为根据本申请的一实施例的SoC(System on Chip,片上系统)500的框图。在图12中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图12中,SoC500包括:互连单元550,其被耦合至处理器510;系统代理单元580;总线控制器单元590;集成存储器控制器单元540;一组或一个或多个协处理器520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM,StaticRandom access Memory)单元530;直接存储器存取(DMA,Direct Memory Access)单元560。在一个实施例中,协处理器520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU(General-purpose computing on graphics processing units,图形处理单元上的通用计算)、高吞吐量MIC处理器、或嵌入式处理器等。
静态随机存取存储器(SRAM)单元530可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个执行时导致SoC实施如图4c、图5a、图6c、图7、图8a、图8b和/或图9所示方法的指令。当指令在计算机上运行时,使得计算机执行上述实施例一、实施例二和/或实施例三中公开的方法。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的各方法实施方式均可以以软件、磁件、固件等方式实现。
可将程序代码应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP,Digital Signal Processor)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在计算机可读存储介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP(Intellectual Property,知识产权)核”的这些表示可以被存储在有形的计算机可读存储介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。

Claims (16)

1.一种计算电子设备的算力的方法,其特征在于,包括:
获取目标电子设备的峰值算力;
获取所述目标电子设备的算力资源的使用率信息,所述使用率信息包括所述目标电子设备的一项或多项算力资源中各项算力资源的当前使用率或当前空闲率;
将所述峰值算力和所述当前使用率信息作为输入,运行预设的第一算力计算模型,得到所述目标电子设备的可用算力;其中,所述第一算力计算模型是根据若干台样本电子设备的峰值算力以及所述样本电子设备的使用率信息训练得到的机器学习模型。
2.根据权利要求1所示的方法,其特征在于,所述使用率信息还包括所述目标电子设备的一项或多项算力资源中各项算力资源的预期使用率或预期空闲率。
3.根据权利要求2所述的方法,其特征在于,所述算力资源的预期使用率是根据N个历史使用周期中所述算力资源的使用率确定的,N为正整数,N个所述历史使用周期按照时间先后顺序依次排列;
所述预期使用率
Figure FDA0002865836080000011
其中,i为1至N之间的正整数,Zi为第i个历史使用周期中所述算力资源的使用率;Ki为使用率Zi的权值,且Ki≤Ki+1
4.根据权利要求3所述的方法,其特征在于,
Figure FDA0002865836080000012
5.根据权利要求3所述的方法,其特征在于,当i=1时,使用率Zi的权值Ki=1/2N-1;当i≠1时,使用率Zi的权值Ki=1/2N-i+1
6.根据权利要求3所述的方法,其特征在于,所述第i个历史使用周期的时长为W天,W为正整数;
第i个历史使用周期中所述算力资源的使用率Zi为集合{Zi,1,Zi,2,…,Zi,j,…,Zi,W}中各元素的最大值,其中,Zi,j为所述第i个历史使用周期的第j天中所述算力资源的使用率,j为1至W之间的正整数。
7.根据权利要求6所述的方法,其特征在于,Zi,j为第i个历史使用周期的第j天的特定时段中所述算力资源的使用率,所述特定时段为当前时间所属的时段。
8.根据权利要求7所述的方法,其特征在于,所述特定时段的时长为1小时。
9.根据权利要求3所述的方法,其特征在于,所述第i个历史使用周期的时长为一周。
10.根据权利要求1所述的方法,其特征在于,所述目标电子设备的峰值算力是根据所述目标电子设备的硬件编码向量以及第二算力计算模型计算得到的,其中,所述第二算力计算模型是根据若干台样本电子设备的硬件编码向量训练得到的机器学习模型。
11.根据权利要求10所述的方法,其特征在于,所述目标电子设备的硬件编码向量包括所述目标电子设备的一个或多个硬件中各硬件的硬件编码。
12.根据权利要求11所述的方法,其特征在于,至少部分所述硬件编码是根据其所对应的硬件的类型信息确定的;和/或,至少部分所述硬件编码是根据其所对应的硬件的性能信息确定的。
13.根据权利要求10所述的方法,其特征在于,所述第一算力计算模型和/或第二算力计算模型为XGBoost模型。
14.根据权利要求1所述的方法,其特征在于,所述目标电子设备的算力资源包括所述目标电子设备的硬件资源和/或软件资源。
15.一种控制设备,其特征在于,包括:
存储器,用于存储由所述控制设备的一个或多个处理器执行的指令;
处理器,当所述处理器执行所述存储器中的所述指令时,可使得所述控制设备执行权利要求1~14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在计算机上执行时使得计算机执行权利要求1~14任一项所述的方法。
CN202011580350.1A 2020-12-28 2020-12-28 计算电子设备的算力的方法、控制设备以及存储介质 Active CN114697341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011580350.1A CN114697341B (zh) 2020-12-28 2020-12-28 计算电子设备的算力的方法、控制设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011580350.1A CN114697341B (zh) 2020-12-28 2020-12-28 计算电子设备的算力的方法、控制设备以及存储介质

Publications (2)

Publication Number Publication Date
CN114697341A true CN114697341A (zh) 2022-07-01
CN114697341B CN114697341B (zh) 2023-05-16

Family

ID=82129324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011580350.1A Active CN114697341B (zh) 2020-12-28 2020-12-28 计算电子设备的算力的方法、控制设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114697341B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250818A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プログラム実行サービス提供方法
CN108595266A (zh) * 2018-04-18 2018-09-28 北京奇虎科技有限公司 基于区域内闲散算力的资源应用方法及装置、计算设备
CN110221913A (zh) * 2019-04-26 2019-09-10 深圳市致宸信息科技有限公司 监控服务器的云算力的方法、终端、设备及存储介质
CN110532092A (zh) * 2019-08-21 2019-12-03 云湾科技(嘉兴)有限公司 资源匹配方法、装置及设备
CN111507650A (zh) * 2020-07-02 2020-08-07 深圳微品致远信息科技有限公司 一种边缘计算平台算力分配调度方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250818A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プログラム実行サービス提供方法
CN108595266A (zh) * 2018-04-18 2018-09-28 北京奇虎科技有限公司 基于区域内闲散算力的资源应用方法及装置、计算设备
CN110221913A (zh) * 2019-04-26 2019-09-10 深圳市致宸信息科技有限公司 监控服务器的云算力的方法、终端、设备及存储介质
CN110532092A (zh) * 2019-08-21 2019-12-03 云湾科技(嘉兴)有限公司 资源匹配方法、装置及设备
CN111507650A (zh) * 2020-07-02 2020-08-07 深圳微品致远信息科技有限公司 一种边缘计算平台算力分配调度方法及系统

Also Published As

Publication number Publication date
CN114697341B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN109960395B (zh) 资源调度方法和计算机设备
WO2020168761A1 (zh) 训练模型的方法和装置
CN109640284B (zh) 无线传感器网络系统
CN113222403B (zh) 基于大数据的电力调节方法、装置、存储介质及电子设备
CN111105016A (zh) 一种数据处理方法、装置、电子设备及可读存储介质
CN113746696A (zh) 网络流量预测方法、设备、存储介质及装置
CN114402336A (zh) 神经处理单元
Sudharsan et al. Toward distributed, global, deep learning using iot devices
CN112101543A (zh) 神经网络模型确定方法、装置、电子设备及可读存储介质
CN113645637A (zh) 超密集网络任务卸载方法、装置、计算机设备和存储介质
CN117131974A (zh) 一种模型的训练方法、功率预测方法及设备
CN114338416B (zh) 一种时空多指标预测方法、装置和存储介质
CN114625477A (zh) 一种服务节点容量调整方法、设备及计算机可读存储介质
CN113886454A (zh) 一种基于lstm-rbf的云资源预测方法
CN114697341B (zh) 计算电子设备的算力的方法、控制设备以及存储介质
CN111199276B (zh) 数据处理方法及相关产品
CN112312299A (zh) 服务卸载方法、装置及系统
CN112052943A (zh) 电子装置和执行该电子装置的操作的方法
CN109597572B (zh) 一种存储管理方法
CN116316537A (zh) 输电线路运行控制方法、装置、设备、介质和程序产品
KR102383321B1 (ko) 자가 발전원을 갖는 네트워크 내에서의 에너지 관리 방법, 이를 수행하기 위한 장치 및 시스템
Mastronarde et al. Online reinforcement learning for dynamic multimedia systems
Xu et al. Ddpg-based edge resource management for coal mine surveillance video analysis in cloud-edge cooperation framework
CN111784029A (zh) 一种雾节点资源分配方法
KR20220117432A (ko) 전력 계통 클러스터링 방법 및 장치

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