首页> 中国专利> 支持功率管理控制的功率管理顾问程序

支持功率管理控制的功率管理顾问程序

摘要

一种设备(100)包括多个寄存器(310、311、312),所述多个寄存器用于存储表示处理单元(115、130)的状态历史的状态信息集。所述设备还包括功率管理顾问程序(PMA)(160),所述PMA用于基于所述状态信息集生成信号(215),其中所述信号指示所述处理单元的功率状态转换实现目标结果的概率。在一些情况下,所述信号被提供给包括硬件电路的功率管理控制器(150、155),所述硬件电路基于所述信号和所述功率管理控制器的输入来发起所述处理单元的功率状态转换,所述输入表示与所述处理单元的当前功率状态(401)对应的所述状态信息的子集。

著录项

  • 公开/公告号CN112639674A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 超威半导体公司;

    申请/专利号CN201980056458.X

  • 发明设计人 格雷格·萨多夫斯基;陈颖;

    申请日2019-06-25

  • 分类号G06F1/3206(20190101);G06F1/324(20190101);G06F1/3296(20190101);G06F1/3237(20190101);G06F1/3287(20190101);G06F9/50(20060101);

  • 代理机构31263 上海胜康律师事务所;

  • 代理人李献忠;张华

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:32:14

说明书

背景技术

诸如中央处理单元(CPU)、图形处理单元(GPU)和加速处理单元(APU)的处理单元可通过在不同的功率管理状态之间进行转换来提高性能或节省功率。例如,当没有处理单元要执行的指令时,处理单元可通过空闲来节省功率。如果处理单元空闲了相对长的时间,则可以对提供给处理单元的功率进行门控,使得没有电流供应给处理单元,从而减少待机和泄漏功耗。例如,如果处理器内核空闲超过预定时间间隔,则可以对CPU中的处理器内核进行功率门控。然而,相对于状态改变所节省的资源,改变处理单元的功率管理状态的功率管理技术会消耗大量的系统资源。例如,对处理器内核进行功率门控需要刷新处理器内核中的高速缓存,并保存定义处理器内核状态的信息,这会消耗时间和功率。从低功率状态(诸如空闲或功率门控状态)到活动状态的转换需要付出一定的性能成本,才能使处理器内核返回到活动状态,诸如当必须将保存的状态信息复制回到处理器内核中的寄存器时。

发明内容

在一个方面,一种设备包括多个寄存器,所述多个寄存器用于存储表示处理单元的状态历史的状态信息集。该设备还包括功率管理顾问程序(PMA),该PMA用于基于状态信息集生成信号,其中该信号指示处理单元的功率状态转换实现目标结果的概率。在一个实施方案中,多个寄存器中的第一寄存器存储表示处理单元的当前状态的第一状态信息集,并且多个寄存器中的至少一个第二寄存器存储表示处理单元的至少一个先前状态的至少一个第二状态信息集。在这种情况下,可以响应于处理单元转换到新的功率状态而将第一状态信息集复制到所述至少一个第二寄存器,并且可以响应于处理单元转换到新的功率状态而将与新的功率状态对应的新的状态信息集存储在第一寄存器中。在一个实施方案中,状态信息集包括以下各项中的至少一者:处理单元的功率状态、在处理单元中实现的性能计数器的值、在处理单元中排队执行的指令或绘制调用命令的特征、确定是否发起处理单元的功率状态转换的功率管理控制器的输入、指示由功率管理控制器制定的决策的信息、在处理单元上执行的应用程序的类型、由应用程序提供的提示以及由PMA生成的信号。在一个实施方案中,PMA通过将多个寄存器中的状态信息集与对应于状态信息集的功率状态转换的先前结果进行比较来生成信号的值。在这种情况下,目标结果可以是由功率状态转换导致的性能提升或功率节省中的至少一者超过由功率状态转换导致的性能成本或增加的能量使用中的至少一者。另外,与状态信息集相关联的先前结果可以指示由先前功率状态转换导致的性能提升或功率节省是否超过了由先前功率状态转换导致的对应性能成本或能量使用增加。在一个实施方案中,PMA包括神经网络,该神经网络生成处理单元从当前功率状态到多个可用功率状态的功率状态转换实现目标结果的概率。在一个实施方案中,将信号提供给发起处理单元的功率状态转换的功率管理控制器,并且该设备还包括状态机,该状态机指示被应用于由PMA提供的信号以及由功率管理控制器制定的确定是否发起处理单元的功率状态转换的功率状态转换决策的权重。

