首页 / 专利库 / 电脑零配件 / 固件 / 自适应功率控制环路

自适应功率控制环路

阅读:42发布:2024-01-17

专利汇可以提供自适应功率控制环路专利检索,专利查询,专利分析的服务。并且GPU通过在具有不同时钟和 电压 电平的预定义功率电平之间切换来执行动态功率电平管理。所述动态功率电平管理包括识别连续数量的测量周期中与所述GPU处的处理工作负载相关联的第一性能度量。在一些实施方案中,所述连续数量的测量周期包括当前测量周期和至少一个先前测量周期。基于所述连续数量的测量周期超过最小滞后数的确定,确定未来测量周期中要应用于所述GPU的估计的优化。基于所述估计的优化来调整所述未来测量周期中所述GPU处的功率电平设置。通过考虑包括例如不同处理工作负载和 硬件 配置的性能度量,所述GPU能够动态地使其功率设置适应其当前正在处理的特定工作负载。,下面是自适应功率控制环路专利的具体信息内容。

1.一种方法,其包括:
识别连续数量的测量周期中与图形处理单元(GPU)处的处理工作负载相关联的第一性能度量,其中所述连续数量的测量周期包括当前测量周期和至少一个先前测量周期;
确定所述连续数量的测量周期超过最小滞后数;
确定未来测量周期中要应用于所述GPU的估计的优化;以及
基于所述估计的优化,基于所述估计的优化来调整所述未来测量周期中所述GPU处的功率电平设置。
2.如权利要求1所述的方法,其中调整所述功率电平设置包括改变所述GPU处的核心时钟频率存储器时钟频率中的至少一个。
3.如权利要求1所述的方法,其中识别所述第一性能度量包括识别所述GPU的平均利用率百分比、所述GPU的平均操作温度以及在所述当前测量周期期间消耗的平均累积功率中的至少一个。
4.如权利要求1所述的方法,其中识别所述第一性能度量包括基于所述当前测量周期中所述GPU的当前处理工作负载以及基于所述未来测量周期中所述GPU的预期未来处理工作负载来识别所述第一性能度量。
5.如权利要求1所述的方法,其中所述最小滞后数基于所述第一性能度量与性能度量阈值之间的关系而随时间变化。
6.如权利要求1所述的方法,其还包括:
识别所述连续数量的测量周期中所述第一性能度量超过性能度量阈值;以及将所述功率电平设置调整为所述未来测量周期中的性能优化的设置。
7.如权利要求1所述的方法,其还包括:
识别所述连续数量的测量周期中所述第一性能度量低于性能度量阈值;以及将所述功率电平设置调整为所述未来测量周期中的功率节省优化的设置。
8.如权利要求1所述的方法,其中调整所述GPU处的所述功率电平设置包括基于所识别的第一性能度量与性能度量阈值之间的差异,在所述GPU处将所述未来测量周期中的所述功率电平设置调整当前功率电平的大小。
9.一种包含一组可执行指令的非暂时性计算机可读介质,所述可执行指令组用于操纵处理器以:
识别连续数量的测量周期中与图形处理单元(GPU)处的处理工作负载相关联的第一性能度量,其中所述连续数量的测量周期包括当前测量周期和至少一个先前测量周期;
确定所述连续数量的测量周期超过最小滞后数;
确定未来测量周期中要应用于所述GPU的估计的优化;以及
基于所述估计的优化调整所述未来测量周期中所述GPU处的功率电平设置。
10.如权利要求9所述的非暂时性计算机可读介质,其中所述处理器还用于:
识别所述连续数量的测量周期中所述第一性能度量超过性能度量阈值;以及将所述功率电平设置调整为所述未来测量周期中的性能优化的设置。
11.如权利要求9所述的非暂时性计算机可读介质,其中所述处理器还用于:
识别所述连续数量的测量周期中所述第一性能度量低于性能度量阈值;以及将所述功率电平设置调整为所述未来测量周期中的功率节省优化的设置。
12.如权利要求9所述的非暂时性计算机可读介质,其中调整所述功率电平设置包括改变所述GPU处的核心时钟频率和存储器时钟频率中的至少一个。
13.如权利要求9所述的非暂时性计算机可读介质,其中识别所述第一性能度量包括识别所述GPU的平均利用率百分比、所述GPU的平均操作温度以及在所述当前测量周期期间消耗的平均累积功率中的至少一个。
14.如权利要求9所述的非暂时性计算机可读介质,其中调整所述GPU处的所述功率电平设置包括基于所识别的第一性能度量与性能度量阈值之间的差异,在所述GPU处将所述未来测量周期中的所述功率电平设置调整当前功率电平的大小。
15.如权利要求9所述的非暂时性计算机可读介质,其中所述最小滞后数基于所述第一性能度量与性能度量阈值之间的关系而随时间变化。
16.一种设备,其包括:
图形处理单元(GPU),所述图形处理单元包括:
图形管线,所述图形管线包括多个计算单元(CU);
性能模,所述性能模块用于识别连续数量的测量周期中与所述GPU处的处理工作负载相关联的第一性能度量,其中所述连续数量的测量周期包括当前测量周期和至少一个先前测量周期;以及
功率和时钟控制器模块,所述功率和时钟控制器模块用于响应于确定所述连续数量的测量周期超过最小滞后数而调整未来测量周期中所述GPU处的功率电平设置。
17.如权利要求16所述的设备,其中所述设备还包括GPU驱动器模块,所述GPU驱动器模块被配置为基于在所述连续数量的测量周期内所述GPU处的所述处理工作负载来确定所述未来测量周期中要应用于所述GPU的估计的优化,并且此外,其中所述估计的优化是从包括多个性能优化的设置和多个功率节省优化的设置的一组预定义功率电平设置中选择的。
18.如权利要求17所述的设备,其中所述功率和时钟控制器模块还被配置为基于所述估计的优化调整所述GPU处的核心时钟频率和存储器时钟频率中的至少一个。
19.如权利要求16所述的设备,其中所述性能模块还被配置为识别所述GPU的平均利用率百分比、所述GPU的平均操作温度以及在所述当前测量周期期间消耗的平均累积功率中的至少一个。
20.如权利要求16所述的设备,其中所述设备还包括GPU固件,所述GPU固件被配置为基于在所述性能模块处捕获的传感器数据来计算所述第一性能度量。

