用于优化线程调度的方法、系统、制品和装置与流程

文档序号:25543281发布日期:2021-06-18 20:40阅读:73来源:国知局
用于优化线程调度的方法、系统、制品和装置与流程

相关申请

本专利源于2019年12月2日提交的美国临时专利申请no.62/942,619的美国非临时专利申请,美国临时专利申请no.62/942,619的全部内容通过引用合并于此。在此要求美国临时专利申请no.62/942,619的优先权。

本公开总体涉及计算设备,并且更具体地,涉及用于优化线程调度的方法、系统、制品和装置。



背景技术:

包括机器学习(ml,machinelearning)、深度学习(dl,deeplearning)和/或其他人工机器驱动逻辑的人工智能(ai,artificialintelligence)使机器(例如,计算机、逻辑电路等)能够使用模型来处理输入数据,以基于模型先前经由训练过程学习的模式和/或关联来生成输出。例如,可以用数据来训练模型以识别模式和/或关联,并且在处理输入数据时遵循这样的模式和/或关联,使得(一个或多个)其他输入产生与所识别的模式和/或关联一致的(一个或多个)输出。



技术实现要素:

根据本公开实施例的第一方面,提供了一种装置,包括:模型,用于基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及工作负载监控器,用于执行以下操作:基于所述线程调度策略执行工作负载;基于所述工作负载的执行从所述目标系统获得性能分数和功率分数,所述性能分数和所述功率分数对应于折衷指示值;将所述折衷指示值与标准进行比较;以及基于所述比较,启动所述模型以重新调整所述经调整的调谐参数。

根据本公开实施例的第二方面,提供了一种方法,包括:基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及基于所述线程调度策略执行工作负载;基于所述工作负载的执行从所述目标系统获得性能分数和功率分数,所述性能分数和所述功率分数对应于折衷指示值;将所述折衷指示值与标准进行比较;以及基于所述比较,启动模型以重新调整所述经调整的调谐参数。

根据本公开实施例的第三方面,提供了至少一种计算机可读介质,包括指令,所述指令在被执行时使至少一个处理器执行根据第三方面所述的方法。

根据本公开实施例的第四方面,提供了一种装置,包括:生成装置,用于基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及处理装置,用于执行以下操作:基于所述线程调度策略执行工作负载;基于所述工作负载的执行从所述目标系统获得性能分数和功率分数,所述性能分数和所述功率分数对应于折衷指示值;将所述折衷指示值与标准进行比较;以及基于所述比较,启动模型以重新调整所述经调整的调谐参数。

附图说明

图1是根据本公开的教导构造的用于优化示例目标系统的线程调度的示例调谐系统的框图。

图2是图1的目标系统的示例实现方式的框图。

图3是图1的调谐引擎的示例实现方式的框图。

图4是示出图1的调谐系统的性能和功率之间的折衷(tradeoff)的示例研究结果的曲线图。

图5是表示可以被执行以实现图1的示例折衷指示控制器的示例机器可读指令的流程图。

图6是表示可以被执行以实现图1和/或图3的示例调谐引擎的示例机器可读指令的流程图。

图7是被构造为执行图5和/或图6的指令以实现图1的示例调谐系统的示例处理平台的框图。

附图未按比例绘制。通常,在整个附图和所附的文字描述中将使用相同的附图标记来指代相同或相似的部件。

当标识可以单独引用的多个元件或组件时,在本文中可以使用描述符“第一”、“第二”、“第三”等。除非基于它们的使用上下文另外指定或理解,否则这些描述符并不旨在赋予列表中的优先级、物理顺序或布置、或时间排序的任何含义,而仅用作用于单独地引用多个元件或组件的便签以便于理解所公开的示例。在一些示例中,描述符“第一”可以用于指代具体实施方式中的元件,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来引用相同的元件。在这种情况下,应当理解,使用这种描述符仅仅是为了便于引用多个元件或组件。

具体实施方式

期望当今的个人计算设备提供以下真实世界用户体验:全天的电池寿命、接近零等待的响应、和出色的性能。基于满足不同类别的用户(例如,游戏玩家、家庭用户、学生等)的需求来设计系统(例如,个人计算设备的系统)。这样的系统提供硬件(hw,hardware)和/或软件(sw,software)折衷以实现不同的性能目标。例如,系统可以包括操作系统(os,operatingsystem)以在工作负载执行期间实现不同的性能目标。在一些示例中,os对cpu上的线程调度策略不进行优化,这可能导致在功率、性能和/或响应性方面的用户体验较差。线程调度策略是将工作负载(例如,本文中称为线程的可执行指令集)分配给资源(例如,cpu核、存储器、加速器等)的策略。传统的线程调度配置方法是劳动密集型的、非系统化的,并且缺乏通用化和定制能力。因此,传统的线程调度配置在工作负载执行期间无法实现目标系统的充分优化级别。为了解决这些和/或其他限制,本文所公开的示例通过自动切换相关os参数来评估os线程调度策略的质量,以实现参数的完全自动化和可定制的折衷指导调谐。

本文公开的示例包括电路和/或可执行指令(例如软件)以实现针对os线程调度策略的调谐参数的定制。调谐参数的这种定制使得cpu和/或其他系统资源能够实现功率目标和/或性能目标。本文公开的示例将目标系统(例如,os正在其中运行的系统)的性能分数和功率分数组合成单个度量,该度量可以用作目标系统的os线程调度策略质量的指示符。例如,在资源(例如,cpu核、存储器、加速器等)上执行线程之前、期间和/或之后,利用调谐引擎来从资源的硬件寄存器获得(例如,读取)性能分数和功率分数。本文公开的示例接受用户可配置的参数集以针对(i)特定类的(例如,关键的、可选的等)工作负载性能、(ii)组件的子集(例如,耗电组件)、以及(iii)功率/性能折衷进行定制。

在本文公开的示例中,目标系统(例如,计算设备)由(一个或多个)机器学习模型自动评估。采用工作负载自动化设置(例如,工作负载监控器)来测量目标系统消耗的功率并在调整相关的os参数时评估目标系统的处理器(例如,cpu)上的os线程调度策略的性能。例如,工作负载自动化设置获得参数(例如,由一个或多个机器学习模型选择的参数),并使用这些参数执行一个或多个工作负载,以评估将这些参数用于os线程调度时所实现的性能。