在另一方面,功率管理控制器包括被配置为接收由功率管理顾问程序(PMA)生成的信号的硬件电路,其中PMA基于表示处理单元的当前状态的第一状态信息集和表示处理单元的至少一个先前状态的至少一个第二状态信息集来生成信号,并且其中信号指示处理单元的功率状态转换实现目标结果的概率。另外,硬件电路还被配置为基于信号和表示第一状态信息集的子集的输入来发起处理单元的功率状态转换。在一个实施方案中,第一状态信息集和第二状态信息集包括以下各项中的至少一者:处理单元的功率状态、在处理单元中实现的性能计数器的值、在处理单元中排队执行的指令或绘制调用命令的特征、功率管理控制器的输入、指示由功率管理控制器制定的决策的信息、在处理单元上执行的应用程序的类型、由应用程序提供的提示以及由PMA生成的信号。硬件电路可以基于输入生成对在处理单元的功率状态转换之后的后续功率状态的预测。在一个实施方案中,硬件电路被配置为接收指示被应用于由PMA提供的信号以及由功率管理控制器做出的预测的权重的信息,并且其中硬件电路将权重应用于信号和预测以确定是否发起处理单元的功率状态转换。

根据又一方面,一种处理单元包括功率管理控制器,该功率管理控制器基于表示处理单元的当前功率状态的输入并且从多个可用功率状态生成对处理单元从当前功率状态的功率状态转换之后的后续功率状态的预测。处理单元还包括功率管理顾问程序(PMA),该PMA用于基于表示处理单元的状态历史的状态信息集生成信号,其中该信号指示处理单元向多个可用功率状态的功率状态转换实现目标结果的概率。功率管理控制器将基于预测和信号选择后续的功率状态。在一个实施方案中,处理单元还包括多个寄存器,其中所述多个寄存器中的第一寄存器存储表示处理单元的当前状态的第一状态信息集,并且所述多个寄存器中的至少一个第二寄存器存储表示处理单元的至少一个先前状态的至少一个第二状态信息集,并且其中PMA从多个寄存器访问第一状态信息集和至少一个第二状态信息集。在一个实施方案中,响应于处理单元转换到后续功率状态,将第一状态信息集复制到所述至少一个第二寄存器,并且其中响应于处理单元转换到后续功率状态,将与后续功率状态对应的新的状态信息集存储在第一寄存器中。在一个实施方案中,状态信息集包括以下各项中的至少一者:处理单元的功率状态、在处理单元中实现的性能计数器的值、在处理单元中排队执行的指令或绘制调用命令的特征、功率管理控制器的输入、指示由功率管理控制器制定的决策的信息、在处理单元上执行的应用程序的类型、由应用程序提供的提示以及由PMA生成的信号。在一个实施方案中,PMA包括神经网络,该神经网络生成处理单元从当前功率状态到多个可用功率状态的功率状态转换实现目标结果的概率,并且处理单元还包括状态机,该状态机用于指示被应用于由PMA提供的信号以及由功率管理控制器制定的确定是否发起处理单元的功率状态转换的功率状态转换决策的权重。

附图说明

通过参考附图,本领域技术人员可更好地理解本公开并且明白其众多特征和优势。在不同附图中使用相同的附图标记来指示类似或相同的项目。

图1是根据一些实施方案的处理系统的框图。

图2是根据一些实施方案的功率管理系统的框图。

图3是根据一些实施方案的包括功率管理顾问程序的电路的框图。

图4是示出根据一些实施方案的处理单元的一系列状态的状态图。

图5是根据一些实施方案的功率管理控制系统的框图。

图6是根据一些实施方案的确定所应用的权重的状态机的框图。

具体实施方式