说明书全文

自适应功率控制环路

背景技术

发明领域
[0001] 本公开总体上涉及功率管理,更具体地涉及图形处理单元(GPU)中的功率管理。
[0002] 相关领域的描述
[0003] 处理器越来越多地用于需要优化功耗的环境中。例如,处理器是支持计算的智能手机、膝上型计算机、便携式游戏设备等的重要组成部分,其中期望的是使功耗最小化以延长电池寿命。处理器通常还包含图形处理单元(GPU)以增强处理器的图形功能。GPU允许电子设备以相对高的速率显示复杂图形,从而增强用户体验。但是,GPU也可以增加处理器的功耗。附图说明
[0004] 通过参考附图,本领域技术人员可以更好地理解本公开,并且其众多特征和优势是显而易见的。不同附图中使用的相同参考符号指代相同或相似物品。
[0005] 图1是根据一些实施方案的采用自适应功率控制的处理系统的框图
[0006] 图2是根据一些实施方案的示出用于在图1的处理系统处执行动态功率电平管理的功率控制环路的框图。
[0007] 图3是根据一些实施方案的示出图1的功率控制环路所采用的各种功率电平调整因子的图。
[0008] 图4是根据一些实施方案的执行自适应功率控制的方法的流程图

具体实施方式

[0009] 图1至图4示出了用于通过根据GPU当前正在处理的特定工作负载启用功率管理设置的调整以改变时钟和电压电平来在处理系统的GPU处进行动态功率电平管理的技术。在每个测量周期中,GPU驱动器从所测量的硬件性能度量(例如,在前一周期中累积的平均利用率、温度和功率)和表示当前计算环境的数据(例如,系统请求的工作负载的类型,性能测量值如每秒数(FPS)、吞吐量或每单位时间提交数)中获取输入,以计算下一周期中要使用的功率电平设置(即控制GPU操作的操作参数,如时钟频率或工作电压)。在一些实施方案中,计算出的设置可以包括时钟可以改变频率(上/下滞后)的速率、用于改变时钟频率的活动阈值等。
[0010] 在一些实施方案中,动态功率电平管理包括识别连续数量的测量周期中与处理系统处的处理工作负载相关联的第一性能度量。连续数量的测量周期包括当前测量周期和至少一个先前测量周期。基于连续数量的测量周期超过最小滞后数的确定,确定未来测量周期中要应用于GPU的估计的优化。基于估计的优化来调整未来测量周期中GPU处的功率电平设置。通过考虑包括例如不同处理工作负载和硬件配置的性能度量,GPU能够动态地使其功率设置适应其当前正在处理的特定工作负载。
[0011] 与本文公开的技术相反,传统处理器可以基于使用预定义的度量和阈值的静态设置来改变GPU的功率设置。然而,这种传统技术不考虑不同的操作环境(例如,操作系统环境温度、运行时遇到的不同应用程序和/或用例的不同工作负载、不同硬件配置等的差异)。通过实现考虑包括运行时硬件性能和诸如特定处理工作负载的识别之类的输入的度量,本文公开的技术允许GPU定制功率电平设置以更好地优化功率节省和性能提升。
[0012] 如本文所使用的,术语“处理工作负载”指的是GPU在给定时间间隔内完成的工作的类型和数量,其中当GPU在给定时间量内做更多工作时,处理工作负载增加。在一些实施方案中,处理工作负载包括至少两个组成部分:当前处理工作负载和预期的未来处理工作负载。当前处理工作负载指的是在测量当前处理工作负载时GPU当前正在经历的处理工作负载,或GPU在相对较近的过去所经历的处理工作负载。在一些实施方案中,基于GPU的一个或多个单独模处的活动量(如基于GPU的处理器核心中给定时间量内活动与空闲计算单元的百分比)来识别当前处理工作负载。预期的未来处理工作负载指的是GPU在相对较近的未来预计经历的处理工作负载。在一些实施方案中,基于预定在GPU处执行的多个线程来识别预期的未来处理工作负载。
[0013] 图1是根据一些实施方案的处理系统100的框图。处理系统包括耦合到其他系统组件的图形处理单元(GPU)102,例如在中央处理单元(CPU)104处的一个或多个通用处理器核心(未示出)、计算机可读存储介质106或在图1中未示出的一个或者多个其他模块,包括其他存储器设备,如被配置为形成高速缓存的存储器模块、诸如北桥或南桥等的接口模块等。例如,在各种实施方案中,GPU 102耦合到GPU存储器(未示出),例如作为帧缓冲器操作的随机存取存储器(RAM)。GPU 102可以是各种电子设备中的任何一个的一部分,例如计算机、服务器、支持计算的便携式电话、游戏控制台等。通常,计算机可读存储介质106包括在使用期间由处理系统100可访问的任何存储介质,以向处理系统100提供指令和/或数据。
[0014] 计算机可读存储介质106存储操作系统(OS)108、GPU驱动器110和GPU固件112。操作系统108、GPU驱动器110和GPU固件112中的每一个包括在处理系统100中执行时实现本文描述的操作的指令。在一个实施方案中,OS 108和GPU驱动器110在CPU 104处执行,并且GPU固件在GPU 102处(例如,在GPU 102的一个或多个处理器核心(未示出)上)执行。在其他实施方案中,OS 108在CPU 104处执行,并且GPU驱动器110和GPU固件112都在GPU 102处(例如,在GPU 102的一个或多个处理器核心(未示出)上)执行。然而,本领域普通技术人员将认识到,在各种实施方案中,操作系统108、GPU驱动器110以及GPU固件112中的任何一个在处理系统100中的其他地方实现,而不脱离本公开文本的范围。在一些实施方案中,GPU驱动器110是控制GPU 102如何与处理系统100中的其他组件或模块交互的软件模块。具体而言,GPU驱动器110在GPU 102与操作系统108和/或包括GPU 102的设备(例如,处理系统100)的硬件之间提供接口。
[0015] 为了支持图形工作负载的处理,GPU 102包括图形管线114、调度器116和GPU性能模块118,以及功率和时钟控制器模块120。在所描绘的示例中,图形管线114通常被配置为执行指令线程以执行图形相关任务,包括诸如处理图形工作负载等的任务。在至少一个实施方案中,GPU驱动器110将图形工作负载提供给图形管线114以进行处理。图形工作负载(未示出)是一组图形指令,其在被执行时导致GPU 102生成一个或多个对象用于显示。例如,图形工作负载可以是用于呈现视频或静态图形的帧或部分的指令线程。
[0016] 为了便于执行线程,图形管线114包括计算单元(CU)122。在一些实施方案中,图形管线114可以包括未在图1中具体示出的附加模块,诸如缓冲器、存储器设备(例如,用作高速缓存或用作临时存储器的存储器)、用于促进与GPU 102的其他模块的通信的接口设备等。每个CU 122(例如,CU 122(1)和122(2))通常被配置为代表GPU 102以管线方式执行指令。此外,每个CU 122可以包括未在图1中具体示出的附加模块,诸如代表CU获取和解码指令的获取和解码逻辑、存储用于执行指令的数据的寄存器文件、高速缓冲存储器等。
[0017] 调度器116接收在GPU 102处执行线程的请求,并调度这些线程以在图形管线114处执行。在一些实施方案中,这些请求是从CPU 104中的处理器核心接收的。调度器116缓冲每个接收到的请求,直到一个或多个CU 122可用于执行线程。当一个或多个CU 122可用于执行线程时,调度器116通过例如将线程的初始指令的地址提供给一个或多个CU(例如,CU 122(1))的获取阶段来启动线程的执行。
[0018] GPU性能模块118监测GPU 102处的性能特性,包括监测图形管线114和调度器116处的性能特性以识别GPU 102处的处理工作负载。在一些实施方案中,例如图1中所示,GPU性能模块118包括利用率监测器124、一个或多个温度传感器126和一个或多个功率传感器128。利用率监测器124监测图形管线114的利用率(例如,它有多忙)并生成繁忙百分比度量,其表示例如图形管线114中CU 122的活动的百分比平。
[0019] 一个或多个温度传感器126测量GPU 102的操作温度。一个或多个温度传感器126可以是任何类型的温度传感电路。在一些实施方案中,当实现不止一个温度传感器时,这些温度传感器可以物理地分布在GPU的表面上,并且不限于物理地分布在GPU性能模块118内。一个或多个功率传感器128测量GPU 102的功耗。在一些实施方案中,一个或多个功率传感器128从功率测量电路(未示出)接收数据,该功率测量电路测量来自GPU 102的电源的电流以确定功耗。在其他实施方案中,一个或多个功率传感器128基于GPU 102中的活动水平来估计功耗。例如,一个或多个功率传感器128可以被配置为读取GPU102中的各种性能计数器以导出功耗的估计。
[0020] GPU 102的性能取决于多个操作参数,包括但不限于:GPU 102的GPU处理器核心时钟速率、GPU存储器(例如,帧缓冲器)的存储器时钟速率,以及时钟速率所需的其他相关联设置,如应用于核心时钟和存储器时钟的参考电压、扇速度(例如,以提供冷却)、存储器定时等。通常,GPU 102的性能(例如,以每秒帧数(FPS)为单位)随着核心时钟速率的提高和存储器时钟速率的提高而提升。
[0021] 功率和时钟控制器模块120包括控制元件以控制用于GPU 102的功率管理的参数。在一个实施方案中,功率和时钟控制器模块120包括核心时钟和电压控制器130以及存储器时钟和电压控制器132。核心时钟和电压控制器130为GPU 102生成核心时钟信号和核心电压信号。类似地,存储器时钟和电压控制器132为GPU 102生成存储器时钟信号和存储器电压信号。
[0022] 功率和时钟控制器模块120实现电压和频率缩放以调整GPU处理器核心和GPU的电压和/或时钟水平,以在一组预定义的GPU设置(例如,每个具有不同的时钟和电压电平)之间切换。该组预定义GPU设置包括GPU 102的各种配置,其在给定功耗下提供不同的GPU性能水平,包括至少多个性能优化的GPU设置组和多个功率优化的GPU设置组。在实施方案中,GPU设置可以包括电压幅值和操作频率。电源电压幅值和操作频率的组合在本文中通常称为“功率电平”。电源电压幅值可以是提供给GPU处理器核心和/或GPU存储器的电源电压的幅值。操作频率可以是提供给GPU处理器核心和/或GPU存储器的一个或多个时钟的频率。通常,提供给GPU的操作频率和/或电压越高,性能和功耗越高。
[0023] 如本文进一步详述的,GPU驱动器110通过基于处理系统100的过去行为和当前的和/或即将到来的工作负载周期性地确定新的GPU设置(即功率电平)来执行动态功率电平管理。使用固定时间间隔(在本文中称为“测量周期”或“周期”)基于过去行为对未来行为的优化设置的预测来确定新的GPU设置。在每个测量周期中,GPU驱动器110基于多个输入预测下一周期的优化设置,包括来自GPU性能模块118的硬件信号、计算的性能度量以及GPU 102正在处理的工作负载的类型中的至少一个。
[0024] 例如,在每个测量周期中,来自GPU性能模块118的硬件信号用于计算以下各项中的一个或多个:来自利用率监测器124的平均繁忙百分比度量、来自一个或多个温度传感器126的平均温度度量和来自一个或多个功率传感器128的测量周期期间消耗的平均累积功率。在预测要应用于未来周期的功率电平设置时也考虑其他输入,如计算的性能测量(例如FPS、吞吐量、每单位时间提交数)和GPU 102正在处理的工作负载/用例的类型(例如分析、可视化、3D图像渲染人工智能处理、通用计算功能等)。另外,在一些实施方案中,GPU驱动器110还在预测要应用于未来周期的功率电平设置时考虑预期的未来处理工作负载。
[0025] 图2是根据一些实施方案的示出用于在图1的处理系统处执行动态功率电平管理的功率控制环路200的框图。尽管本文在当前测量周期和下一周期的背景下进行了描述,但是本领域普通技术人员将认识到所描述的功率电平管理操作可以应用于任何数量的周期。对于当前测量周期,驱动器202(诸如图1的GPU驱动器110)从与GPU(诸如图1的GPU 102)相关联的固件204和硬件206接收输入。固件204被配置为使用来自硬件206的硬件信号(例如,来自GPU性能模块118的数据)来计算平均活动百分比度量、平均温度度量以及平均功耗度量中的至少一个。另外,驱动器202还接收其他系统输入208,诸如计算的性能测量(例如FPS、吞吐量、每单位时间提交数)以及GPU 102正在处理的工作负载/用例的类型(例如分析、可视化、3D图像渲染、人工智能处理、通用计算功能等)。在一些实施方案中,可以通过操作系统(例如,图1的OS 108)和/或CPU(例如,图1的CPU 104)将其他系统输入208提供给驱动器。
[0026] 在一个实施方案中,固件204计算当前测量周期的平均活动百分比度量,其表示GPU中的利用活动的百分比水平。平均活动百分比度量(其可以以0-100%之间的百分比表示)表示例如GPU(例如,图1的图形管线114中的CU 122)中的计算单元的活动的百分比水平。驱动器202从固件204接收平均活动百分比度量,并将平均活动百分比度量与预定活动阈值进行比较。
[0027] 在计算的平均活动百分比度量达到预定活动阈值(即,指示GPU处的更高的处理活动水平)之后,固件204确定是否将GPU的功率电平调整为不同的时钟和/或电压设置。在一些实施方案中,固件204基于预先确定的上、下滞后电平确定是否应该调整功率电平。如果平均活动百分比度量等于或高于给定当前测量周期的预先确定的活动阈值,则固件204在通过提高提供给GPU的操作频率和/或电压来调整GPU的功率电平之前在多个未来周期上重复检查是否继续将平均活动百分比度量保持在活动阈值或高于活动阈值(即,指示GPU处的更高的处理活动水平)。上滞后和下滞后电平在平均活动百分比度量与活动阈值交叉时与在固件204调整功率电平时之间提供动态滞后以防止不期望的频繁切换。例如,假设GPU利用率为50%的假定活动阈值,当活动百分比度量在一个测量周期与另一个测量周期之间从49%振荡到51%时,改变功率电平将是低效且不合需要的。
[0028] 上滞后电平提供最小连续周期数,在通过提高提供给GPU的操作频率和/或电压来调整GPU的功率电平之前,活动百分比度量必须保持在活动阈值或高于活动阈值。因此,设置的上滞后电平越高,固件204将越慢并且不太可能提高功率电平。设置的上滞后电平越低,固件204将越快并且越可能提高功率电平。类似地,如果活动百分比度量低于活动阈值,则固件204将在通过降低提供给GPU的操作频率和/或电压来调整GPU的功率电平之前在多个未来周期上重复检查是否继续将平均活动百分比度量保持在低于活动阈值(即,指示GPU处的更低的处理活动水平)。下滞后电平提供最小连续周期数,在降低GPU的功率电平之前,活动百分比度量必须保持在低于活动阈值。因此,设置的下滞后电平越高,固件204将越慢且不太可能降低功率电平;固件204将在较长时间段中将功率电平保持在较高水平。设置的下滞后电平越低,固件204将越快并且越可能允许功率电平下降。
[0029] 在一些实施方案中,驱动器202基于下面提供的表1确定是否应该调整功率电平。
[0030]活动百分比 上滞后 下滞后 活动阈值
>=阈值 降低 提高 降低
<阈值 提高 降低 提高
[0031] 表1:活动百分比度量与活动阈值的比较
[0032] 根据表1,当活动百分比度量等于或高于活动阈值时,驱动器202通过降低上滞后电平、提高下滞后电平和/或降低调整到更高的功率电平设置所需的活动阈值来优选有利于性能优化的功率电平设置。当活动百分比度量(即繁忙信号)低于活动阈值时,驱动器202通过提高上滞后电平、降低下滞后电平和/或提高调整到更高的功率电平设置所需的活动阈值来优先选择有利于功率优化和保护的功率电平设置。
[0033] 在一些实施方案中,基于活动百分比度量(即繁忙信号)高于或低于活动阈值多少来进一步计算可以从一个周期到另一个周期调整的功率电平设置的量。图3是根据一些实施方案的示出各种功率电平调整因子的表图300。在表图300中,纵列302表示活动百分比度量,并且功率电平设置可以从一个周期到另一个周期改变的最大量被称为最大调整因子(MAF)。
[0034] 在纵列304的实施方案中,GPU驱动器(例如,图2的驱动器202)被配置为具有50%的活动阈值、1-5的调整因子范围以及为5的MAF。此配置可以应用于例如GPU处的通用计算功能处理。假设满足了上和/或下滞后电平,纵列304的实施方案显示调整因子(即,功率电平设置可以从当前测量周期到未来的下一测量周期改变的量)取决于当前测量周期的活动百分比度量(即繁忙信号)与活动阈值之间的差异程度。例如,分别由于它们与50%的活动阈值的相对邻近和距离,40-60%范围内的繁忙信号被分配了调整因子“1”,而0-10%或90-10%范围内的繁忙信号被分配了调整因子“5”。
[0035] 本领域普通技术人员将认识到,本文讨论的调整因子并不旨在与任何特定功率电平(例如,特定电压或工作频率)或功率电平之间的比率相关联。相反,提供了调整因子以显示功率电平调整幅度的相对差异。例如,基于调整因子“2”的未来测量周期的功率电平设置将在幅度上大于基于调整因子“1”的功率电平设置。类似地,基于调整因子“3”的未来测量周期的功率电平设置将在幅度上大于基于调整因子“1”或“2”的功率电平设置,依此类推。
[0036] 在纵列306的实施方案中,GPU驱动器(例如,图2的驱动器202)被配置为具有50%的活动阈值、2-10的调整因子范围以及为10的MAF。此配置可以应用于例如高活动图形处理工作负载,诸如游戏应用程序或3D渲染,其中期望的是更快速地提高功率电平和GPU性能(尽管以功率节省为代价)。例如,纵列306的实施方案中的50-60%范围内的繁忙信号被分配了调整因子“2”(与纵列304的实施方案的60-70%范围内的繁忙信号被分配了相同的调整因子“2”形成对比)。因此,纵列304的实施方案需要比纵列306的实施方案更高的测量活动百分比以达到相同的功率电平设置。可选地,调整因子和MAF的差异说明纵列304的实施方案可能需要多个周期才能达到纵列306的实施方案在单个周期内达到的功率电平。
[0037] 在纵列308的实施方案中,GPU驱动器(例如,图2的驱动器202)被配置为具有30%的活动阈值、0-10的调整因子范围以及为10的MAF。这种配置可以应用于例如处理系统,其中期望的是以更细的粒度来考虑功耗(例如,以电池电源运行的笔记本电脑)。假设满足上和/或下滞后电平,纵列308的实施方案显示30%的较低活动阈值允许面向功率节省的设置,其中功率电平被允许降低的速度(即,对于测量活动的每三个百分点的变化,调整因子改变“1”)比它们被允许上升的速度(即,对于高于30%阈值的测量活动的每七个百分点的变化,调整因子改变“1”)快两倍。
[0038] 应该认识到,纵列304-308的实施方案被提供作为如何调整功率设置以考虑性能度量的示例,包括例如不同的处理工作负载和硬件配置。本领域普通技术人员将理解,这种实施方案不旨在将本文提供的教导的范围限制于具体描述的实施方案。
[0039] 图4是根据一些实施方案执行自适应功率控制的方法400的流程图。在框402处,方法400开始于基于GPU处的当前处理工作负载接收当前测量周期的性能度量。在一个实施方案中,例如上面参照图1和图2描述的,GPU驱动器从GPU固件和硬件接收输入。固件被配置为取得来自硬件的硬件信号(例如,来自相对于图1描述的GPU性能模块118的数据)来计算性能度量,包括平均活动百分比度量、平均温度度量以及平均功耗度量中的至少一个。另外,GPU驱动器还接收其他系统输入,例如GPU 102正在处理的工作负载/用例的类型的标识(例如,诸如通用计算功能的低活动工作负载或诸如分析、可视化、3D图像渲染、人工智能处理等的高活动工作负载)、处理系统的特定硬件配置(例如,RAM存储器的数量、CPU的类型等)和当前测量周期的计算的性能测量(例如,FPS、吞吐量、每单位时间提交数)。因此,GPU驱动器不仅概述了GPU从一个测量周期到另一个测量周期处理的特定工作负载,而且还接收指示特定硬件配置如何执行那些工作负载的性能度量。
[0040] 在框404处,将当前测量周期中所接收的性能度量与预先确定的度量阈值进行比较,以确定GPU驱动器是否应该将GPU功率电平从当前测量周期中的当前设置调整到下一测量周期中的不同设置。在一个实施方案中,例如相对于图2和图3所描述的,性能度量包括活动百分比度量,其指示GPU硬件每单位时间(即,每个测量周期)处理多少工作负载。一旦活动百分比度量满足或超过预先确定的活动百分比阈值,GPU驱动器进行到框406并尝试将GPU的功率电平(例如,应用到GPU的操作频率或电压)提高到提供增强性能的下一更高水平。
[0041] 本领域普通技术人员将认识到,实施方案是在活动百分比的背景下具体描述的,本文描述的动态功率电平管理操作可以与活动百分比结合使用,或者可选地排除活动百分比并且支持其他性能度量,如GPU处的平均操作温度、GPU消耗的平均功率或者由GPU性能模块(例如,图1的GPU性能模块118)中的传感器/监测器捕获(或者可以从其捕获的数据中导出)的其他性能相关数据。例如,在一些实施方案中,方法400可以结合平均活动百分比考虑平均操作温度,以便如果GPU驱动器检测到GPU过热,则使GPU能够在非密集或低活动工作负载期间降低功率电平并且更快地冷却。
[0042] 在框406处,GPU驱动器确定所接收的性能度量在超过最小滞后数的多个连续周期中是否已超过度量阈值。在一个实施方案中,例如相对于图2和图3所描述的,滞后数包括上和/或下滞后电平,其定义了活动百分比度量必须保持在活动阈值或高于活动阈值的最小连续测量周期数,以允许调整GPU的功率电平设置。例如,上滞后电平定义在提高GPU的功率电平之前必须将活动百分比度量保持在活动阈值或高于活动阈值的最小连续周期数。类似地,下滞后电平定义在降低GPU的功率电平之前必须将活动百分比度量保持在低于活动阈值的最小连续周期数。应当理解,上、下滞后电平的精确值是设计选择的问题,因此本文不做讨论。
[0043] 如果GPU驱动器在框406处确定所接收的性能度量在超过最小上滞后数的多个连续周期中未满足度量阈值,则方法400返回到框402。如果GPU驱动器在框406处确定所接收的性能度量在超过最小上滞后数的多个连续周期中已满足度量阈值,则方法400前进到框408。
[0044] 在框408处,GPU驱动器确定下一测量周期中要应用于GPU的GPU设置的估计的优化。在一个实施方案中,例如相对于图1所描述的,GPU设置(例如,核心时钟的电压和频率以及GPU的存储器时钟)的估计的优化可以从一组预定义GPU设置中确定,所述预定义GPU设置包括在给定功耗下提供不同GPU性能水平的GPU的各种配置,包括至少多个性能优化的GPU设置组和多个功率优化的GPU设置组。例如,基于来自具有静态功率电平设置的系统的数据来选择该组预定义GPU设置,以将作为频谱一端的表示性能优化的设置组的一系列设置提供给作为另一端的功率优化的设置组。如本公开文本中所述,动态功率电平管理操作不仅仅基于超过静态预定义阈值的活动百分比度量来提高功率电平。相反,本文描述的性能度量的超出作为先决条件用于GPU驱动器基于对当前工作负载特有的其他因素(例如,OS的差异、环境的周围温度差异、在OS上运行的应用程序的工作负载差异,以及处理系统的硬件配置差异,如RAM、CPU、主板芯片组等)的考虑来确定GPU设置的估计的优化。此外,可以基于不同API( 9(DX9)、DX10、DX11、DX12等)的典型行为的预设设置来估计最佳设置。另外,可以不仅基于来自当前和先前测量周期的工作负载来估计最佳设置,还可以包括与由GPU调度器调度执行的预期未来工作负载相关的信息。
[0045] 在框410处,GPU驱动器指示GPU基于估计的优化来调整未来测量周期中GPU处的功率电平设置。在一个实施方案中,如相对于图1所描述的,GPU驱动器指示GPU处的功率和时钟控制器模块(例如,图1的功率和时钟控制器模块120)在该组预定义GPU设置(例如,每个具有不同的时钟和电压电平)之间切换,每个预定义GPU设置在给定功耗下提供不同的GPU性能水平。在一些实施方案中,功率和时钟控制器模块包括核心时钟和电压控制器以及存储器时钟和电压控制器,以便为GPU生成时钟和电压信号。
[0046] 现在返回到框404,如果确定活动百分比度量低于预先确定的活动百分比阈值,则GPU驱动器进行到框412并尝试将GPU的功率电平(例如,应用到GPU的操作频率或电压)降低到提供降低的性能和改进的功率节省的下一较低电平。在框412处,GPU驱动器确定所接收的性能度量在超过最小滞后数的多个连续周期中是否已超过度量阈值。如果GPU驱动器在框412处确定所接收的性能度量在超过最小下滞后数的多个连续周期中未满足度量阈值,则方法400返回到框402。如果GPU驱动器在框412处确定所接收的性能度量在超过最小下滞后数的多个连续周期中已满足度量阈值,则方法400前进到框414。
[0047] 在框414处,GPU驱动器确定下一测量周期中要应用于GPU的GPU设置的估计的优化。框414的操作类似于先前相对于框408所描述的那些操作,不同之处在于估计的优化用于提供降低的性能和提高的功率节省的较低功率电平,而不是提供框408的改进的性能的估计。在框416处,GPU驱动器指示GPU基于估计的优化(类似于框410的操作)来调整未来测量周期中GPU处的功率电平设置。
[0048] 应当理解,动态功率管理操作不在框410和/或416处结束。相反,GPU周期性地执行方法400的操作以动态地调整功率电平以基于在任何给定时间处理的工作负载来优化功率节省和性能提高。这允许GPU保持面向功率节省的设置,并且在高活动工作负载开始处理之后,GPU转向面向性能的设置,然后在GPU再次空闲之后转回到面向功率节省的设置。例如,如图4中所示,在当前测量周期的框410和416之后,方法400循环回到框402,使得可以将来自当前测量周期的修改的功率电平设置提供为用于确定未来测量周期的功率电平设置的输入。
[0049] 尽管本文没有明确定义测量周期的确切周期时段,但是本领域技术人员将认识到GPU驱动器可以被配置为改变周期时段(其中降低周期时段将提高功率电平管理操作的粒度/精度并降低更改功率电平之间的时间量[通常以增加操作GPU的CPU负载为代价];提高周期时段会降低可归因于动态功率电平管理操作的CPU负载,但代价是精度降低)。
[0050] 在一些实施方案中,上述装置和技术在包括一个或多个集成电路(IC)设备(也称为集成电路封装或微芯片)的系统中实现,例如上面参照图1至图4描述的GPU。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可用于这些IC设备的设计和制作。这些设计工具通常表示为一个或多个软件程序。一个或多个软件程序包括代码,其可由计算机系统执行以操纵计算机系统对代表一个或多个IC设备的电路的代码进行操作,以便执行过程的至少一部分来设计或调整制造系统以制作电路。此代码可以包括指令、数据或指令和数据的组合。表示设计工具或制作工具的软件指令通常存储在计算系统可访问的计算机可读存储介质中。同样地,代表IC设备的设计或制作的一个或多个阶段的代码可以存储在同一计算机可读存储介质或不同计算机可读存储介质中并可以从其进行访问。
[0051] 计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这种存储介质可以包括但不限于光学介质(例如光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如只读存储器(ROM)或闪存)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统(例如系统RAM或ROM)中,固定地附接到计算系统(例如磁性硬盘驱动器),可移除地附接到计算系统(例如光盘或基于通用串行总线(USB)的闪存),或经由有线或无线网络(例如网络可访问存储(NAS))耦合到计算机系统。
[0052] 在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。该软件包括存储或以其他方式有形地包含在非暂时性计算机可读存储介质上的一组或多组可执行指令。该软件可以包括这些指令和某些数据,在被一个或多个处理器执行时,操纵一个或多个处理器执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储设备、固态存储设备如闪存、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储设备等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释或以其他方式可执行的其他指令格式。
[0053] 注意,并非所有上面在整体描述中描述的活动或元素都是必需的,特定活动或设备的一部分可能不是必需的,并且可以在描述的活动或元素之外执行一个或多个进一步的活动或包括进一步的元素。此外,活动列出的顺序不一定是它们执行的顺序。而且,已经参考特定实施方案对这些概念进行了描述。然而,本领域普通技术人员理解的是能够在不偏离下面权利要求书中所要求保护的本公开文本的范围的情况下作出各种修改和更改。因此,说明书和附图应被视为说明性的而不是限制性的,并且所有这些修改都旨在包括在本公开文本的范围内。
[0054] 上面针对具体实施方案描述了好处、其他优势以及问题的解决方案。然而,好处、优势、问题的解决方案,以及任何可能导致任何好处、优势或解决方案发生或变得更加明显的特征,不应被解释为任何或所有权利要求的关键、必要或基本的特征。而且,上面所公开的特定实施方案仅是说明性的,因为所公开的主题可以以具有本文教导的好处的不同但等价的方式进行修改和实践,这些方式对于本领域技术人员来说是显而易见的。除下面权利要求书中所描述的之外,本文示出的构造或设计的细节不受任何限制。因此,很明显,上面所公开的特定实施方案可以被更改或修改,并且所有这些变更都被认为是在所公开的主题范围之内。因此,本文寻求的保护如下面的权利要求中所述。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