存在许多不同类型的机器学习模型和/或机器学习架构。在本文公开的示例中,使用贝叶斯(bayesian)模型。使用贝叶斯模型使得能够将条件依赖性表示为有向图中的边。在一些示例中,(一个或多个)机器学习模型/架构是(一个或多个)图形神经网络(gnn)。然而,可以另外地或替代地使用其它类型的机器学习模型。

通常,实现ml/ai系统包括两个阶段,学习/训练阶段和推理阶段。在学习/训练阶段,使用训练算法来训练模型以根据例如基于训练数据的模式和/或关联来操作。通常,模型包括指导如何将输入数据转换为输出数据的内部参数,例如通过模型内的一系列节点和连接将输入数据转换为输出数据。另外,超参数(hyperparameter)被用作训练过程的一部分,以控制如何执行学习(例如,学习率、要在机器学习模型中使用的层数等)。超参数是在启动训练过程之前确定的训练参数。

可以基于ml/ai模型的类型和/或预期输出执行不同类型的训练。例如,监督训练使用输入和相应的预期(例如,标记的)输出来选择用于减少模型误差的ml/ai模型的参数(例如,通过在选择参数的组合上迭代)。如本文所使用的,标记是指机器学习模型的预期输出(例如,分类、预期输出值等)。替代地,无监督训练(例如,用于深度学习、机器学习的子集等)涉及从输入推断模式以选择用于ml/ai模型的参数(例如,没有预期(例如,标记的)输出的益处)。

在本文公开的示例中,使用随机梯度下降来训练ml/ai模型。然而,可以另外地或替代地使用任何其他训练方法。在本文公开的示例中,执行训练直到达到可接受的误差量(例如,小于目标性能)。在本文公开的示例中,训练是在目标系统处、在向目标系统提供服务的主机(例如,虚拟机)处等执行的。使用控制如何执行学习的超参数(例如,学习率、要在机器学习模型中使用的层数等)来执行训练。

一旦被训练,部署的模型可以在推理阶段被操作以处理数据。在推理阶段,要分析的数据(例如,实时数据)是模型的输入,并且模型执行以创建输出。这个推理阶段可以被认为是ai“思考”,以根据它从训练中学到的东西来产生输出(例如,通过执行模型以将所学习的模式和/或关联应用于实时数据)。在一些示例中,输入数据在被用作机器学习模型的输入之前经历预处理。此外,在一些示例中,输出数据可以在由ai模型生成后经历后处理,以将输出转换为有用的结果(例如,数据的显示、要由机器执行的指令等)。

在一些示例中,部署的模型的输出可以被捕获并提供作为反馈。通过分析反馈,可以确定所部署的模型的精度。如果反馈指示部署的模型的精度小于阈值或其他标准,则可以使用反馈和更新的训练数据集、超参数等来触发更新的模型的训练,以生成更新的部署的模型。

本文公开的示例影响处理器的行为方式。例如,本文公开的示例影响在执行一个或多个工作负载期间所消耗的能量的量和/或处理器可以执行单个工作负载或多个工作负载的速度。本文公开的示例可以通过调整os线程调谐参数来控制处理器架构的行为。

在计算机中,需要平衡功率使用和性能。在两个客户之间,一个可能更关心功率,而另一个可能更关心性能。功率使用和/或性能可能受硬件(例如,处理器、系统、芯片(soc)等)和/或能够在硬件上执行的操作系统(os)中的任一者或两者的影响。以这种方式,可能期望配置硬件和os两者以实现功耗和性能的期望折衷。

图1是用于改进(例如,优化)示例目标系统105中的线程调度的示例调谐系统100的框图。示例调谐系统100包括示例折衷指示控制器110和示例调谐引擎115。

在图1中,示例目标系统105将基于用户配置数据进行配置(例如,针对功耗和/或性能进行优化)。如本文所使用的,用户配置数据可以是预先确定的策略、指令、用户可配置的参数等,其描述对目标系统105的配置的偏好。例如,目标系统105可以是计算机、计算设备、移动电话、平板电脑、膝上型电脑等,其包括硬件处理器,该硬件处理器执行os以调度线程供处理器的一个或多个组件(例如,一个或多个核、加速器等)或卸载电路(例如,图形处理器单元(gpu))执行。如本文所使用的,线程是可以独立地(例如,由调度器)分配给硬件电路以供执行的机器可执行指令集。调度器通常是os的一部分。线程调度策略是一组策略(例如,可执行指令),其定义调度器如何将工作(例如,一组线程)分配给资源(例如,cpu核、存储器、加速器等)来完成该工作。在一些示例中,目标系统105可以在端点环境、边缘环境和/或云环境下操作。例如,目标系统105可以是任何端点设备(例如,支持互联网的平板电脑、移动手机(例如,智能手机)、手表(例如,智能手表)、健身跟踪器、头戴式耳机、车辆控制单元(例如,发动机控制单元、电子控制单元等)和iot设备等)、边缘平台(例如,iot设备、边缘计算平台等)、服务器等。下面结合图2更详细地描述目标系统105的示例实现方式。

在图1中,示例调谐系统100包括示例折衷指示控制器110以处理目标系统105的性能分数和功率分数。所示出的示例的折衷指示控制器110基于一个或多个性能分数和/或一个或多个功率分数来确定目标指示值(tiv,targetindicationvalue)。例如,性能分数和功率分数(例如,性能分数表示为p_i,功率分数表示为w_(i,j))是特定操作(例如,os操作、硬件操作等)的函数。可以从目标系统105获得这样的性能分数和功率分数。例如,折衷指示控制器110可以从硬件寄存器、硬件性能计数器等获得、读取、写入、提取和/或分析性能分数和功率分数。在一些示例中,性能和功率分数被表示为整数值(例如,-10、0、3、7等)。在其他示例中,性能和功率分数被表示为位值、布尔值、字符值和/或任何其他计算机可读值。