处理单元中的功率管理控制器被实现为无功控制器,该无功控制器基于当前状态并且不考虑处理单元的状态历史来决定是否改变处理单元的功率状态。常规的功率管理控制器监测GPU的计算单元的活动、GPU中消耗的功率的值、GPU消耗的电流的值、温度以及其他状态信息,以决定是否通过修改时钟频率或供应给部件的电压来改变功率状态。例如,可以使用马尔可夫链模型来预测功率状态转换,该马尔可夫链模型是描述一系列可能事件的随机模型,其中每个事件的概率仅取决于在先前事件中获得的状态。常规的功率管理控制器在一些情况下例如因触发会导致相当大的性能成本或能量使用的增加而不会产生对应的功率节省或性能提升的功率状态转换而制定不正确的决策。

图1至图6公开了一种功率管理顾问程序,该功率管理顾问程序支持处理单元中的常规的本地功率管理控制器。功率管理顾问程序基于处理单元的当前状态和处理单元的一个或多个先前状态来生成信号(在本文中称为“建议”)。该建议指示由本地功率管理控制器确定的功率状态转换实现目标结果的概率,所述目标结果例如由功率状态转换导致的性能提升或功率节省超过功率状态转换的成本。在一些实施方案中,当前状态和先前状态由对应的功率状态、性能计数器的值、在处理单元中排队执行的指令或绘制调用命令的特征、本地功率管理控制器的输入、由本地功率管理控制器制定的决策、应用程序类型、应用程序提示以及由功率管理顾问程序生成的建议来定义。功率管理顾问程序通过将由处理单元的当前状态和先前状态表示的状态信息序列与由功率管理控制器触发的对应功率状态转换的先前结果进行比较来确定建议的值。在一些实施方案中,先前结果指示来自先前功率状态转换的性能提升或功率节省是否超过了对应的性能成本或能量使用增加。

功率管理顾问程序的一些实施方案实现了神经网络,该神经网络基于处理单元的当前状态和先前状态的序列来生成指示哪个可用功率状态是下一个功率状态的概率。该概率指示处理单元向每个可用功率状态的功率状态转换实现目标结果的可能性,例如,性能提升或功率节省超过对应的性能成本或能量使用增加。可使用通过模拟或指示先前功率状态变化的有效性的即时反馈生成的训练数据集来训练神经网络。功率管理顾问程序还可以实现状态机,该状态机指示被应用于由功率管理顾问程序生成的建议和由本地功率管理控制器制定的决策的权重。本地功率管理控制器的一些实施方案将权重应用于建议和决策以确定下一个功率状态。

图1是根据一些实施方案的处理系统100的框图。处理系统100包括或有权访问存储器105或使用非暂时性计算机可读介质诸如动态随机存取存储器(DRAM)实现的其他存储部件。然而,存储器105也可以使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其他类型的存储器来实现。处理系统100还包括总线110以支持在处理系统100中实现的实体(诸如存储器105)之间的通信。处理系统100的一些实施方案包括为了清楚起见未在图1中示出的其他总线、桥、开关、路由器等。

处理系统100包括被配置为渲染图像以呈现在显示器120上的图形处理单元(GPU)115。例如,GPU 115可渲染对象以产生像素值,所述像素值被提供给显示器120,所述显示器120使用像素值来显示表示所渲染对象的图像。GPU 115的一些实施方案也可用于通用计算。在所示的实施方案中,GPU 115实现被配置为同时或并行地执行指令的多个处理元件(为清楚起见,未在图1中示出)。在所示的实施方案中,GPU 115通过总线110与存储器105通信。然而,GPU 115的一些实施方案通过直接连接或经由其他总线、桥、开关、路由器等与存储器105通信。GPU 115可执行存储在存储器105中的指令,并且GPU 115可将诸如所执行指令的结果的信息存储在存储器105中。例如,存储器105可以存储来自将由GPU 115执行的程序代码的指令的副本125。

处理系统100还包括连接到总线110并且因此可经由总线110与GPU 115和存储器105通信的中央处理单元(CPU)130。CPU 130可执行指令诸如存储在存储器105中的程序代码135,并且CPU 130可将信息诸如所执行指令的结果存储在存储器105中。CPU 130还能够通过向GPU 115发出绘制调用来发起图形处理。

