CN114879829B - 功耗管理方法、装置、电子设备、图形处理器及存储介质 - Google Patents
功耗管理方法、装置、电子设备、图形处理器及存储介质 Download PDFInfo
- Publication number
- CN114879829B CN114879829B CN202210797176.9A CN202210797176A CN114879829B CN 114879829 B CN114879829 B CN 114879829B CN 202210797176 A CN202210797176 A CN 202210797176A CN 114879829 B CN114879829 B CN 114879829B
- Authority
- CN
- China
- Prior art keywords
- gpu
- idle
- state
- power consumption
- idle state
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及计算机技术领域,尤其涉及一种功耗管理方法、装置、电子设备、图形处理器及存储介质。所述方法包括:监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数。本申请实施例通过关闭GPU内部的不必要的硬件模块的时钟,节省了不必要的动态功耗,且不需要关闭GPU的整个设备电源,以便后续能够在低功耗情况下快速恢复至正常工作模式,且不需要实现内部复杂的硬件逻辑设计,保持功耗管理的灵活性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种功耗管理方法、装置、电子设备、图形处理器及存储介质。
背景技术
随着图形处理器(graphics processing unit,GPU)技术的快速发展,当前的GPU广泛应用于诸如云游戏、视频直播、图像处理等通用领域。GPU功耗包括静态功耗和动态功耗,静态功耗为系统级芯片(System on Chip,SOC)在上电时固定消耗的功耗,动态功耗为SOC在运行任务过程中消耗的功耗。
相关技术中,GPU处于空闲态时的功耗管理通常包括如下两种策略:一种策略为:在GPU处于空闲态时不再下发任务,减少动态功耗,或者关掉GPU的整个设备电源,以使得GPU关机。另一种策略为:通过复杂的硬件电源管理逻辑设计,实现GPU的功耗管理。
对于上述的第一种策略,若仅控制GPU不再下发任务,仍然存在一些不必要的硬件单元消耗少量的动态功耗,且静态功耗一直存在,无法减少。若直接关闭GPU的电源,虽然能彻底解决功耗消耗,但是GPU从低功耗模式恢复至正常工作模式的恢复时长会很长。对于上述的第二种策略,复杂的硬件电源管理硬件逻辑设计,虽然能够达到节省功耗的目的,但是电源管理硬件逻辑设计复杂,不够灵活。
发明内容
有鉴于此,本申请提出了一种功耗管理方法、装置、电子设备、图形处理器及存储介质。所述技术方案包括:
根据本申请的一方面,提供了一种功耗管理方法,所述方法包括:
监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数。
在一种可能的实现方式中,所述在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,包括:
在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,所述空闲状态信息指示所述GPU内部的各个硬件模块是否为所述空闲态;
将处于所述空闲态的n个所述硬件模块确定为所述n个空闲模块;
存储所述n个空闲模块各自对应的备份数据;
关闭所述n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,所述在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,包括:
在所述GPU的状态为所述空闲态的情况下,调用功耗管理控制器向所述GPU内部的各个所述硬件模块发出空闲请求;
从状态寄存器中获取反馈的所述空闲状态信息,所述空闲状态信息包括所述GPU内部的各个所述硬件模块反馈的状态标识,所述状态标识用于指示所述硬件模块是否为所述空闲态。
在另一种可能的实现方式中,所述方法还包括:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能所述系统时钟,退出所述低功耗模式;
开启所述n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,所述关闭所述n个空闲模块各自对应的时钟之后,还包括:
关闭所述n个空闲模块各自对应的电源。
在另一种可能的实现方式中,所述方法还包括:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能所述系统时钟,退出所述低功耗模式;
开启所述n个空闲模块各自对应的电源;
开启所述n个空闲模块各自对应的时钟。
根据本申请的另一方面,提供了一种功耗管理装置,所述装置包括:
监控单元,用于监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
处理单元,用于在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数。
在一种可能的实现方式中,所述处理单元,还用于
在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,所述空闲状态信息指示所述GPU内部的各个硬件模块是否为所述空闲态;
将处于所述空闲态的n个所述硬件模块确定为所述n个空闲模块;
存储所述n个空闲模块各自对应的备份数据;
关闭所述n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,所述处理单元,还用于
在所述GPU的状态为所述空闲态的情况下,调用功耗管理控制器向所述GPU内部的各个所述硬件模块发出空闲请求;
从状态寄存器中获取反馈的所述空闲状态信息,所述空闲状态信息包括所述GPU内部的各个所述硬件模块反馈的状态标识,所述状态标识用于指示所述硬件模块是否为所述空闲态。
在另一种可能的实现方式中,所述处理单元,还用于:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能所述系统时钟,退出所述低功耗模式;
开启所述n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,所述处理单元,还用于关闭所述n个空闲模块各自对应的电源。
在另一种可能的实现方式中,所述处理单元,还用于:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能所述系统时钟,退出所述低功耗模式;
开启所述n个空闲模块各自对应的电源;
开启所述n个空闲模块各自对应的时钟。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数。
根据本申请的另一方面,提供了一种图形处理器,所述图形处理器执行上述的方法。
根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的方法。
综上所述,本申请实施例通过监控GPU的状态,GPU的状态包括空闲态或非空闲态;在GPU的状态为空闲态的情况下,关闭n个空闲模块各自对应的时钟,空闲模块为GPU内部的处于空闲态的硬件模块,n为正整数;即通过关闭GPU内部的不必要的硬件模块的时钟,节省了不必要的动态功耗,且不需要关闭GPU的整个设备电源,以便后续能够在低功耗情况下快速恢复至正常工作模式,且不需要实现内部复杂的硬件逻辑设计,使得设计更加灵活,也就是说,本申请实施例提供的功耗管理方法达到了节省GPU功耗、能够快速退出低功耗模式且保持功耗管理的灵活性的效果。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出了本申请一个示例性实施例提供的GPU的硬件结构的示意图。
图2示出了本申请一个示例性实施例提供的功耗管理方法的流程图。
图3示出了本申请另一个示例性实施例提供的功耗管理方法的流程图。
图4示出了本申请另一个示例性实施例提供的功耗管理方法的流程图。
图5示出了本申请一个示例性实施例提供的功耗管理装置的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
首先,对本申请涉及的应用场景进行介绍。
GPU处于空闲态的情况下,自动进入低功耗模式和退出低功耗模式时,需要固件和GPU卡硬件搭配。请参考图1,其示出了本申请一个示例性实施例提供的GPU的硬件结构的示意图。
GPU是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储模块内的软件程序和/或模块,以及调用存储在存储模块内的数据,执行各种功能和处理数据,从而进行整体控制。
本领域技术人员可以理解,图1中示出的结构并不构成对该GPU的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。该GPU包括但不限于如下几个硬件模块:GPU系统管理模块11、功耗管理控制器12、音视频模块13、性能监控模块14、高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)模块15、多个GPU核16、存储模块17、电源控制模块18、时钟模块19以及其他模块20。
其中,GPU系统管理模块11用于运行GPU管理固件代码,从而执行功耗管理、系统管理等任务。可选的,GPU系统管理模块11是一个可编程的控制器,例如是微控制单元(Microcontroller Unit,MCU)
功耗管理控制器12也称电源管理单元控制器(Power Management UnitController,PMUC),用于在进入和退出低功耗模式时,请求各个硬件模块不再处理新的数据,以使得时钟模块关闭或者开启时钟。
音视频模块13用于进行音频和/或视频的编解码,并发送给相应的输出端口。
性能监控模块14也称性能监控控制器,用于监控GPU当前的性能参数,从而判断GPU内部的各个硬件模块是否处于空闲态。
PCIe模块15也称总线接口,用于提供与主机端的基础交互链路。
多个GPU核16为GPU的计算核心,用于进行并行计算。
存储模块17也称内存,用于存储低功耗模式下的备份数据。可选的,存储模块括动态随机存取存储器(Dynamic Random Access Memory,DRAM)和非易失闪存(英文:NOR-Flash)。
电源控制模块18也称电源管理集成电路 (Power Management IC,PMIC),用于控制整个GPU的多个硬件模块的电源。
时钟模块19用于为GPU的各个硬件模块提供时钟。可选的,时钟模块19包括GPU的各个硬件模块对应的总线接口时钟,其中一个硬件模块对应的总线接口时钟包括一个总线接口时钟或者至少两个总线接口时钟。在本申请实施例中,关闭n个空闲模块各自对应的时钟,包括:关闭时钟模块19中的n个空闲模块各自对应的总线接口时钟,其中一个空闲模块对应的总线接口时钟包括一个总线接口时钟或者至少两个总线接口时钟。
本申请实施例提供的功耗管理方法,从硬件角度而言,该方法的执行主体为GPU的功耗管理装置,该功耗管理装置可以是一个可编程的控制器,例如是上述的GPU系统管理模块11;从程序角度而言,该方法的执行主体可以是可编程的控制器上运行的固件程序,或者是专用的固定功能控制器,例如是上述的GPU系统管理模块11上运行的固件程序。
下面,采用示意性的实施例对功耗管理方法进行介绍。
请参考图2,其示出了本申请一个示例性实施例提供的功耗管理方法的流程图。本实施例以该功耗管理方法应用于图1所示出的GPU系统管理模块来举例说明。该方法包括但不限于如下几个步骤:
步骤201,监控GPU的状态,GPU的状态包括空闲态或非空闲态。
GPU系统管理模块监控GPU的状态,GPU的状态包括空闲态或非空闲态。其中,非空闲态为除空闲态以外的状态,比如工作态。
可选的,GPU系统管理模块监控GPU的状态,包括但不限于如下两种可能的实现方式:
在一种可能的实现方式中,GPU系统管理模块通过固件循环读取性能监控控制器的数据,状态监控数据用于指示GPU的状态是否为空闲态。GPU系统管理模块根据性能监控控制器的数据,判断GPU的状态是否为空闲态。若GPU的状态为空闲态,则执行步骤202。若GPU的状态为非空闲态,则继续执行读取性能监控控制器的数据的步骤。
在另一种可能的实现方式中,GPU系统管理模块接收主机的进程间通信(Inter-Process Communication,IPC)信息,该IPC信息用于指示GPU是否为空闲态的标识。可选的,IPC信息携带有第一标识时用于指示GPU为空闲态,IPC信息携带有第二标识时用于指示GPU为非空闲态。即GPU系统管理模块接收到携带有第一标识的IPC信息时,执行步骤202,否则继续执行接收主机的IPC信息的步骤。
步骤202,在GPU的状态为空闲态的情况下,关闭n个空闲模块各自对应的时钟,空闲模块为GPU内部的处于空闲态的硬件模块,n为正整数。
可选的,在GPU的状态为空闲态的情况下,GPU系统管理模块获取空闲状态信息,空闲状态信息指示GPU内部的各个硬件模块是否为空闲态;将处于空闲态的n个硬件模块确定为n个空闲模块;存储n个空闲模块各自对应的备份数据;关闭n个空闲模块各自对应的时钟。
可选的,功耗管理控制器存在相应的状态寄存器去查询各个硬件模块的反馈信息,来判断硬件模块是否为空闲态。其中,状态寄存器位于寄存器空间的一段内存中,功耗管理控制器通过内部的逻辑电路对该状态寄存器设置对应值,以便GPU系统管理模块查询各个硬件模块的反馈信息。也就是说,在GPU的状态为空闲态的情况下,GPU系统管理模块调用功耗管理控制器向GPU内部的各个硬件模块发出空闲请求;从状态寄存器中获取反馈的空闲状态信息,空闲状态信息包括GPU内部的各个硬件模块反馈的状态标识,状态标识用于指示硬件模块是否为空闲态。
示意性的,当GPU系统管理模块调用功耗管理控制器发出空闲请求后,在设定的时间段内轮询状态寄存器,在各个硬件模块反馈对应的状态标识后,硬件逻辑电路会将各个硬件模块反馈的状态标识写入状态寄存器。GPU系统管理模块从状态寄存器中获取空闲状态信息,进行逐个比特位的解析,比如第一数值用于指示非空闲态,第二数值用于指示空闲态,比如第一数值为0,第二数值为1。然后,对于确定出的n个空闲模块,存储n个空闲模块各自对应的备份数据,然后关闭总线接口处n个空闲模块各自对应的时钟,即关闭时钟模块中的n个空闲模块各自对应的总线接口时钟,以便总线停止向该n个空闲模块转发数据。
其中,n为正整数,n个空闲模块为至少一个空闲模块,即n个空闲模块包括一个空闲模块或者至少两个空闲模块。n个空闲模块各自对应的时钟包括n个空闲模块各自对应的至少一个时钟,也就是说,一个空闲模块对应的时钟包括一个时钟或者至少两个时钟。
可选的,GPU系统管理模块在关闭n个空闲模块各自对应的时钟后,通过GPU的PCIe模块发送延迟容忍报告(Latency Tolerance Reporting,LTR)消息给主机的PCIe模块,两端协商进入预设的低功耗模式。
可选的,GPU系统管理模块关闭系统时钟进入低功耗模式。
可选的,GPU系统管理模块包括但不限于:MCU处理器、外围接口电路 和内部的静态随机存取存储器(Static Random-Access Memory,SRAM)。示意性的,GPU系统管理模块调用内部的MCU处理器的目标指令,比如该目标指令为等待中断(Wait for Interrupt,WFI)指令或等待事件 (Wait for event,WFE)指令,以使得MCU处理器的内部逻辑电路自动进入门控时钟(英文:Clock-gating)状态,达到关闭时钟的目的,使MCU处理器内部处于睡眠状态,不再执行任何指令,节省动态功耗,GPU系统管理模块进入目标状态,比如目标状态为WFI状态或者WFE状态。
可选的,GPU系统管理模块在接收到唤醒中断事件时使能系统时钟,退出低功耗模式;开启n个空闲模块各自对应的时钟。
可选的,时钟模块包括n个空闲模块各自对应的总线接口时钟,开启n个空闲模块各自对应的时钟,包括:开启时钟模块中的n个空闲模块各自对应的总线接口时钟。
其中,唤醒中断事件用于指示总线上传输有来自PCIe模块的数据或者其他模块的数据。在一种可能的实现方式中,当PCIe模块处于低功耗模式下时,主机存在数据通过PCIe模块传递下来,PCIe模块需要先恢复到正常工作模式才能传递数据,所以会优先的发一个唤醒中断事件给GPU系统管理模块,GPU系统管理模块退出低功耗模式,GPU系统管理模块的内部硬件逻辑单元自动恢复系统时钟,开始处理低功耗恢复流程。在另一种可能的实现方式中,当PCIe模块没有协商进入正常工作模式,当总线上存在来自PCIe模块的数据或者其他模块的数据,同样会发一个唤醒中断事件给GPU系统管理模块,给GPU系统管理模块退出低功耗模式,GPU系统管理模块的内部硬件逻辑单元自动恢复系统时钟,开始处理低功耗恢复流程。
GPU系统管理模块退出低功耗模式后,开启n个空闲模块各自对应的时钟,恢复存储的n个空闲模块各自对应的备份数据,以使得恢复正常工作模式。可选的,GPU系统管理模块通过功耗管理控制器开启n个空闲模块各自对应的时钟,从存储模块中恢复存储的n个空闲模块各自对应的备份数据。
可选的,GPU系统管理模块通过功耗管理控制器开启n个空闲模块各自对应的时钟,包括:通过功耗管理控制器设置时钟树的寄存器,设置后的时钟树的寄存器用于指示开启n个空闲模块各自对应的时钟。其中,时钟树的寄存器位于寄存器空间的一段寄存器空间中,GPU系统管理模块或者GPU系统管理模块通过内部的MCU处理器执行配置程序,配置程序用于配置功耗管理控制器,以达到修改内部电路逻辑,从而设置时钟树的寄存器。示意性的,寄存器的比特位(英文:bit)与时钟存在一一对应的关系,即一个寄存器的比特位对应一路时钟的使能和关闭,比如,寄存器的比特位设置为1时用于使能对应的时钟,寄存器的比特位设置为0时用于关闭对应的时钟。
可选的,GPU系统管理模块在关闭n个空闲模块各自对应的时钟之后,还包括:关闭n个空闲模块各自对应的电源。也就是说,本申请实施例提供的功耗管理方法可以不需要关闭GPU的整个设备电源,而是仅关闭GPU中n个空闲模块各自对应的电源。基于该实现方式,在退出低功耗模式的阶段时还需开启n个空闲模块各自对应的电源。也即,GPU系统管理模块在接收到唤醒中断事件时使能系统时钟,退出低功耗模式;开启n个空闲模块各自对应的电源;开启n个空闲模块各自对应的时钟。
可选的,GPU系统管理模块退出低功耗模式后,通过电源控制模块开启n个空闲模块各自对应的电源,通过功耗管理控制器开启n个空闲模块各自对应的时钟。
需要说明的是,在该实现方式中GPU系统管理模块在接收到唤醒中断事件时使能系统时钟,退出低功耗模式的过程可类比参考上述的相关描述,在此不再赘述。
综上所述,本申请实施例通过GPU固件作为电源管理,结合GPU的外部器件,在GPU处于空闲态时,不需要关闭GPU卡的电源或者实现内部复杂的硬件逻辑设计,一方面,通过关闭不必要的硬件单元的时钟(即关闭n个空闲模块各自对应的时钟),节省不必要动态功耗;另一方面,通过关闭不必要的硬件单元的电源(即关闭n个空闲模块各自对应的电源),减少静态功耗消耗;另一方面,不需要关闭GPU的整个设备电源,能够在低功耗模式的情况下实现快速恢复。
请参考图3,其示出了本申请另一个示例性实施例提供的功耗管理方法的流程图。本实施例以该功耗管理方法应用于图1所示出的GPU系统管理模块来举例说明。该方法包括但不限于如下几个步骤:
步骤301,获取GPU的状态监控数据。
GPU系统管理模块获取GPU的状态监控数据,状态监控数据用于指示GPU的状态是否为空闲态。可选的,状态监控数据包括性能监控控制器的数据或者IPC信息。
步骤302,根据GPU的状态监控数据,判断GPU的状态是否为空闲态。
GPU系统管理模块根据GPU的状态监控数据,判断GPU的状态是否为空闲态。若GPU的状态为空闲态,则执行步骤303。若GPU的状态为非空闲态,则继续执行步骤301。
步骤303,在GPU的状态为空闲态的情况下,调用功耗管理控制器向GPU内部的各个硬件模块发出空闲请求,从状态寄存器中获取反馈的空闲状态信息,空闲状态信息用于指示GPU内部的各个硬件模块是否为空闲态。
步骤304,存储n个空闲模块各自对应的备份数据,关闭n个空闲模块各自对应的时钟。
步骤305,与主机协商进入低功耗模式。
可选的,GPU系统管理模块通过GPU的PCIe模块发送LTR消息给主机的PCIe模块,两端协商进入低功耗模式。
步骤306,通过电源控制模块关闭n个空闲模块各自对应的电源。
步骤307,关闭GPU系统管理模块的系统时钟进入低功耗模式。
需要说明的是,本实施例描述了GPU系统管理模块进入低功耗模式的过程,各个步骤的实现细节可参考上述实施例中的相关描述,在此不再赘述。
可选的,在GPU系统管理模块进入低功耗模式后,退出低功耗模式进入正常工作模式的过程如图4所示,该功耗管理方法还包括如下几个步骤:
步骤401,在接收到唤醒中断事件时使能系统时钟,退出低功耗模式,开启GPU系统管理模块的系统时钟。
步骤402,通过电源控制模块开启n个空闲模块各自对应的电源。
步骤403,通过功耗管理控制器开启n个空闲模块各自对应的时钟。
步骤404,恢复存储的n个空闲模块各自对应的备份数据。
步骤405,等待主机协商恢复至正常工作模式。
可选的,GPU系统管理模块通过GPU的PCIe模块与主机的PCIe模块之间进行协商,恢复至正常工作模式。在正常工作模式下,继续处理PCIe数据,也即GPU系统管理模块从低功耗模式恢复至正常工作模式。
需要说明的是,本实施例描述了GPU系统管理模块退出低功耗模式进入正常工作模式的过程,各个步骤的实现细节可参考上述实施例中的相关描述,在此不再赘述。
本申请实施例在确定存在空闲模块时,关闭该空闲模块的时钟,可以动态降低GPU功耗。本申请实施例可以通过功耗管理控制器,以软硬结合的方式,确定是否存在空闲模块以及PCIE有数据,以确定是否关闭空闲模板以及关闭系统时钟进入低功耗模式。
综上所述,本申请实施例通过在GPU处于空闲态时,一方面,采用固件管理和外部硬件配合方式,关闭非必要的动态功耗和静态功耗,节省功耗,且达到唤醒快速恢复目的。另一方面,避免实现复杂的硬件逻辑电路设计,保持功耗管理的灵活性。
以下为本申请实施例的装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图5,其示出了本申请一个示例性实施例提供的功耗管理装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为图1提供的GPU的全部或者一部分。该装置可以包括:监控单元510和处理单元520。
监控单元510,用于监控GPU的状态,GPU的状态包括空闲态或非空闲态;
处理单元520,用于在GPU的状态为空闲态的情况下,关闭n个空闲模块各自对应的时钟,空闲模块为GPU内部的处于空闲态的硬件模块,n为正整数。
在一种可能的实现方式中,处理单元520,还用于
在GPU的状态为空闲态的情况下,获取空闲状态信息,空闲状态信息指示GPU内部的各个硬件模块是否为空闲态;
将处于空闲态的n个硬件模块确定为n个空闲模块;
存储n个空闲模块各自对应的备份数据;
关闭n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,处理单元520,还用于
在GPU的状态为空闲态的情况下,调用功耗管理控制器向GPU内部的各个硬件模块发出空闲请求;
从状态寄存器中获取反馈的空闲状态信息,空闲状态信息包括GPU内部的各个硬件模块反馈的状态标识,状态标识用于指示硬件模块是否为空闲态。
在另一种可能的实现方式中,处理单元520,还用于:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能系统时钟,退出低功耗模式;
开启n个空闲模块各自对应的时钟。
在另一种可能的实现方式中,处理单元520,还用于关闭n个空闲模块各自对应的电源。
在另一种可能的实现方式中,处理单元520,还用于:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能系统时钟,退出低功耗模式;
开启n个空闲模块各自对应的电源;
开启n个空闲模块各自对应的时钟。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述实施例中由GPU系统管理模块执行的方法。
本申请实施例提供了一种图形处理器,图形处理器执行上述实施例中由GPU系统管理模块执行的方法。
本申请实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述实施例中由GPU系统管理模块执行的方法。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory, RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (6)
1.一种功耗管理方法,其特征在于,应用于图形处理器GPU系统管理模块上运行的固件程序中,所述方法包括:
监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数;
所述监控GPU的状态,包括:接收主机的进程间通信IPC信息,所述IPC信息携带有用于指示所述GPU是否为空闲态的标识;
所述在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,包括:在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,所述空闲状态信息指示所述GPU内部的各个硬件模块是否为所述空闲态;将处于所述空闲态的n个所述硬件模块确定为所述n个空闲模块;存储所述n个空闲模块各自对应的备份数据;关闭所述n个空闲模块各自对应的时钟;关闭所述n个空闲模块各自对应的电源;
所述在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,包括:在所述GPU的状态为所述空闲态的情况下,调用功耗管理控制器向所述GPU内部的各个所述硬件模块发出空闲请求;从状态寄存器中获取反馈的所述空闲状态信息,所述空闲状态信息包括所述GPU内部的各个所述硬件模块反馈的状态标识,所述状态标识用于指示所述硬件模块是否为所述空闲态;
其中,所述GPU的功耗包括静态功耗和动态功耗,所述静态功耗为系统级芯片SOC在上电时固定消耗的功耗,所述动态功耗为所述SOC在运行任务过程中消耗的功耗。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
关闭系统时钟进入低功耗模式;
在接收到唤醒中断事件时使能所述系统时钟,退出所述低功耗模式;
开启所述n个空闲模块各自对应的电源;
开启所述n个空闲模块各自对应的时钟。
3.一种功耗管理装置,其特征在于,所述装置包括GPU系统管理模块,所述GPU系统管理模块用于运行GPU管理固件代码,所述装置包括:
监控单元,用于监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
处理单元,用于在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数;
所述监控单元,还用于:接收主机的IPC信息,所述IPC信息携带有用于指示所述GPU是否为空闲态的标识;
所述处理单元,还用于:在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,所述空闲状态信息指示所述GPU内部的各个硬件模块是否为所述空闲态;将处于所述空闲态的n个所述硬件模块确定为所述n个空闲模块;存储所述n个空闲模块各自对应的备份数据;关闭所述n个空闲模块各自对应的时钟;关闭所述n个空闲模块各自对应的电源;
所述处理单元,还用于:在所述GPU的状态为所述空闲态的情况下,调用功耗管理控制器向所述GPU内部的各个所述硬件模块发出空闲请求;从状态寄存器中获取反馈的所述空闲状态信息,所述空闲状态信息包括所述GPU内部的各个所述硬件模块反馈的状态标识,所述状态标识用于指示所述硬件模块是否为所述空闲态;
其中,所述GPU的功耗包括静态功耗和动态功耗,所述静态功耗为系统级芯片SOC在上电时固定消耗的功耗,所述动态功耗为所述SOC在运行任务过程中消耗的功耗。
4.一种电子设备,其特征在于,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器,所述处理器包括GPU系统管理模块,所述GPU系统管理模块用于运行GPU管理固件代码;
其中,所述处理器被配置为:
监控GPU的状态,所述GPU的状态包括空闲态或非空闲态;
在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,所述空闲模块为所述GPU内部的处于所述空闲态的硬件模块,所述n为正整数;
所述监控GPU的状态,包括:接收主机的IPC信息,所述IPC信息携带有用于指示所述GPU是否为空闲态的标识;
所述在所述GPU的状态为所述空闲态的情况下,关闭n个空闲模块各自对应的时钟,包括:在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,所述空闲状态信息指示所述GPU内部的各个硬件模块是否为所述空闲态;将处于所述空闲态的n个所述硬件模块确定为所述n个空闲模块;存储所述n个空闲模块各自对应的备份数据;关闭所述n个空闲模块各自对应的时钟;关闭所述n个空闲模块各自对应的电源;
所述在所述GPU的状态为所述空闲态的情况下,获取空闲状态信息,包括:在所述GPU的状态为所述空闲态的情况下,调用功耗管理控制器向所述GPU内部的各个所述硬件模块发出空闲请求;从状态寄存器中获取反馈的所述空闲状态信息,所述空闲状态信息包括所述GPU内部的各个所述硬件模块反馈的状态标识,所述状态标识用于指示所述硬件模块是否为所述空闲态;
其中,所述GPU的功耗包括静态功耗和动态功耗,所述静态功耗为系统级芯片SOC在上电时固定消耗的功耗,所述动态功耗为所述SOC在运行任务过程中消耗的功耗。
5.一种图形处理器,其特征在于,所述图形处理器包括GPU系统管理模块,所述GPU系统管理模块用于运行GPU管理固件代码,所述图形处理器执行如权利要求1至2任意一项所述的方法。
6.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至2中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797176.9A CN114879829B (zh) | 2022-07-08 | 2022-07-08 | 功耗管理方法、装置、电子设备、图形处理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210797176.9A CN114879829B (zh) | 2022-07-08 | 2022-07-08 | 功耗管理方法、装置、电子设备、图形处理器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114879829A CN114879829A (zh) | 2022-08-09 |
CN114879829B true CN114879829B (zh) | 2023-04-11 |
Family
ID=82682575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210797176.9A Active CN114879829B (zh) | 2022-07-08 | 2022-07-08 | 功耗管理方法、装置、电子设备、图形处理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114879829B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525137A (zh) * | 2022-11-23 | 2022-12-27 | 紫光同芯微电子有限公司 | 一种数据协同处理方法、系统、存储介质及电子设备 |
CN116414471A (zh) * | 2022-12-16 | 2023-07-11 | 摩尔线程智能科技(北京)有限责任公司 | 工作参数的调整方法、主机、显卡、电子设备及存储介质 |
CN115877938B (zh) * | 2022-12-23 | 2024-01-12 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的控制方法、装置、设备、存储介质和程序产品 |
CN116225202B (zh) * | 2023-02-21 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 用于gpu的功耗控制方法、装置、电子设备和存储介质 |
CN117632650A (zh) * | 2023-11-30 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 功耗分析方法、装置、电子设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442204C (zh) * | 2006-07-19 | 2008-12-10 | 北京天碁科技有限公司 | 片上系统芯片及其功耗控制方法 |
US8448002B2 (en) * | 2008-04-10 | 2013-05-21 | Nvidia Corporation | Clock-gated series-coupled data processing modules |
CN102573114A (zh) * | 2010-12-27 | 2012-07-11 | 北京中电华大电子设计有限责任公司 | 一种无线局域网soc芯片的低功耗设计方法 |
CN103324268A (zh) * | 2013-05-29 | 2013-09-25 | 东南大学 | 用于无线传感器网络核心芯片的低功耗设计方法 |
CN103412990B (zh) * | 2013-08-05 | 2016-03-30 | 北京航空航天大学 | 一种多层次协同低功耗设计方法 |
CN108089689A (zh) * | 2017-11-17 | 2018-05-29 | 珠海慧联科技有限公司 | 一种小型SoC超低功耗控制电路与方法 |
US20210200298A1 (en) * | 2019-12-30 | 2021-07-01 | Advanced Micro Devices, Inc. | Long-idle state system and method |
CN112131175B (zh) * | 2020-08-28 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种SoC芯片、功耗控制方法及可读存储介质 |
CN112486312B (zh) * | 2020-11-19 | 2022-10-18 | 杭州电子科技大学 | 一种低功耗的处理器 |
CN113238648B (zh) * | 2021-05-11 | 2023-05-09 | 成都海光集成电路设计有限公司 | 一种功耗调整方法及其装置 |
-
2022
- 2022-07-08 CN CN202210797176.9A patent/CN114879829B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114879829A (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114879829B (zh) | 功耗管理方法、装置、电子设备、图形处理器及存储介质 | |
JP5410109B2 (ja) | 電力制御システム及び電力制御方法 | |
JP5707321B2 (ja) | スリーププロセッサ | |
KR101832953B1 (ko) | 모바일 디바이스의 어플리케이션 프로세서의 원격 시동 | |
US8762759B2 (en) | Responding to interrupts while in a reduced power state | |
TWI537716B (zh) | 單晶片系統及用於其之方法 | |
CN110716633B (zh) | 协调管理ssd功耗的装置、方法、计算机设备及存储介质 | |
KR101551321B1 (ko) | 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템 | |
KR20090026895A (ko) | 시스템 온 칩에서 전력 소모를 감소시키기 위한 장치 및방법 | |
US20080215908A1 (en) | Sleep Watchdog Circuit For Asynchronous Digital Circuits | |
US11074084B2 (en) | Technologies for optimizing resume time for media agnostic USB | |
WO2007122596A1 (en) | Method and system for power-state transition controllers | |
CN111913669B (zh) | Ssd掉电速度提高方法、装置、计算机设备及存储介质 | |
CN113835515A (zh) | Usb c型子系统功率管理 | |
KR102060431B1 (ko) | 멀티 코어 시스템의 전력 관리 장치 및 방법 | |
CN104969190A (zh) | 多核心二进制转换任务处理 | |
US9448617B2 (en) | Systems and methods for messaging-based fine granularity system-on-a-chip power gating | |
CN107861763B (zh) | 一种面向飞腾处理器休眠过程的中断路由环境恢复方法 | |
JP2023521457A (ja) | 電子デバイス及びウェイクアップのトリガに応答する方法 | |
CN108196617B (zh) | Bmc时间设置方法、装置、系统及可读存储介质 | |
WO2013147914A1 (en) | Controlling power management in micro-servers | |
CN102594575A (zh) | 控制服务器休眠与唤醒的系统及方法 | |
US7657730B2 (en) | Initialization after a power interruption | |
EP3176674A1 (en) | Method for power control of a control unit and control unit | |
US11269398B2 (en) | Multi sleep mode power saving |
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 |