在图1中,示例折衷指示控制器110确定tiv以控制线程调度策略。线程调度策略管理示例目标系统105的动态核计数c、空闲状态i和工作频率f。例如,线程调度策略在工作负载执行期间管理目标系统105的c、i和f。在上述示例中,c表示开启的核的数量(例如,在正常操作期间开启/关闭核)。i表示空闲状态驻留(例如,在空闲状态中花费的时间的百分比)。f表示处理核的工作频率。例如,不同的计算元件和/或组件(例如,gpu、cpu等)可以表现出不同的频率水平。通常,组件的频率越高,线程调度策略执行机器可读指令(例如,线程)的速度越快。

示例目标系统105的动态核计数c、空闲状态i和工作频率f分别由参数(本文分别称为θ_c、θ_i、和θ_f)控制。这些参数修改os线程调度策略的整体行为,从而影响目标系统105的性能和功率。这些参数中的每一个可以被分配给相应的控制旋钮(例如,可以被调整以设置相应参数从而修改调度策略的变量)。例如,可以为参数(θ_c、θ_i、和θ_f)之一的配置旋钮分配值,以在特定工作负载下控制处理器的os。该控制的净结果是当执行该工作负载时的特定的能量消耗量。例如,当目标系统105的工作负载是全屏运行的视频时,该活动能够由多个不同的组件处置/处理。控制旋钮影响控制组件的线程调度。例如,线程调度策略在处理器的同一核(c)上或者在两个或更多不同核上调度两个或更多线程。

在一些示例中,折衷指示控制器110向示例调谐引擎115提供输入。例如,折衷指示控制器110将tiv提供给调谐引擎115以调整一个或多个调谐参数。折衷指示控制器110可以包括接口(例如,用户界面(ui))以获得用户配置数据。例如,用户可以确定他们希望目标系统105对工作负载性能和/或功率性能进行优化的程度。以这种方式,示例折衷指示控制器110向示例调谐引擎115通知调谐引擎115要实现的折衷(例如,功耗使用或性能,例如性能优化、监控至少x个组件的电池寿命等)。

在图1中,示例调谐系统100包括调谐引擎115以基于tiv调整一个或多个调谐参数(θ_c、θ_i、和θ_f)。在图3中更详细地示出调谐引擎115的示例实现方式,其中调整引擎115包括机器学习模型以调整初始调谐参数以满足目标系统105的目标优化。目标系统105的目标优化指示tiv值的最大改进。例如,当tiv值不再能够基于调整后的调谐参数而增加时,达到了目标优化。示例调谐引擎115启动工作负载监控器,该工作负载监控器使得能够自动应用所选择的调谐值以在每次迭代时重新配置目标系统105。同样,图3的示例工作负载监控器可以自动获取评估分数(例如,由目标系统105的硬件生成的性能分数),并将评估分数通知给机器学习模型。然后,机器学习模型可以选择要应用的参数的下一配置。例如,调谐引擎115基于评估分数来迭代调谐参数的不同配置集,直到实现目标系统105的性能和功率使用的期望折衷集。在一些示例中,调谐引擎115包括误差校验和恢复控制器,以允许所请求的定制,而不用担心达到不工作或其他不期望的状态。例如,误差校验和恢复控制器监控目标系统105的工作状态。如果检测到意外的(例如,不期望的)状态,则评估中的目标系统105被恢复到最后一个已知良好状态,并且然后可以应用不同的参数。

图2是图1的目标系统105的示例实现方式的框图。图2的示例目标系统105包括示例功率子系统205a-c、示例功率评估控制器210、示例性能评估控制器215、示例基线性能评估控制器220和示例基线功率评估控制器225。

在图2中,示例目标系统105包括能够消耗不同程度的功率的示例功率子系统205a-c。例如,功率子系统205a-c可以是cpu、gpu、fpga、核、加速器或能够执行一个或多个工作负载i的任何类型的硬件。在一些示例中,功率子系统205a-c可以由用户选择。例如,图2中所示的目标系统105包括功率评估控制器210,以确定将由调谐引擎115考虑的功率子系统205a-c。用户可以选择他们希望优化的功率子系统205a-c。在这样的示例中,用户可以配置功率子系统选择器qi,其中i是功率子系统(例如,功率子系统a205a、功率子系统b205b或功率子系统c205c)。

另外,用户可以为(例如,由功率子系统选择器qi选择的)功率子系统配置工作负载选择器。例如,用户可以配置功率工作负载选择器bi,j,其中i是工作负载,并且j是功率子系统类型。在这样的示例中,如果工作负载选择器b2,3=0(例如,工作负载选择器指示工作负载为2将被分配给子系统3),则第三子系统(例如,图形处理器(gpu)或存储器子系统)的工作负载#2的功率分数w2,3将不包括在总体功率目标中。例如,功率目标对应于目标系统105在工作负载执行期间的期望功率消耗。功率子系统205a-c中的每一个被分配相应的功率分数wi,j,该功率分数wi,j是在工作负载的执行期间(例如,当按照调谐参数处理工作负载时)确定的。以这种方式,功率工作负载选择器bi,j可以影响当前操作的功率分数wi,j,和/或功率分数wi,j可以用于为将来的操作选择不同的功率工作负载选择器。

在图2的示例中,功率评估控制器210可以获得功率子系统选择器qi,并将其提供给折衷指示控制器110以进行分析。在一些示例中,功率评估控制器210通过利用下面的等式1和等式2来确定加权功率分数fpowerj和加权功率系统分数fpower。在等式1中,m是可用工作负载的总数,0<j<l-1,其中,l是功率子系统205a-c的总数。

等式1:fpower,j=b0,j*w0,j+b1,j*w1,j+b2,j*w2,j+…+bm-1,j*wm-1,j

等式2:fpower=q0*fpower0+q1*fpower1+…+q(l-1)*fpower(l-1)

在图2的示例中,示例性能评估控制器215评估工作负载的性能。在一些示例中,用户可以配置性能工作负载选择器ai以识别将由示例调谐引擎115考虑的工作负载,其中i是工作负载,a是工作负载性能权重。例如,如果用户配置a1=0,则在参数调谐期间将不考虑工作负载#1的性能分数p1。在该示例中,性能评估控制器215从硬件(例如,硬件寄存器、硬件性能计数器等)获得性能分数pi。例如,性能评估控制器215从在工作负载执行期间(例如,当应用调谐参数时)生成的性能分数。