输入/输出(I/O)引擎140处理与显示器120以及处理系统100的其他元件诸如键盘、鼠标、打印机、外部磁盘等相关联的输入或输出操作。I/O引擎140耦接到总线110,使得I/O引擎140可与存储器105、GPU 115或CPU 130通信。在所示的实施方案中,I/O引擎140被配置为读取存储在外部存储部件145上的信息,该外部存储部件使用非暂时性计算机可读介质诸如光盘(CD)、数字视盘(DVD)等来实现。I/O引擎140还可将信息诸如GPU 115或CPU130的处理结果写入外部存储部件145。

GPU 115的一些实施方案实现了功率管理控制器(PMC)150,该PMC执行功率管理策略,诸如在CPU 130中实现的操作系统(OS)提供的策略。PMC 150还可被称为系统管理单元(或被实现为系统管理单元的一部分)。PMC 150的一些实施方案根据由OS设置的策略并使用提供给PMC 150的信息,诸如GPU 115内的实体的功耗或GPU 115内的不同位置处的温度,来管理GPU 115中的热和功率状况。PMC 150例如通过改变供应给GPU 115或在GPU 115中实现的计算单元的工作频率或工作电压来控制GPU 115的功率状态。CPU 130的一些实施方案还实现了单独的PMC 155,以控制CPU 130的功率状态。

PMC 150发起GPU 115的功率管理状态之间的功率状态转换,以节省电源、增强性能或实现其他目标结果。功率管理状态可包括活动状态、空闲状态、功率门控状态以及消耗不同量的功率的一些其他状态。例如,GPU 115的功率状态可包括操作状态、停止状态、停止时钟状态、所有内部时钟停止的睡眠状态、电压降低的睡眠状态和断电状态。在一些实施方案中,另外的功率状态也是可用的,并且由时钟频率、时钟停止和所供应的电压的不同组合来定义。

PMC 150通过将转换的性能或功率成本与转换的性能提升或功率节省进行比较来确定是否发起功率管理状态之间的转换。例如,PMC 150可以应用马尔可夫链模型来基于GPU 115的当前状态确定是否在功率状态之间转换。然而,PMC 150仅使用关于GPU 115的当前状态的本地信息来决定是否发起功率状态转换。PMC 150不利用任何状态历史(例如,对GPU 115的先前状态的任何认识)来发起功率状态转换。例如,马尔可夫链模型仅基于在先前的功率状态转换中获得的状态来确定从一个功率状态转换到另一个功率状态的概率。

尽管执行了功率状态转换以实现目标结果(诸如提高性能或降低功耗),但是功率状态转换也导致对应的成本,诸如性能下降或临时的功耗增加。例如,预期从低时钟频率状态转换到较高时钟频率状态,以增加功耗为代价来提高性能。例如,将GPU 115断电以节省功率还需要刷新GPU 115所用的高速缓存,并且在GPU 115再次通电时恢复一些高速缓存。至少部分地由于对仅基于本地信息发起功率状态转换的需要,PMC 150在一些情况下例如因触发会导致相当大的性能成本或能量使用的增加而不会产生对应的功率节省或性能提升的功率状态转换而制定不正确的决策。

GPU 115包括功率管理顾问程序(PMA)160,该PMA通过生成指示功率状态转换实现目标结果的概率的信号(在本文中称为“建议”)来支持PMC 150的操作。PMA 160从属于GPU115。如本文所用,术语“从属”指示PMA 160例如响应于来自GPU 115的指令或信令而在GPU115的控制下操作。此外,由PMA 160生成的信号被提供给GPU 115,并且不通过诸如总线110的中间装置。在所示的实施方案中,PMA 160被集成到GPU 115中。然而,PMA 160的一些实施方案在GPU 115的外部实现,并且使用导线、迹线或其他连接与GPU 115互连。例如,相对于经由总线110在GPU 115与CPU 130之间交换的信号,实现从属于GPU 115的PMA 160显著减少了在PMA160与GPU 115之间交换的信号的延迟。

PMA 160基于GPU 115的当前状态和GPU 115的一个或多个先前状态的状态信息来生成建议。在一些实施方案中,PMA 160包括或有权访问一组寄存器,所述一组寄存器用于存储表示GPU 115的状态历史的当前状态和先前状态的对应功率状态信息集。建议被提供给PMC 150,该PMC将该建议与其自己对功率状态转换的预测结合使用,以确定是否发起功率状态转换,如果是,则确定后续功率状态。CPU 130的一些实施方案还通过基于CPU 130的状态历史生成建议来实现支持PMC 155的操作的PMA 165。PMA 165从属于CPU 130。

使用人工神经网络实现PMA 160或PMA 165的一些实施方案,如本文所讨论。可实现为递归神经网络或残差神经网络或其他类型的强化学习结构的人工神经网络被表示为程序代码170,该程序代码使用一组对应的参数进行配置。因此,可在GPU 115或CPU 130或其他处理单元(包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、内存中处理(PIM)等)上执行人工神经网络。如果人工神经网络实现了可使用对应的已知数据集训练的已知功能,则通过向在GPU 115或CPU 130上执行的人工神经网络提供已知训练数据集的输入值,然后将人工神经网络的输出值与已知训练数据集中的标记后输出值比较来训练人工神经网络(即,建立定义人工神经网络的参数的值)。基于比较来确定误差值,并且将其反向传播以修改定义人工神经网络的参数的值。重复此过程,直到参数的值满足收敛准则为止。

在一些实施方案中,CPU 130实现另外的软件顾问程序,其补充由与GPU 115相关联的PMA 160提供给PMC 150的建议。例如,CPU 130可实现能够估计预测功率状态转换的有效性的另外的神经网络。由于CPU 130的附加处理能力,另外的顾问程序考虑更长的状态历史、更多的状态信息或它们的组合,以确定预测的功率状态转换是否可能实现目标结果。另外的顾问程序也可以在处理系统100的外部,例如在与处理系统100通信的云系统上实现。

图2是根据一些实施方案的功率管理系统200的框图。功率管理系统200包括用于实现图1所示的PMC 150、155和PMA 160、165的一些实施方案的功率管理控制器205和功率管理顾问程序210。

功率管理控制器205被称为本地功率管理控制器205,因为功率管理控制器205基于与实现功率管理系统200的处理单元的当前功率状态对应的“本地”信息生成表示后续功率状态的信号215。本地信息包含指示处理单元中的一个或多个温度、处理单元消耗的功率、处理单元消耗的电流以及其他活动的信息。本地信息被提供作为输入220。功率管理控制器205不考虑与处理单元的功率状态历史相关联的任何先前状态信息。例如,功率管理控制器205可以实现马尔可夫链模型,以基于处理单元的当前状态确定信号215。

功率管理顾问程序210被称为全局功率管理顾问程序210,因为功率管理顾问程序210生成建议225,该建议指示处理单元的一个或多个状态转换实现目标结果的一个或多个概率。例如,如果目标结果是提高的性能并且处理单元具有多个可用功率状态,则建议225指示向每个可用功率状态的转换实现目标性能提高的概率。如本文所讨论,也可以使用其他目标结果,诸如降低的功率消耗或目标结果的组合。功率管理顾问程序210基于表征处理单元的状态和处理单元的状态历史的全局信息来生成建议225。因此,功率管理顾问程序210接收与本地功率管理控制器205相同的输入220,以及附加输入230,所述附加输入包括表征处理单元当前状态的附加全局状态信息和表征处理单元状态历史的信息。表征处理单元的当前状态和先前状态的信息包括但不限于处理单元的功率状态、在处理单元中实现的性能计数器的值、在处理单元中排队执行的指令或绘制调用命令的特征、确定是否发起处理单元的功率状态转换的功率管理控制器205的输入220、指示由功率管理控制器制定的决策的信息诸如信号215、在处理单元上执行的应用程序的类型、由应用程序提供的提示以及功率管理顾问程序210针对处理单元的先前状态生成的信号。

由全局功率管理顾问程序210生成的建议225被作为附加输入提供给功率管理控制器205,该功率管理控制器将建议225与输入220结合使用以生成指示处理单元的后续功率状态的信号215。功率管理控制器205的一些实施方案基于输入220生成对后续功率状态的预测。然后,功率管理控制器205基于建议225接受预测,或者拒绝该预测并生成新的预测。例如,如果功率管理控制器205预测向空闲状态的转换将节省功率,但是建议225指示从当前状态到空闲状态的先前转换未导致功率的净节省,则功率管理控制器205可以拒绝该预测并且将处理单元维持在其当前活动状态。又如,如果建议225指示状态改变不会实现目标结果的概率为至少50%,则功率管理控制器205拒绝该预测。功率管理顾问程序210的一些实施方案包括状态机,该状态机指示被应用于由功率管理控制器205做出的预测和建议225的权重。权重经由信号225被传送到功率管理控制器205。功率管理控制器205使用权重来确定是否发起处理单元的功率状态转换,如下所讨论。