在一些示例中,性能评估控制器215确定工作负载的加权性能分数fperf。例如,性能评估控制器215可以利用下面的等式3来确定加权性能分数。

公式3:fperf=a0*p0+a1*p1+a2*p2+…+a(m-1)*p(m-1)

在图2的示例中,示例基线性能评估控制器220和示例基线功率评估控制器225分别确定目标系统105的初始性能分数pi和功率分数wi,j。例如,基线性能分数fperf_baseline是在示例调谐引擎115调整调谐数之前目标系统105的初始性能分数。基线性能分数对应于目标系统105的最小性能。另外,示例性基线功率分数fperfbaseline是在示例调谐引擎115调整调谐参数之前目标系统105的初始功率分数。基线功率分数对应于目标系统105的最小功率分数。在一些示例中,示例基线性能评估控制器220和示例基线功率评估控制器225被启动一次(例如,在工作负载执行开始时)。

在图2的示例中,示例折衷指示控制器110获得加权性能分数fperf、加权系统功率分数fpower、基线性能分数fperfbaseline和基线功率分数fpower_baseline。例如,功率评估控制器210将加权系统功率分数fpower提供给折衷指示控制器110,示例性能评估控制器215将加权性能分数fperf提供给折衷指示控制器110,示例基线性能评估控制器220将基线性能分数fperfbaseline提供给折衷指示控制器110,示例基线功率评估控制器225将基线功率分数fpower_baseline提供给折衷指示控制器110。示例折衷指示控制器110基于分数(例如fperf、fpower、fperfbaseline和/或fpower_baseline)确定折衷指示值(tiv)。在一些示例中,用户可以配置性能权重α和功率权重β。性能权重α和功率权重β反映了用户在处理工作负载时希望增强目标系统105的性能的程度和/或在处理工作负载时增强目标系统105的功率的程度。例如,当性能权重α是大于功率权重β的值时,调谐引擎115调整调谐参数以将工作负载的性能改进(例如,视频流的质量)优先于工作负载执行期间的功耗改进(例如,在视频流的同时节省电池寿命)。在其他示例中,当功率权重β大于性能权重α时,调谐引擎115调整调谐参数以使工作负载执行期间的功耗改进(例如,在视频流传输时节省电池寿命)优先于工作负载的性能改进(例如,视频流的质量)。在一些示例中,性能权重α和功率权重β具有相等的值,并且调谐引擎115将调谐参数调整到满足以下比率的程度:在该比率中,工作负载性能等于工作负载执行期间的功率消耗。在一些示例中,性能权重α和功率权重β可以是比率和/或百分比。

在一些示例中,折衷指示控制器110利用下面的等式4来确定折衷指示值。在等式4中,δfperf是实际性能分数与基准性能分数之差,α是目标性能权重,δfpower是目标系统105功率分数与基准功率分数之差,β是目标功率权重。

等式4:

图3是图1的调谐引擎115的示例实现方式的框图。示例调整引擎115基于功率分数和性能分数(fperf、fpower、fperfbaseline和/或fpowerbaseline)和各自的权重(例如,α和/或β)来调整调谐参数。图3包括示例ml模型305、示例工作负载监控器310、以及示例误差校验和恢复控制器315。

在图3的示例中,ml模型305从折衷指示控制器110获得tiv,并从目标系统105的os线程调度策略获得初始调谐参数。示例ml模型305利用贝叶斯优化/通用算法框架来解决多目标优化问题。如本文所使用的,多目标优化是多标准决策制定的领域,其涉及要同时优化的多于一个目标函数的优化问题。例如,ml模型305被配置为基于性能目标和功率目标做出决策(例如,决定调谐参数的配置)。然而,示例ml模型305可以利用任何其他全局优化算法来解决多目标优化问题。输入调谐参数c(θc)、i(θi)、f(θf)和分配给它们的可能取值范围描述了算法的搜索空间。示例ml模型305基于tiv和当前调谐参数(例如,c(θc)、i(θi)、f(θf))来选择可调谐参数的值。

在图3的示例中,示例工作负载监控器310将由示例ml模型305确定的调谐参数应用于线程调度策略以执行工作负载。例如,工作负载监控器310自动应用由ml模型305选择的值来配置和/或重新配置线程调度策略。另外,示例工作负载监控器310自动检索与新的tiv相对应的评估分数(例如,由硬件生成的性能分数),将tiv与标准(例如,θbest)进行比较,并且基于该比较,启动ml模型305以重新调整参数。工作负载监控器310在每次迭代之后从折衷指示控制器110接收性能和功率分数pi和wi,j,并向ml模型305提供这样的分数。例如,目标系统105生成和/或以其他方式产生性能和功率分数,并且示例折衷指示控制器110获得性能和功率分数以确定tiv。以这种方式,示例ml模型305基于分数和tiv重新配置调谐参数。示例调谐引擎115最终用于优化和最大化折衷指示值(例如,θbest=argmaxtiv)。

在图3的示例中,示例误差校验和恢复控制器315允许不间断地定制目标系统105。在一些示例中,误差校验和恢复控制器315监控评估中的系统(例如,目标系统105)的工作状态。例如,误差校验和恢复控制器315监控工作负载是否变为暂停和/或阻塞,或者是否检测到硬件的意外状态。例如,一旦检测到意外的(例如,不期望的)状态,则评估中的系统被恢复到最后一个已知良好状态,从而可以使用不同的参数集来继续迭代。在一些示例中,误差校验和恢复控制器315从目标系统105收集遥测数据。例如,当配置了线程调度策略时,误差校验和恢复控制器315查询目标系统105的资源(例如,硬件资源和/或软件资源)来确定资源度量(例如,利用度量、网络交互度量等)。在一些示例中,遥测数据指示目标系统105的工作状态。例如,误差校验和恢复控制器315可以利用遥测数据来确定工作负载执行期间的资源使用(例如,所利用的存储器的千兆字节数、所利用的核数等)和工作负载执行期间的网络交互消息(例如,目标系统105的资源之间或目标系统105与不同系统之间的通信)。