图3是根据一些实施方案的包括功率管理顾问程序305的电路300的框图。功率管理顾问程序305用于实现图1所示的PMA 160、165和图2所示的全局功率管理顾问程序210的一些实施方案。功率管理顾问程序305的一些实施方案实现神经网络,诸如卷积神经网络(CNN),如下所讨论。

电路300包括一组寄存器310、311、312,它们在本文中统称为“寄存器310-312”。寄存器310-312中的每个寄存器存储处理单元的对应功率状态的状态信息。寄存器310存储处理单元的当前功率状态的状态信息,寄存器311存储处理单元的先前功率状态的状态信息,并且寄存器312存储处理单元的另一个先前功率状态的状态信息,所述另一个先前功率状态在与存储在寄存器311中的状态信息对应的先前功率状态之前。存储在寄存器310-312中的状态信息包括:与处理单元的当前功率状态相关联的性能计数器的值;对应本地功率管理控制器的输入;指示由功率管理控制器选择的后续功率状态的信息;由功率管理顾问程序305生成的建议的值;与能量、功率和性能有关的应用程序提示等。尽管在图3中示出了三个寄存器310-312,但是电路300的一些实施方案包括用于存储对应处理单元的更多或更少的状态信息集的更多或更少的寄存器。

存储在寄存器310-312中的性能计数器在处理单元中与功率管理顾问程序305相关联的硬件块中实现。在一些实施方案中,来自消耗相对大量功率的块的性能计数器值被存储在寄存器310-312中。例如,寄存器310-312可以存储来自着色器阵列、纹理高速缓存层级、DRAM等的性能计数器值。性能计数器被用作输入到功率管理顾问程序305的功能,并且值被用作在功率管理顾问程序305中实现的神经网络的训练样本。在神经网络推理过程中或在神经网络的预测阶段,性能计数器的当前值被用作神经网络的输入。性能计数器提供指示系统级条件和性能的信息。例如,监测处理单元输入命令缓冲区中的绘制数据包的性能计数器可能会影响功率状态决策。如果性能计数器指示许多绘制数据包,则功率状态不应更改为较低的功率状态。处理单元将需要处于较高功率状态以处理绘制数据包。此性能计数器信息不适用于本地性能管理控制器。

响应于更新信号314,更新存储在寄存器310-312中的状态信息。在一些实施方案中,更新信号314响应于功率状态转换而触发寄存器310-312的更新。更新寄存器310-312包括将信息移出寄存器310-312并移入到表示下一个先前状态的寄存器中。例如,寄存器310中的状态信息被移入寄存器311中,寄存器311中的状态信息被移入寄存器312中,并且寄存器312中的状态信息被删除或移入另一个寄存器(未在图3中示出)中。“新”的当前状态的状态信息(即在触发更新信号314的功率状态转换之后的处理单元状态)被存储在寄存器310中。

寄存器310-312中的状态信息被提供给输入矢量电路315,该输入矢量电路基于所提供的状态信息生成输入矢量320。输入矢量320表示处理单元的状态历史,因为它包括处理单元在一系列对应时间间隔处的一系列功率状态的状态信息。输入矢量电路315的一些实施方案通过连接存储在寄存器310-312中的状态信息的值来生成输入矢量320。然而,输入矢量电路315的其他实施方案使用存储在寄存器310-312中的状态信息的各种组合来生成输入矢量320。输入矢量320被提供给功率管理顾问程序305。

表示所计算的先前状态转换的有效性的信息325被提供给训练标签电路330,该训练标签电路生成指示先前状态转换是否有效的标签335。标签335的一些实施方案包括指示先前状态转换是否导致目标结果诸如性能提升、减少的能量使用、它们的组合或其他结果的标签。训练标签电路330将标签335提供给功率管理顾问程序305,该功率管理顾问程序将标签335与输入矢量320结合使用以确定不同功率状态转换将导致目标结果的概率。如本文所讨论,功率管理顾问程序305的一些实施方案被实现为强化学习结构的神经网络。在功率管理顾问程序205中实现的神经网络的实例包括但不限于递归神经网络或残差神经网络。神经网络学习功率状态转换的模式以及该模式导致目标结果的概率。因此,功率管理顾问程序305能够通过将由输入320表示的状态历史与学习到的模式进行比较来生成表示实现目标结果的概率的信号340。使用训练数据集、功率管理顾问程序305生成的信号340的反馈或它们的组合来执行神经网络的训练。

图4是示出根据一些实施方案的处理单元的一系列状态的状态图400。状态图400表示图1所示的GPU 115或CPU 130的一些实施方案的状态。状态图400示出了当前状态401、先前状态402、之前的先前状态403、另一之前的先前状态404以及其他状态405、406,它们在本文中统称为“状态401-406”。状态图400示出了状态之间的转换,诸如从先前状态402到当前状态401的转换410。图4中还示出了使处理单元返回其当前状态401的转换,诸如转换415。状态401-406通过性能计数器的值和其他状态信息来表征,如本文所讨论。状态401-406还与诸如时钟速度、电压、频率等的控制相关联。因此,诸如转换410的转换可以引起控制信号的改变以改变时钟速度、电压、频率、其他参数值或它们的组合。在一些实施方案中,状态信息表征处理单元的多个域,诸如时钟速度域、频率/电压域、功率域等。

诸如图1所示的PMC 150、155或图2所示的本地功率管理控制器205的功率管理控制器使用本地信息预测状态401-406之间的转换。例如,功率管理控制器可以实现马尔可夫链模型以预测功率状态转换的概率。马尔可夫链是描述一系列可能事件的随机模型,其中每个事件的概率仅取决于在先前事件中获得的状态。这些事件是芯片的硬件块(例如,图1所示的GPU 115或CPU 130)或与功率管理控制器相关联的其他实体的状态。功率管理控制器创建马尔可夫链模型,使得通过当前状态401以及从当前状态401到后续状态的转换的概率集来预测后续状态。对状态转换的预测(例如,概率)在运行时更新。

图5是根据一些实施方案的功率管理控制系统500的框图。功率管理控制系统500在图1所示的处理系统100的一些实施方案中实现。功率管理控制系统500包括本地功率管理控制器505和使用神经网络510实现的功率管理顾问程序。本地功率管理控制器505用于实现图1所示的PMC 150、155和图2所示的本地功率管理控制器205的一些实施方案。神经网络510用于实现图1所示的PMA 160、165、图2所示的全局功率管理顾问程序210和图3所示的PMA 305的一些实施方案。实现功率管理控制系统500的处理单元具有八个可用的功率状态511、512、513、514、515、516、517、518,它们在本文中统称为“功率状态511-518”。

功率管理控制器505基于当前功率状态的本地状态信息生成包括功率状态511-518之间的状态转换的概率的预测520,所述当前功率状态在所示的实施方案中是功率状态511。在一些实施方案中,功率管理控制器505使用从处理单元的当前功率状态511到可用功率状态511-518的马尔可夫链状态转换概率(X[0..N-1])生成预测520。N的值是功率状态的数量,诸如在一些GPU实现方式中可用的八个功率状态。

神经网络510生成表示向后续状态转换的概率的建议525。例如,概率可以表示为:

P

其中N为功率状态的数量,S表示当前功率状态中的处理单元的状态以及处理单元的一个或多个先前功率状态,M表示由性能计数器的当前值和先前值指示的机器状态,并且A表示当前和先前的应用程序信息,诸如应用程序的类型(例如,图形或计算)、一个或多个命令缓冲区中的命令提示(可以由对应的驱动程序向下传递)、指令队列内的着色器指令等。因此,由神经网络510生成的建议525是处理单元的状态历史的函数以及处理单元(诸如性能计数器)的全局参数,如本文所讨论。

通过组合概率X(如使用常规马尔可夫链由功率管理控制器505生成)和P

P

在一些实施方案中,概率与相等的权重组合,例如,总概率等于概率P和P