图4是示出图3的调谐引擎115的示例折衷研究的曲线图400。在所示示例中,目标性能权重α和目标功率权重β被选择为有利于学生用户类的典型计算机使用。示例调谐系统100在开发板(例如,目标系统105)上执行两个不同的工作负载,以分别测量性能和功率。此外,调谐系统100利用来自开发板的测量结果来为输入参数的每种配置计算tiv。示例曲线图400报告了针对增加的tiv而分类的97个独特的调谐参数的配置的结果。该结果表明利用tiv进行功率/性能折衷研究的可行性。相对于调谐参数的基线配置,具有最大tiv的调谐参数的配置将性能提高18%,将功耗提高8%。例如,相对于针对线程调度策略配置的初始调谐参数,调谐系统100将目标系统105的性能提高了18%,将目标系统105的功耗提高了8%。通过改变tiv的权重,可以将结果调整为适合不同用户类的性能和功率之间的折衷。例如,与折衷指示控制器110结合的调谐引擎115可以被配置为基于用户类来调整目标性能权重α和目标功率权重β。

虽然在图2-图3中示出实现图1的调谐系统100和目标系统105的示例方式,但是图2-图3所示的一个或多个元件、过程和/或设备可以被组合、分割、重新布置、省略、消除和/或以任何其他方式实现。此外,示例折衷指示控制器110、示例调谐引擎115、示例功率评估控制器210、示例性能评估控制器215、示例基线性能评估控制器220、示例基线功率评估控制器225、示例ml模型305、示例工作负载监控器310、示例误差校验和恢复控制器315、和/或更一般地图1的示例调谐系统100和示例目标系统105可以通过硬件、软件、固件、和/或硬件、软件和/或固件的任意组合来实现。因此,例如,示例折衷指示控制器110、示例调谐引擎115、示例功率评估控制器210、示例性能评估控制器215、示例基线性能评估控制器220、示例基线功率评估控制器225、示例ml模型305、示例工作负载监控器310、示例误差校验和恢复控制器315、和/或更一般地示例性调谐系统100和/或目标系统105中的任何一者可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)、和/或现场可编程逻辑器件(fpld)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例折衷指示控制器110、示例调谐引擎115、示例功率评估控制器210、示例性能评估控制器215、示例基线性能评估控制器220、示例基线功率评估控制器225、示例ml模型305、示例工作负载监控器310、和/或示例误差校验和恢复控制器315中的至少一者在此被明确地定义为包括非暂态计算机可读存储设备或存储盘,例如存储器、数字多功能盘(dvd)、光盘(cd)、蓝光盘等,包括软件和/或固件。此外,除了或者代替图2-图3中所示的那些,图1的示例调谐系统100和/或目标系统105还可以包括一个或多个元件、过程和/或设备,和/或可以包括多于一个的任何或所有所示的元件、过程和设备。如本文所使用的,短语“在通信中”包括其变体,包含直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接物理(例如,有线)通信和/或持续通信,而是另外包括以周期性间隔、预定间隔、非周期性间隔和/或一次性事件的选择性通信。

在图5-图6中示出了表示用于实现图1的调谐系统100和/或目标系统105的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由计算机处理器(例如,下面结合图7讨论的示例处理器平台700中所示的处理器712)执行的一个或多个可执行程序或一个或多个可执行程序的部分。程序可以以存储在诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或与处理器712相关联的存储器之类的非暂态计算机可读存储介质上的软件来实现,但程序的整体和/或其部分可替代地由除处理器712之外的设备执行和/或在固件或专用硬件中实施。此外,尽管参考图5-图6中所示的流程图描述了示例程序,但是可以替代地使用实现示例调谐系统100和/或目标系统105的许多其他方法。例如,可以改变块的执行顺序,和/或可以改变、消除或组合所描述的一些块。另外或替代地,任何或所有块可以由被构造为在不执行软件或固件的情况下执行相应的操作的一个或多个硬件电路(例如,离散的和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)来实现。

本文描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等进行存储。如本文所述的机器可读指令可以被存储为数据(例如,指令的部分、代码、代码的表示等),其可用于创建、制造和/或生产机器可执行指令。例如,机器可读指令可以被分段并存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解压缩、解包、分布、重新分配、编译等中的一者或多者,以便使它们可由计算设备和/或其他机器直接读取、解释和/或执行。例如,机器可读指令可以存储在多个部分中,这些部分被分别压缩,加密并存储在单独的计算设备上,其中,这些部分在经解密、解压缩和组合后形成一组可执行指令,这些可执行指令实现诸如本文所述的程序。

在另一示例中,机器可读指令可以以它们能够被计算机读取的状态进行存储,但是需要添加库(例如,动态链接库(dll))、软件开发工具包(sdk)、应用编程接口(api)等,以便在特定计算设备或其他设备上执行指令。在另一示例中,在机器可读指令和/或相应的程序可以全部或部分执行之前,可能需要配置机器可读指令(例如,存储的设置、数据输入、记录的网络地址等)。因此,所公开的机器可读指令和/或相应的程序旨在包含这样的机器可读指令和/或程序,而与机器可读指令和/或程序在存储或以其它方式静止或传输时的特定格式或状态无关。

本文描述的机器可读指令可以由任何过去、现在或将来的指令语言、脚本语言、编程语言等来表示。例如,机器可读指令可以使用以下语言中的任何一种来表示:c、c++、java、c#、perl、python、javascript、超文本标记语言(html)、结构化查询语言(sql)、swift等。