图6是根据一些实施方案的确定所应用的权重的状态机600的框图。状态机600在图1所示的PMA 160、165、图2所示的全局功率管理顾问程序210、图3所示的PMA 305或图5所示的神经网络510的一些实施方案中实现。状态机600具有四个状态601、602、603、604,它们在本文中统称为“状态601-604”。状态601与第一权重和第二权重相关联,第一权重具有被应用于由本地功率管理控制器生成的预测(例如,马尔可夫链概率X[0..N-1])的值1,第二权重具有被应用于由全局功率管理顾问程序生成的建议(例如,神经网络510基于状态历史生成的概率P

基于在先前状态转换中是否实现目标结果来确定状态601-604之间的转换。例如,如果性能提升或功率节省增加的量超过功率状态转换的成本,则实现目标结果。如果性能提升或功率节省不超过功率状态转换的成本,则无法实现目标结果。如果实现目标结果,则状态机600保持在状态601,如转换610所指示。如果未实现目标结果,则状态机600从状态601转换到状态602,如转换611所指示。如果实现目标结果,则状态机600保持在状态602,如转换612所指示。如果未实现目标结果,则状态机600从状态602转换到状态603,如转换613所指示。如果实现目标结果,则状态机600保持在状态603,如转换614所指示。如果未实现目标结果,则状态机600从状态603转换到状态604,如转换615所指示。如果实现目标结果,则状态机600保持在状态604,如转换616所指示。如果未实现目标结果,则状态机600从状态601转换到状态601,如转换617所指示。

由状态601-604定义的权重值用于组合由本地功率管理控制器预测的概率P和由全局功率管理顾问程序生成的建议中的概率P

P

状态机600的一些实施方案实现更多或更少的状态,这些状态表示被应用于由本地功率管理控制器和全局功率管理顾问程序生成的概率的权重的不同组合。

在一些实施方案中,上述设备和技术在包括一个或多个集成电路(IC)装置(也称为集成电路封装或微芯片)的系统诸如上文参考图1至图6所述的功率管理系统中实现。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可用于设计和制造这些IC设备。这些设计工具通常被表示为一个或多个软件程序。这些软件程序可以操纵计算机系统以对表示一个或多个IC装置的电路的代码进行操作,以便执行用以设计或调适制造系统从而制造电路的过程的至少一部分。这个代码可以包括指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在可由计算系统访问的计算机可读存储介质中。同样,代表IC装置的设计或制作的一个或多个阶段的代码可以存储在相同的计算机可读存储介质或不同的计算机可读存储介质中并且从其进行访问。

计算机可读存储介质可包括在使用期间可由计算机系统存取以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质可包括但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。计算机可读介质可嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接至计算系统(例如,磁性硬盘驱动器)、可移除地附接至计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器)或经由有线或无线网络而耦合至计算机系统(例如,网络可存取存储(NAS))。

在一些实施方案中,上述技术的某些方面可由执行软件的处理系统的一个或多个处理器来实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一组或多组可执行指令。软件可包括指令和某些数据,当由一个或多个处理器执行时,所述指令和某些数据操纵所述一个或多个处理器来执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可包括例如磁盘或光盘存储装置、固态存储装置,诸如快闪存储器、高速缓存、随机存取存储器(RAM)或一种或多种其他非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以呈源代码、汇编语言代码、目标代码或者被一个或多个处理器解译或可以其他方式执行的其他指令格式。

应当注意,并不需要上文在一般描述中所描述的所有活动或元件,特定活动或装置的一部分可能是不需要的,并且可执行一个或多个其他活动,或者可包括除所描述的那些元件之外的元件。此外,列出活动的顺序不一定是执行所述活动的顺序。另外,已经参考具体实施方案描述了概念。然而,本领域普通技术人员应了解,在不脱离如所附权利要求中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,本说明书和附图将被视为说明性的而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。

上文已经关于具体实施方案描述了益处、其他优点和问题解决方案。然而,所述益处、优点、问题解决方案以及可使任何益处、优点或问题解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,上文所公开的实施方案只是说明性的,因为所公开的主题可以按受益于本文教导的本领域技术人员显而易见的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限制本文所示出的构造或设计的细节。因此,明显的是,上文所公开的实施方案可以更改或修改,并且所有此类变化都被认为是在所公开的主题的范围内。因此,本文所寻求的保护正如所附权利要求中所陈述。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号