如上文所述,可以使用可执行指令(例如,计算机和/或机器可读指令)来实现图5-图6的示例处理,这些可执行指令存储在非暂态计算机和/或机器可读介质上,例如硬盘驱动器、闪存、只读存储器、光盘、数字多功能盘、缓存、随机存取存储器、和/或任何其他存储设备或存储盘(其中信息被存储任何持续时间(例如,延长的时间段、永久地、短暂地、临时缓冲和/或缓存信息)。如本文所使用的,术语非暂态计算机可读介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号和传输介质。

“包括(including)”和“包含(comprising)”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求使用任何形式的“包括”或“包含”(例如,包含(comprise)、包括(include)、包含(comprising)、包括(including)、具有(having)等)作为前序或在任何类型的权利要求叙述中时,应当理解,在不超出相应权利要求或叙述的范围的情况下,可以存在其他元件、术语等。如本文所使用的,当短语“至少”用作例如权利要求的前序中的过渡术语时,其是开放的,与术语“包含”和“包括”是开放的方式相同。当以例如a、b和/或c的形式使用时,术语“和/或”是指a、b、c的任何组合或子集,例如(1)仅a、(2)仅b、(3)仅c、(4)a与b、(5)a与c、(6)b与c、以及(7)a与b与c。如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语“a和b中的至少一个”旨在指包括以下任何一者的实现:(1)至少一个a、(2)至少一个b、以及(3)至少一个a和至少一个b。类似地,如本文在描述结构、组件、项目、对象和/或事物的上下文中所使用的,短语“a或b中的至少一个”旨在指包括以下任何一者的实现:(1)至少一个a、(2)至少一个b、以及(3)至少一个a和至少一个b。如本文在描述处理、指令、动作、活动和/或步骤的性能或执行的上下文中所使用的,短语“a和b中的至少一个”旨在指包括以下任何一者的实现:(1)至少一个a、(2)至少一个b、和(3)至少一个a和至少一个b。类似地,如本文在描述过程、指令、动作、活动和/或步骤的进行或执行的上下文中所使用的,短语“a或b中的至少一个”旨在指包括以下任何一者的实现:(1)至少一个a、(2)至少一个b、以及(3)至少一个a和至少一个b。

如本文所使用的,单数引用(例如,“一个(a)”、“一种(an)”、“第一”、“第二”等)不排除多个。如本文所使用的术语“一个”或“一种”实体指一个或多个该实体。术语“一个”(或“一种”)、“一个或多个”以及“至少一个”在本文中可以互换使用。此外,虽然被单独列出,但是多个装置、元件或方法动作可以通过例如单个单元或处理器来实现。另外,尽管在不同的示例或权利要求中可以包括单独的特征,但是这些特征可以被组合,并且在不同的示例或权利要求中的包括并不意味着特征的组合是不可行的和/或不利的。

图5示出了用于确定示例目标系统105的线程调度策略的功率和性能折衷的调谐系统100的初始化阶段。例如,利用调谐系统100的初始化阶段来选择当在调谐阶段(例如,图6的调谐阶段)期间执行调谐参数迭代时将考虑的功率子系统和工作负载。图6示出了示例调整系统100的调整阶段,用于基于在初始化阶段中确定的功率和性能折衷来调谐示例目标系统105的线程调度策略。

转向图5,示例指令可以被执行以确定将用于调谐图1的目标系统105的线程调度策略的功率和性能折衷。图5的程序在框502处开始,在框502处,示例折衷指示控制器110(图1和2)获得目标性能权重(α)。另外,示例折衷指示控制器110获得目标功率权重(β)(框504)。例如,折衷指示控制器110从用户能够通过其输入信息的界面(例如,通过例如用户界面输入目标性能权重和/或目标功率权重的值)来获得权重(α,β)。

示例功率评估控制器210(图2)确定功率子分量(j)(例如,功率子分量205a-c)的数量(框506)。例如,功率评估控制器210确定哪些子分量在示例目标系统105(图1)中。示例功率评估控制器210获得功率子分量选择器qi(框508)。例如,功率评估控制器210获得功率子分量选择器的值qi。功率子分量选择器qi选择哪些功率子分量205a-c(图2)将由示例调谐引擎115考虑。例如,功率评估控制器210接收与示例调谐引擎115(图1和图3)将考虑的所需功率子分量205a-c(图2)相对应的用户定义配置信息。示例功率评估控制器210将值分配给功率子分量选择器qi以选择功率子分量205a-c(框510)。

示例功率评估控制器210和示例性能评估控制器215(图2)确定可用工作负载i的列表(框512)。在本文公开的示例中,工作负载i包括一个或多个线程。示例功率评估控制器210和示例性能评估控制器215基于用户配置数据获得性能工作负载选择器值(ai)和功率工作负载选择器值(bi)(框514)。示例功率评估控制器210将性能工作负载选择器值(ai)分配给性能分数(pi)(框516)。示例性能评估控制器215将功率工作负载选择器值(bi)分配给功率分数(wi,j)(框518)。示例折衷指示控制器110确定基线性能分数fperfbaseline(框520)。折衷指示控制器110确定基线功率分数fpowerbaseline(框522)。例如,折衷指示控制器110利用以上等式3、目标性能权重和性能工作负载选择器值来确定基线性能分数fperfbaseline。示例折衷指示控制器110利用上面的等式2、目标功率权重、功率子系统选择器和功率工作负载选择器值来确定基线功率分数fpowerbaseline。

当示例折衷指示控制器110确定基线性能分数fperfbaseline和基线功率分数fpowerbaseline时,图5的程序结束。在一些示例中,当一组新的目标性能权重(α)和目标功率权重(β)被输入到目标系统105时,图5的程序重新开始。

现在转向图6,图6的示例指令被执行以通过利用加权性能分数fperf和加权功率分数fpower来调谐目标系统105的线程调度策略。图6的程序从框602开始,在框602处,示例调谐引擎115(图1和图3)启动针对工作负载i的线程调度策略参数的调谐。例如,当调谐引擎115从折衷指示控制器110获得基线性能分数fperfbaseline和基线功率分数fpowerbaseline以及初始调谐参数时,机器可读指令600开始。

示例工作负载监控器310(图3)基于初始调谐参数执行工作负载i(框604)。例如,os线程调度策略确定调谐参数的初始配置,并使用这些初始参数执行工作负载,以驱动线程调度策略将工作负载的(一个或多个)线程分配给一个或多个硬件组件(例如,图1的目标系统105的资源)。示例工作负载监控器310测量性能分数(pi)(框606)。示例工作负载监控器310测量目标系统105的功率分数(wi)(框608)。例如,工作负载监控器310从示例功率评估控制器210(图2)和性能评估控制器215(图2)获取分数(例如,功率分数(wi)和性能分数(pi))。另外,示例性能评估控制器215(图2)基于性能分数(pi)确定加权性能分数(fperf)(框610)。例如,性能评估控制器215利用上面的等式3来确定加权性能分数(fperf)。示例功率评估控制器210(图2)基于功率分数(wi)确定加权功率分数(fpower,j)(框612)。例如,功率评估控制器210利用上面的等式1来确定加权功率分数(fpower,j)。示例功率评估控制器210基于加权功率分数(fpower,j)确定加权功率系统分数(fpower)(框614)。例如,功率评估控制器210利用上面的等式2来确定加权功率系统分数(fpower)。

示例折衷指示控制器110(图1和图2)基于加权功率系统分数(fpower)和加权性能分数(fperf)来确定折衷指示值(框616)。例如,折衷指示控制器110(图1和2)利用以上等式4来基于分数(fpoerf、fpower、fperfbaseline、fpowerbaseline)确定tiv。ml模型305(图3)基于tiv调整线程调度策略的调谐参数(框618)。例如,ml模型305通过调整调谐参数来最大化tiv。在一些示例中,当加权性能分数(fperf)与基线性能分数(fperfbaseline)之差超过基线性能分数(fperfbaseline)达到阈值时,tiv最大化。另外和/或替代地,当加权功率系统分数(fpower)与基线功率分数(fpowerbaseline)之差超过基线功率分数(fpowerbaseline)达到阈值时,tiv最大化。在一些示例中,阈值对应于性能相对于功率的提高百分比、或功率相对于性能的提高百分比。

示例工作负载监控器310使用经更新的线程调度策略来执行工作负载,该更新的线程调度策略是用经调整的调整参数修改的(框620)。在一些示例中,误差校验和恢复控制器315(图3)确定是否检测到目标系统105的意外状态(框622)。例如,误差校验和恢复控制器315确定新的调整参数是否发生错误。如果确实发生了意外状态(框622=是),则示例误差校验和恢复控制器315返回到最后一个已知良好状态(框624),并且控制返回到框618。例如,误差校验和恢复控制器315确定先前迭代的参数,该参数指示目标系统105的良好状态(例如,工作负载的线程正在运行而没有生成错误和/或故障的状态)。如果未发生意外状态(框622=否),则示例误差校验和恢复控制器315将控制返回给示例工作负载监控器310。示例工作负载监控器310然后确定tiv是否已经最大化(例如,θbest=argmaxtiv)(框626)。例如,工作负载监控器310确定某个函数(例如,ml模型305)的(一个或多个)输入值(例如,调谐参数)的以下点或元素:在这些点或元素处,(一个或多个)输入值被最大化。如果示例工作负载监控器310确定tiv未被最大化(框626=否),则控制返回到框618,并且发生调整调谐参数的新的迭代。

如果工作负载监控器310确定tiv被最大化(框626=是),则示例工作负载监控器310将最优调谐参数存储在存储器和/或数据库中。图6的示例程序结束。当ml模型305或更一般地调谐引擎115从折衷指示控制器110获得一组新的基线性能分数和基线功率分数以基于期望的功率/性能折衷来调整线程调度策略的调谐参数时,可以重复图6的程序。

图7是被构造为执行图5-图6的指令的示例处理器平台700的框图。参照图5-图6来实现图1的调谐系统100。处理器平台700可以是例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如ipadtm的平板电脑)、个人数字助理(pda)、因特网设备、dvd播放器、cd播放器或任何其他类型的计算设备。

所示实例的处理器平台700包括处理器712。所示示例的处理器712是硬件。例如,处理器712可以由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器来实现。硬件处理器可以是基于半导体(例如,硅基)器件。在该示例中,处理器实现示例折衷指示控制器110、示例调谐引擎115、示例功率评估控制器210、示例性能评估控制器215、示例基线性能评估控制器220、示例基线功率评估控制器225、示例ml模型305、示例工作负载监控器310、以及示例误差校验和恢复控制器315。

所示示例的处理器712包括本地存储器713(例如,缓存)。所示示例的处理器712经由总线718与包括易失性存储器714和非易失性存储器716的主存储器通信。易失性存储器714可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、动态随机访问存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器716可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器714、716的访问由存储器控制器控制。

所示示例的处理器平台700还包括接口电路720。接口电路720可以由任何类型的接口标准来实现,例如以太网接口、通用串行总线(usb)、蓝牙接口、近场通信(nfc)接口、和/或pciexpress接口。

在所示示例中,一个或多个输入设备722连接到接口电路720。(一个或多个)输入设备722允许用户将数据和/或命令输入到处理器712中。(一个或多个)输入设备可以由例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、等点(isopoint)和/或/语音识别系统来实现。

一个或多个输出设备724也连接到所示示例的接口电路720。输出设备724可以由例如显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt)、原地切换(ips)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路720通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。

所说明实例的接口电路720还包括通信设备,例如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或便于经由网络726与外部机器(例如,任何类型的计算设备)交换数据的网络接口。该通信可以经由例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、现场线路无线系统、蜂窝电话系统等。

所示示例的处理器平台700还包括用于存储软件和/或数据的一个或多个大容量存储装置728。这种大容量存储装置728的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(raid)系统和数字多功能光盘(dvd)驱动器。

图5-图6的示例机器可执行指令732可以被存储在大容量存储装置728、易失性存储器714、非易失性存储器716、和/或可移动非暂态计算机可读存储介质(例如,cd或dvd)上。

本文公开了用于优化线程调度的示例方法、装置、系统和制品。进一步的示例及其组合包括以下内容:示例1包括一种装置,包括:模型,用于基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及工作负载监控器,用于执行以下操作:基于线程调度策略执行工作负载;基于工作负载的执行从目标系统获得性能分数和功率分数,性能分数和功率分数对应于折衷指示值;将折衷指示值与标准进行比较;以及基于比较,启动模型以重新调整经调整的调谐参数。

示例2包括示例1的装置,还包括:性能评估控制器,用于在评估工作负载执行的多次迭代期间确定目标系统的性能分数,以基于性能分数重新调整经调整的调谐参数。

示例3包括示例1的装置,还包括:功率评估控制器,用于在评估工作负载执行的多次迭代期间确定目标系统的功率分数,以基于功率分数重新调整经调整的调谐参数。

示例4包括示例1的装置,还包括:误差校验和恢复控制器,用于执行以下操作:检测目标系统的意外状态;以及将目标系统恢复到最后一个已知良好状态,使得能够进行评估线程调度策略的多次迭代,以继续重新调整经调整的调谐参数。

示例5包括示例1的装置,其中,工作负载监控器用于确定模型的经调整的调谐参数的以下点:在该点处,经调整的调谐参数被最大化。

示例6包括示例1的装置,其中,工作负载监控器用于获得与目标系统的最小性能分数相对应的基线性能分数和与目标系统的最小功率分数相对应的基线功率分数。

示例7包括根示例6的装置,其中,模型用于基于目标系统的基线性能分数和基线功率分数来确定初始调谐参数,模型用于基于初始调谐参数来生成经调整的调谐参数,以配置线程调度策略用于目标优化。

示例8包括一种非暂态计算机可读存储介质,包括指令,指令在被执行时使机器执行以下操作:基于目标系统的折衷指示值至少生成线程调度策略的经调整的调谐参数;以及基于线程调度策略执行工作负载;基于工作负载的执行从目标系统获得性能分数和功率分数,性能分数和功率分数对应于折衷指示值;将折衷指示值与标准进行比较;以及基于比较,启动模型以重新调整经调整的调谐参数。

示例9包括示例8的非暂态计算机可读存储介质,其中,指令在被执行时使机器在评估工作负载执行的多次迭代期间确定目标系统的性能分数,以基于性能分数重新调整经调整的调谐参数。

示例10包括示例8的非暂态计算机可读存储介质,其中,指令在被执行时使机器在评估工作负载执行的多次迭代期间确定目标系统的功率分数,以基于功率分数重新调整经调整的调谐参数。

示例11包括示例8的非暂态计算机可读存储介质,其中,指令在被执行时使机器检测目标系统的意外状态;以及将目标系统恢复到最后一个已知良好状态,使得能够进行评估线程调度策略的多次迭代,以继续重新调整经调整的调谐参数。

示例12包括示例8的非暂态计算机可读存储介质,其中,指令在被执行时使机器确定模型的经调整的调谐参数的以下点:在该点处,经调整的调谐参数被最大化。

示例13包括示例8的非暂态计算机可读存储介质,其中,指令在被执行时使机器获得与目标系统的最小性能分数相对应的基线性能分数和与目标系统的最小功率分数相对应的基线功率分数。

示例14包括示例13的非暂态计算机可读存储介质,其中,指令在被执行时使机器基于目标系统的基线性能分数和基线功率分数来确定初始调谐参数,指令用于基于初始调谐参数来生成经调整的调谐参数,以配置线程调度策略用于目标优化。

示例15包括一种装置,包括:生成装置,用于基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及监控装置,用于执行以下操作:基于线程调度策略执行工作负载;基于工作负载的执行从目标系统获得性能分数和功率分数,性能分数和功率分数对应于折衷指示值;将折衷指示值与标准进行比较;以及基于比较,启动模型以重新调整经调整的调谐参数。

示例16包括示例15的装置,还包括:确定装置,用于在评估工作负载执行的多次迭代期间确定目标系统的性能分数,以基于性能分数重新调整经调整的调谐参数。

示例17包括示例15的装置,还包括:确定装置,用于在评估工作负载执行的多次迭代期间确定目标系统的功率分数,以基于功率分数重新调整经调整的调谐参数。

示例18包括示例15的装置,还包括:检测装置,用于检测目标系统的意外状态;以及恢复装置,用于将目标系统恢复到最后一个已知良好状态,使得能够进行评估线程调度策略的多次迭代,以继续重新调整经调整的调谐参数。

示例19包括示例15的装置,其中,监控装置被配置为确定模型的经调整的调谐参数的以下点:在该点处,经调整的调谐参数被最大化。

示例20包括示例15的装置,其中,监控装置被配置为获得与目标系统的最小性能分数相对应的基线性能分数和与目标系统的最小功率分数相对应的基线功率分数。

示例21包括示例20的装置,其中,生成装置被配置为基于目标系统的基线性能分数和基线功率分数来确定初始调谐参数,指令用于基于初始调谐参数来生成经调整的调谐参数,以配置线程调度策略用于目标优化。

示例22包括一种方法,包括:基于目标系统的折衷指示值来生成线程调度策略的经调整的调谐参数;以及基于线程调度策略执行工作负载;基于工作负载的执行从目标系统获得性能分数和功率分数,性能分数和功率分数对应于折衷指示值;将折衷指示值与标准进行比较;以及基于比较,启动模型以重新调整经调整的调谐参数。

示例23包括示例22的方法,还包括:在评估工作负载执行的多次迭代期间确定目标系统的性能分数,以基于性能分数重新调整经调整的调谐参数。

示例24包括示例22的方法,还包括:在评估工作负载执行的多次迭代期间确定目标系统的功率分数,以基于功率分数重新调整经调整的调谐参数。

示例23包括示例22的方法,还包括:检测目标系统的意外状态;以及将目标系统恢复到最后一个已知良好状态,使得能够进行评估线程调度策略的多次迭代,以继续重新调整经调整的调谐参数。

示例26包括示例22的方法,还包括:确定模型的经调整的调谐参数的以下点:在该点处,经调整的调谐参数被最大化。

示例27包括示例22的方法,还包括:获得与目标系统的最小性能分数相对应的基线性能分数和与目标系统的最小功率分数相对应的基线功率分数。

示例28包括示例27的方法,还包括:基于目标系统的基线性能分数和基线功率分数来确定初始调谐参数,模型用于基于初始调谐参数来生成经调整的调谐参数,以配置线程调度策略用于目标优化。

根据前述内容,可以理解,公开了调整(例如,优化)线程调度策略以实现目标系统的功耗和性能的期望折衷的示例方法、装置和制品。所公开的示例方法、装置和制品通过有效地选择目标系统的功耗和性能之间的折衷来改进线程调度策略将线程分配给核、加速器和/或目标系统的其他硬件的硬件组件的方式,从而提高了使用计算设备的效率。本文所公开的示例调整线程调度策略的调谐参数,以修改线程调度策略将线程分配给硬件组件的方式,从而基于用户需求来优化硬件组件的使用。因此,所公开的方法、装置和制品针对诸如计算机或其他电子设备的机器的功能的一个或多个改进。

尽管本文公开了某些示例性方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利权利要求范围内的所有方法、装置和制品。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1