CN116490839A - 用于执行多gpu系统的分布式电源管理的机制 - Google Patents
用于执行多gpu系统的分布式电源管理的机制 Download PDFInfo
- Publication number
- CN116490839A CN116490839A CN202180063223.0A CN202180063223A CN116490839A CN 116490839 A CN116490839 A CN 116490839A CN 202180063223 A CN202180063223 A CN 202180063223A CN 116490839 A CN116490839 A CN 116490839A
- Authority
- CN
- China
- Prior art keywords
- idle
- link interface
- node
- link
- power down
- 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.)
- Pending
Links
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/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- 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/325—Power saving in peripheral device
- G06F1/3278—Power saving in modem or I/O interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了用于对多节点计算系统进行高效电源管理的系统、装置和方法。计算系统包括接收要处理的任务的多个节点。这些节点包括处理器、本地存储器、功率控制器、以及用于跨链路与其它节点传送消息的多个链路接口。使用用于电源管理的分布式方法,针对使该计算系统的部件掉电的协商在不执行集中式全系统掉电的情况下发生。每个节点能够使其链路、其处理器和其它部件掉电,而不管该计算系统的其它部件是否仍然活动或被上电。基于对链路空闲状况是否导致链路接口保持空闲达至少目标空闲阈值时间周期的预测,该链路接口在延迟的情况下或在无延迟的情况下发起链路的掉电。
Description
背景技术
相关技术描述
随着每一代半导体芯片的发展,现代集成电路(IC)的功率消耗已变成越来越突出的设计问题。随着功率消耗增加,必须利用更昂贵的冷却系统(诸如更大的风扇和散热器)以便去除多余的热量并防止IC故障。然而,冷却系统增加了系统成本。IC功率耗散约束不仅是便携式计算机和移动通信设备的问题,而且是利用高性能微处理器的台式计算机和服务器的问题。这些微处理器包括多个处理器内核或多个内核以及内核内的多个流水线。
各种计算设备(诸如各种服务器)利用异构集成,该异构集成集成了用于提供系统功能性的多种类型的IC。多种功能包括:音频/视频(A/V)数据处理;用于医学和商业领域的其它高数据并行应用;通用指令集架构(ISA)的处理指令;数字、模拟、混合信号和射频(RF)功能等等。对于系统封装以集成该多种类型的IC存在各种选择。在一些计算设备中使用片上系统(SOC),而在其它计算设备中,更小和产量更高的芯片被封装为多芯片模块(MCM)中的大芯片。
一些计算设备包括三维集成电路(3D IC),其利用管芯堆叠技术以及硅中介层、硅通孔(TSV)和其它机制来竖直堆叠并电连接系统级封装(SiP)中的两个或更多个管芯。不管对系统封装的选择如何,随着系统扩展以增加性能,插槽的数量增加,并且使具有多个插槽(每个插槽具有选定封装的副本)的计算系统掉电变得更加复杂。
根据上述情况,需要用于执行针对多节点计算系统的高效电源管理的高效方法和系统。
附图说明
通过结合附图参考以下描述,可更好地理解本文描述的方法和机制的优点,在附图中:
图1是时间线的一个实施方案的框图。
图2是处理节点的一个实施方案的框图。
图3是多节点计算系统的一个实施方案的框图。
图4是多节点计算系统的一个实施方案的框图。
图5是用于执行针对多节点计算系统的电源管理的方法的一个实施方案的流程图。
图6是用于执行针对多节点计算系统的电源管理的方法的另一个实施方案的流程图。
图7是用于执行针对多节点计算系统的电源管理的方法的另一个实施方案的流程图。
图8是用于执行针对多节点计算系统的电源管理的方法的另一个实施方案的流程图。
图9是多节点计算系统的一个实施方案的框图。
图10是多节点计算系统的一个实施方案的框图。
虽然本发明可以有各种修改和另选形式,但具体的实施方案在附图中通过举例的方式示出并且在本文进行详细描述。然而,应当理解,附图和对其的详细描述并不旨在将本发明限制为所公开的特定形式,而是相反,本发明是涵盖落入由所附权利要求书限定的本发明范围内的所有修改、等效物和替代方案。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应当认识到,可以在没有这些具体细节的情况下实践各种实施方案。在一些情况下,未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免模糊本文描述的方法。应当了解,为了简单和清楚说明,附图中所示的元件不一定按比例绘制。例如,这些元件中的一些元件的尺寸可相对于其它元件被放大。
公开了用于执行针对多节点计算系统的高效电源管理的各种系统、装置、方法和计算机可读介质。在各种实施方案中,计算系统包括将任务分配给多节点分区的节点的主机处理器。节点包括处理器和本地存储器。处理节点还包括至少功率控制器以及用于与其它节点传送消息的多个链路接口。如本文所用,处理节点也称为节点。在一个实施方案中,主处理器是CPU,并且节点处理器是GPU。在一些实施方案中,节点是利用GPU来处理任务的非均匀存储器访问(NUMA)节点。
使用用于电源管理的分布式方法,针对使计算系统的部件掉电的协商在不执行计算系统的全系统掉电的情况下发生。针对掉电的协商在部件级处发生。每个节点能够使其链路接口和其处理器掉电,同时计算系统的其它部件仍然活动或被上电。监视在节点之间的链路上的数据传送的监视器确定何时发起对应链路的掉电。掉电的意图从发起节点传达到链路的另一个节点。一旦针对链路的掉电在两个节点之间达成一致,则链路接口将链路的电源管理状态改变为较低性能电源管理状态。例如,尽管两个节点的处理器保持活动,但链路能够掉电。
两个节点之间的通信层在链路的掉电期间保持活动,从而允许传达操作状态(例如,活动、空闲)变化和/或电源管理状态变化。如本文所用,“电源管理状态”是受节点支持的多个“P状态”中的一个状态或多个“C状态”中的一个状态。因此,电源管理状态变化与到受节点支持的该多个C状态和P状态中的一者的转变相关联。节点的功率控制器使用P状态来更新处理器和其它部件中的一者或多者的操作参数,同时处理器处理工作载荷。操作参数的示例是操作时钟频率和操作电源电压。功率控制器使用C状态来更新操作参数和/或使部件掉电,同时处理器不处理工作载荷。当节点的处理器变为空闲并且功率控制器将节点转变到特定C状态时,节点的功率控制器使处理器和其它部件中的一者或多者掉电。例如,节点的功率控制器指示通过DRAM实现的系统存储器进入自刷新模式。可能的和设想到的是,当节点的电源管理状态是C状态中的一个状态时,功率控制器使节点的其它部件掉电。
参考图1,示出了时间线50的一个实施方案的一般化框图。时间线50示出了从当节点10A至10B中的一个节点的链路接口检测到节点10A至10B之间的链路12为空闲时的时间点t1开始的持续时间。在各种实施方案中,节点10A至10B包括:一个或多个处理器;本地存储器;功率控制器;以及能够与节点10A至10B之间的链路12通信的链路接口。链路12在节点10A至10B之间传送数据。尽管在图1中示出了两个节点和单个链路,但是在计算系统中使用的另一数量的节点和链路是可能的并且被设想到。尽管在图1中示出了被指示为情况1至3的三种情况,但是对于链路12可发生任何数量的情况。例如,针对链路12的链路空闲中断可以在任何时间点发生。时间线50示出了在一些情况下,节点10A至10B之间针对使它们之间的链路掉电的协商包括多个持续时间(诸如持续时间“D2”至“D7”)的组合。
在一些情况下,链路12保持空闲达至少被标记为“D1”的第一持续时间,该第一持续时间是目标空闲阈值时间周期。在一个实施方案中,“D1”是存储在可编程配置寄存器中的值。持续时间“D1”是链路12的最小空闲驻留,其被确定为通过使用于在链路12上进行通信的节点10A至10B的链路接口掉电来提供足够的功率节省。顶部和底部情况(情况1和情况3)示出了在发生链路12的链路空闲中断之前经过目标空闲阈值时间周期(“D1”)。在其它情况下,在发生中断之前,链路12没有保持空闲达至少目标空闲阈值时间周期(“D1”)。中间情况(情况2)示出了这种场景。如由节点10A的链路接口检测到的链路空闲中断的示例是:消息从节点10A的处理器到达以供存储在链路接口的输入队列中、指向任务的消息从节点10B到达、以及带有指定拒绝先前掉电请求的指示的消息从节点10B到达。类似地,节点10B的链路接口也能够检测中断的这些示例。
如从图1可以看出的,节点10A至10B能够在目标空闲阈值时间周期(“D1”)过去之前开始协商以使链路12掉电。顶部和中间情况(情况1和情况2)示出了这种场景。因此,需注意,检测到目标空闲阈值时间周期(“D1”)过去并不用于发信号通知开始协商节点10A至10B之间的链路的掉电。尽管下面的论述描述了由节点10A的链路接口的电路执行的步骤,但是节点10B的链路接口的电路也能够执行类似的步骤。换句话讲,节点10A和节点10B的链路接口中的每个链路接口都能够发起链路接口的掉电。图1中所示的顶部情况示出了节点10A的链路接口在时间点t1(或时间t1)处检测到空闲状况。链路接口的空闲状况的一个示例是存储要传送到节点10B的消息和/或有效载荷数据的链路接口的输入队列为空。另外,节点10A的链路接口检测到未从节点10B接收到数据。对于顶部情况,在时间t1处,节点10A的链路接口开始与节点10B针对掉电进行协商。该协商使用两个持续时间,诸如被标记为“D2”和“D3”的持续时间。
持续时间“D2”和持续时间“D3”中的每个持续时间是取决于由节点10A至10B的链路接口的硬件执行的步骤完成的持续时间。被标记为“D2”的第二持续时间包括在节点10A至10B之间发生的强制性掉电消息传送。掉电消息的示例是:掉电请求、接受或拒绝接收到的掉电请求的掉电响应、掉电请求的撤回、对节点10A至10B的一个或多个处理器的操作状态和/或电源管理状态的指示等等。可能的是单个消息包括列出的示例的两者或多者。例如,接受掉电请求的掉电响应也包括对一个或多个处理器的操作状态和电源管理状态中的一者或多者的指示。插入到单个消息中的其它组合是可能的并且被设想到。当掉电消息传送的协商导致朝使链路掉电进展时,被标记为“D3”的第三持续时间包括掉电动作。掉电动作包括使节点10A至10B的包括至少链路接口的一个或多个部件掉电。当已经确定链路接口准备好掉电时,掉电消息传送导致朝使节点10A至10B的链路接口掉电进展。
需注意,一旦持续时间“D3”的掉电动作开始,则这些掉电动作继续直到完成而没有中断,并且链路接口实现被掉电。另一方面,可能的是在持续时间“D2”期间发生的掉电消息传送不导致朝使链路掉电进展。例如,发生阻止链路接口掉电的中断。尽管图1中没有示出在持续时间“D2”期间发生中断的情况,但是这种情况是可能的并且被设想到。在这些情况下,节点10A的链路接口没有保持空闲达至少目标空闲阈值时间周期(“D1”)。类似地,即使当节点10A的链路接口在持续时间“D2”期间完成掉电消息传送的步骤并在持续时间“D3”期间完成掉电动作的步骤并且节点10A至10B的链路接口被掉电时,也可能发生阻止链路接口保持空闲达至少目标空闲阈值时间周期(“D1”)的中断。图1中所示的中间情况示出了这种场景。
图1中所示的顶部情况(情况1)示出了节点10A的链路接口保持空闲达至少目标空闲阈值时间周期(“D1”)。例如,被标记为“D4”的持续时间发生在持续时间“D2”和持续时间“D3”之后,并且中断发生在持续时间“D1”在时间t2处过去之后。当这种情况为常见时,有益的是一旦在时间t1处检测到空闲状况就开始协商节点10A的链路接口的掉电。然而,图1中所示的中间情况(情况2)示出了当节点10A的链路接口没有保持空闲达至少目标空闲阈值时间周期(“D1”)时的一个示例。例如,被标记为“D5”的持续时间发生在持续时间“D2”和持续时间“D3”之后,但是中断发生在持续时间“D1”在时间t2处过去之前。当这种情况经常发生时,有益的是当在时间t1处检测到空闲状况时等待开始协商节点10A的链路接口的掉电。
当节点10A的链路接口预测检测到空闲状况导致链路接口保持空闲达至少目标空闲阈值时间周期(“D1”)时,则链路接口无延迟地开始协商链路接口的掉电。例如,链路接口尝试执行图1中所示的顶部和中间情况(情况1和情况2)中所示的步骤。然而,当节点10A的链路接口预测检测到空闲状况不会导致链路接口保持空闲达至少目标空闲阈值时间周期(“D1”)时,则链路接口延迟掉电的协商达被标记为“D7”的等待阈值时间周期。例如,链路接口尝试执行图1中所示的底部情况(情况3)中所示的步骤。在各种实施方案中,等待阈值时间周期(“D7”)大于目标空闲阈值时间周期(“D1”)。在一个示例中,等待阈值时间周期(“D7”)是目标空闲阈值时间周期(“D1”)的两倍。在其它实施方案中,等待阈值时间周期(“D7”)与目标空闲阈值时间周期(“D1”)的比率为大于一的任何正值,并且该比率是基于设计要求来选择的。
参考图2,示出了处理节点100的一个实施方案的一般化框图。如图所示,处理节点100包括以下中的每一者之间的通信结构120:客户端110;一个或多个级别的高速缓存116;存储器控制器(MC)130;功率控制器140;以及链路接口150和链路接口170。在一些实施方案中,处理节点100的部件为集成电路(IC)上的单独管芯,诸如芯片上系统(SOC)。在其它实施方案中,该部件是系统级封装(SiP)或多芯片模块(MCM)中的单独管芯。
尽管客户端110被示出为包括两个处理器,但在其它实施方案中,客户端110包括另一数量的处理器和处理引擎。在所示实施方案中,客户端110包括处理器112和并行数据处理器114。在一些设计中,客户端110包括处理器112,其是以下中的一者或多者:中央处理单元(CPU)、用于与多媒体引擎通信的集线器、以及具有能够处理软件应用程序的指令的电路的其它类型的计算资源。在一个实施方案中,并行数据处理器114是以下中的一者:图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或能够在多个数据项上同时处理同一指令的其它类型的处理器。
并行数据处理器114具有高并行数据微架构,其具有大量并行执行通道。高并行数据微架构为计算密集型任务提供高指令吞吐量。在一个实施方案中,微架构使用用于并行执行通道的单指令多数据(SIMD)流水线。编译器从程序代码提取并行化任务以在系统硬件上并行执行。并行化任务来自于至少科学、医学和商业(金融)应用,其中一些利用了神经网络训练。任务包括要执行的指令的子例程。在各种实施方案中,并行数据处理器114的多个执行通道同时执行包括多个工作项的波前。工作项是用以用不同数据执行的同一指令。工作项也被称为线程。
在一些设计中,处理节点100不包括通用CPU,而是从外部CPU接收分配的任务。例如,处理节点100的链路接口150和链路接口170中的一者支持用于与外部CPU传送命令和数据的通信协议连接。通信协议的示例是PCIe(Peripheral Component InterconnectExpress)、来自Advanced Micro Devices有限公司的Infinity Fabric、来自AdvancedMicro Devices有限公司的Infinity Architecture、InfiniBand、RapidIO、HyperTransport等等。通信协议的其它示例也是可能的并且被设想到。
在各种实施方案中,通信结构120经由存储器控制器130在客户端110、高速缓存116、链路接口150和链路接口170以及存储器132之间来回传送数据(诸如命令、消息和有效载荷数据)。尽管示出了两个链路接口150和170,但在其它设计中使用另一数量的链路接口。在一些实施方案中,通信结构120包括至少:用于存储请求和响应的队列;以及通过能够在跨内部网络发送请求之前在接收到的请求之间进行仲裁的硬件电路实现的选择逻辑。通信结构120还包括能够构建并解码分组并且为分组选择路由的电路。
在一个实施方案中,功率控制器140从处理节点100的部件收集数据。在一些实施方案中,所收集的数据包括预定的采样信号。采样信号的切换指示切换的电容的量。要采样的所选信号的示例包括时钟门控器使能信号、总线驱动器使能信号、内容可寻址存储器(CAM)中的失配、CAM字线(WL)驱动器等等。在一个实施方案中,功率控制器140收集数据以表征在给定采样间隔期间节点100中的功率消耗。
在一些实施方案中,处理节点100中的管芯上电流传感器和温度传感器还向功率控制器140发送信息。功率控制器140使用传感器信息、发出的指令或发出的线程的计数、以及加权采样信号的总和中的一者或多者来估计处理节点100的功率消耗。如果节点100高于(低于)阈值极限操作,则功率控制器140降低(或增加)功率消耗。在一些实施方案中,功率控制器140针对处理节点100中的部件中的每个部件选择相应的电源管理状态。因此,功率控制器140和遍及处理节点100的附带电路能够对节点100的部件进行电源门控或降低部件的电源管理状态。功率控制器140还能够向节点100的部件发送控制信号以从转变时钟信号移除连接并从电源基准移除连接。功率控制器140还能够向节点100的部件发送控制信号以重新建立到转变时钟信号的连接以及到电源基准的连接。
尽管示出了单个存储器控制器130,但是在其它实施方案中,在处理节点100中使用另一数量的存储器控制器。在各种实施方案中,存储器控制器130经由通信结构120从客户端110或高速缓存116的高速缓存控制器接收存储器请求。存储器控制器130使用仲裁逻辑来调度存储器请求,并向存储器132发送经调度的存储器请求。在一个实施方案中,存储器132是用于处理节点100的系统存储器,并且存储器132是具有受存储器控制器130支持的对应通信协议的各种动态随机存取存储器(DRAM)中的一者。通信协议确定用于信息传送的值,诸如每个时钟循环的数据传送次数、信号电压电平、信号定时、信号和时钟相位以及时钟频率。在一些实施方案中,处理节点100还连接到主存储器,该主存储器是比分级存储器子系统中的系统存储器132更低的级别。主存储器是各种类型的非易失性、随机存取次级数据存储装置中的一种。主存储器的示例是硬盘驱动器(HDD)和固态盘(SSD)。
存储器控制器130还从系统存储器132和主存储器接收响应,并向处理节点100中的对应请求源发送该响应。为了完成原始存储器请求,具有所请求数据块的对应高速缓存填充行从系统存储器132和主存储器中的一者被传递到高速缓存116及并行数据处理器112的内部高速缓存存储器中的对应一者或多者。换句话讲,高速缓存填充行被置于一个或多个高速缓存级别中。在一些设计中,并行数据处理器112包括一级(L1)指令高速缓存和L1数据高速缓存。高速缓存116提供在分级高速缓存存储器子系统中使用的二级(L2)高速缓存和三级(L3)高速缓存中的一者或多者。高速缓存的其它数量的级别和其它放置方式(无论是在并行数据处理器112内部还是外部放置方式)是可能的并且被设想到。
在一些实施方案中,处理节点100的地址空间在以下项之间划分:并行数据处理器112、一个或多个其它计算资源(未示出)、经由接口180连接到处理节点100的一个或多个其它外部处理节点、任何外部CPU、一个或多个其它部件(诸如输入/输出(I/O)外围设备(未示出))以及其它类型的计算资源。存储器映射被保持用于确定哪些地址被映射到哪个部件,以及因此针对特定地址的存储器请求应当被路由到哪个部件。
除支持与外部CPU的通信之外,链路接口150和链路接口170还通过在链路154和链路174上传送消息和数据来支持处理节点100与其它外部处理节点之间的通信。如前所述,在其它设计中,处理节点100使用除两个链路接口150和170之外的另一数量的链路接口。类似地,在其它设计中,处理节点100使用除两个链路154和174之外的另一数量的链路。物理单元152处理向链路154发送和从该链路发送的命令和数据,并确定用于信息传送的值,诸如每个时钟循环的数据传送次数、信号电压电平、信号定时、信号和时钟相位以及时钟频率。类似于通信结构120中的连接,链路154和链路174可以在点对点、基于分组、基于总线配置(包括共享总线配置、交叉开关配置和具有桥的分级总线)中使用。
尽管示出了单条线来表示链路154,但链路154包括能够将数据作为信号来传送的多条线或者多条物理导线或通道。这些多条线的示例是一条或多条时钟线、一条或多条控制线、一条或多条高速数据线以及一条或多条低速数据线。物理单元152中的电路和外部链路接口中的附带物理单元支持大于该一条或多条低速线的数据传输速率的该一条或多条高速线上的数据传输速率。该一条或多条高速数据线被称为链路154的物理层。该一条或多条控制线和该一条或多条低速线被称为链路154的通信层。链路174具有与链路154类似的线。
在各种实施方案中,链路接口150和链路接口170使用类似的部件,诸如针对链路接口150示出的掉电单元160和物理单元152。为了便于说明,未示出用于与通信结构120接口的单独单元。在一个实施方案中,当链路接口150处于非操作状态时,物理单元152不能在链路154的该一条或多条高速时钟线和该一条或多条高速数据线上传输信号以及对应地数据。例如,物理层被“掉电”。然而,物理单元152能够在链路154的至少一条低速时钟线和该一条或多条低速数据线上传输信号以及对应地数据。在一些设计中,物理单元152还能够在链路154的该一条或多条控制线上传输信号。例如,通信层保持活动,但是当操作时比当链路154的高速线操作时消耗更少的功率。仍然活动的通信层允许链路接口150将物理单元152转变到更高电源管理状态,或者使掉电的物理单元152“上电”。
如本文所用,“掉电”是指执行针对部件的步骤使得部件消耗最少量的功率,同时计算系统仍接收电力供应。在一些设计中,掉电包括针对对应部件选择最低性能电源管理状态(诸如最低性能P状态)。在其它设计中,使部件掉电包括选择C状态,其致使停用到部件的顺序元件和存储元件的时钟信号并致使停用到部件的多个子部件的电源的连接。在又其它设计中,将部件置于睡眠模式下等同于使部件掉电。掉电单元160的硬件电路确定链路154的物理层和链路接口150的对应电路的掉电的时间和持续时间。如本文所用,当部件执行工作(诸如执行任务)时,部件(诸如处理器或节点)或子部件被称为“活动”。当部件没有要执行的工作并且保持不活动时,部件被称为“空闲”。
掉电单元160使用能够监视在链路154上传送的数据、检测空闲状况、以及基于检测到的空闲状况来执行用于使物理单元152的部件掉电的步骤的电路。在各种实施方案中,当客户端110的一个或多个处理单元为活动或空闲时,掉电单元160使物理单元152的对应于高速数据线的部件掉电。基于物理单元152的操作状态,功率控制器140能够在一个或多个外部处理节点仍然活动时使节点100掉电。对这些步骤的进一步描述在以下论述中提供。
参考图3,示出了多节点计算系统200的一个实施方案的一般化框图。在所示实施方案中,示出了分区的一部分,该部分包括处理节点(或节点)210A至210D以及至少链路220、链路222和链路228。链路220、链路222和链路228包括多条线或通道,如先前针对(图1的)链路154和链路174所述。在一个实施方案中,分区240是置于服务器中的多插槽主板的插槽中的多芯片模块(MCM)。如本文所用,当计算系统200利用硬件的虚拟化时,“分区”也被称为“蜂巢”。在一些设计中,节点210A至210D是利用GPU来处理任务的非均匀存储器访问(NUMA)节点。
一个或多个节点210A至210D的一个或多个客户端270接收分配的任务。在各种实施方案中,分区240的处理节点210A至210D中的每一者具有先前针对(图1的)处理节点100所述的功能性。例如,节点210A的客户端270等同于(图1的)客户端110,并且链路接口280、链路接口282和链路接口284中的每一者等同于(图1的)链路接口150和链路接口170。在一个实施方案中,用于链路220、链路222和链路228的链路接口支持同一通信协议,诸如来自Advanced Micro Devices有限公司的用于GPU到GPU互连的xGMI互连。然而,其它类型的通信协议也是可能的并且被设想到。通信协议确定用于在链路上的信息传送的值,诸如每个时钟循环的数据传送次数、信号电压电平、信号定时、信号和时钟相位以及时钟频率。
链路接口(LI)280能够在链路222上与节点210C传送消息(命令)和有效载荷数据,链路接口282能够在链路228上与节点210D传送消息和有效载荷数据,并且链路接口284能够在链路220上与节点210B传送消息和有效载荷数据。在各种设计中,链路接口280和链路接口282包括如针对链路接口284所示的类似部件,诸如物理单元250和掉电单元260。为了便于说明,未示出用于与节点210A的通信结构接口的单独单元。在各种实施方案中,物理单元250具有(图1的)物理单元152的等同功能性。类似地,通过在以下论述中提供的对掉电单元260的进一步描述,(图1的)掉电单元160和掉电单元260具有等同的功能性。
掉电单元260包括监视器262、计数器264、预测器266以及可编程配置和状态寄存器(CSR)268。在各种实施方案中,部件262至268用硬件电路来实现。在一个实施方案中,在监视器262中提供控制单元的功能性。在其它实施方案中,在单独单元中提供控制单元的功能性。在各种实施方案中,跨节点之间的链路220、链路222和链路228发送的消息包括:对一个或多个节点的操作状态的指示;掉电请求;对掉电请求的掉电响应;掉电请求的撤回;中断;对客户端270的一个或多个处理器的操作状态(诸如活动状态或空闲状态)的指示;对客户端270的一个或多个处理器的电源管理状态的指示;以及其它信息。需注意,可能的是单个消息包括列出的示例中的两个或更多个示例。在一个示例中,在节点之间发送的单个消息包括掉电响应和对客户端270的一个或多个处理器的操作状态的指示两者。列出的示例的组合在单个消息中的其它组合是可能的并且被设想到。在一个实施方案中,链路220、链路222和链路228中的一个或多个链路是两个节点之间的点对点通信信道。在物理层,链路包括一个或多个通道。
使用用于电源管理的分布式方法,针对使计算系统200的部件掉电的协商发生后执行计算系统200的全系统掉电。针对掉电的协商在部件级处发生。尽管以下论述描述了由链路接口284的电路执行的步骤,但是链路接口280和链路接口282的电路也能够执行类似的步骤。节点210A的链路接口284的监视器262能够检测空闲状况。在一个实施方案中,空闲状况的一个示例是存储要从节点210A传送到节点210B的消息和/或有效载荷数据的输入队列为空,或者以其他方式不存储要发送到节点210B的消息或数据。输入队列位于掉电单元260和物理单元250中的任一者中。另外,链路接口284不检测正从节点210B接收的数据。
当监视器262检测到链路接口284的空闲状况并且预测器266提供对所检测到的空闲状况导致链路接口284保持空闲达至少目标空闲阈值时间周期的预测时,掉电单元260无延迟地开始协商链路接口284的掉电。计数器264也被称为定时器。计数器264中的一个计数器测量在检测到空闲状况时开始的持续时间,并且掉电单元260的电路确定所测量的持续时间是否在对使链路接口284掉电的任何中断之前达到目标空闲时间周期。目标空闲时间周期等同于(图1的)时间线50中的持续时间“D1”。基于检测到的空闲状况和来自预测器266的预测,掉电单元260在链路220上向节点210B发送链路掉电请求,该链路掉电请求指示对使链路接口284的部件和节点210B上的对应链路接口的部件掉电的请求。
当监视器262检测到空闲状况并且预测器266提供对所检测到的空闲状况不会导致链路接口284保持空闲达至少目标空闲阈值周期的预测时,掉电单元260将对掉电的协商延迟达等待阈值时间周期。等待阈值时间周期等同于(图1的)时间线50中的持续时间“D7”。掉电单元260通过在链路220上向节点210B发送掉电请求之前等待等待阈值时间周期过去来将等待阈值时间周期插入到用于使链路220掉电的步骤中。计数器264中的一个计数器测量在检测到空闲状况时开始的持续时间,并且如果事先没有中断发生,则掉电单元260的电路确定所测量的持续时间何时达到等待阈值时间周期。在各种实施方案中,目标空闲时间周期和等待阈值时间周期中的每一者被存储在CSR 268的可编程配置寄存器中。在各种实施方案中,等待阈值时间周期大于目标空闲阈值时间周期。例如,等待阈值时间周期与目标空闲阈值时间周期的比率为大于一的任何正值,并且基于设计要求来选择该比率。
当监视器262检测到链路接口284的空闲状况并且掉电单元260确定目标空闲阈值时间周期已经过去而没有在链路220上的数据传送时,预测器266更新掉电预测值以指示链路220的下一个检测到的空闲状况导致链路接口284保持空闲达至少目标空闲阈值时间周期的较高置信度。掉电预测值被存储在CSR 268的寄存器中。在一个实施方案中,掉电单元260将掉电预测值初始化在零处,并且当监视器262检测到链路接口284的空闲状况并且掉电单元260稍后确定链路接口284保持空闲达至少目标空闲阈值时间周期时,将掉电预测值递增一。然而,当监视器262检测到链路接口284的空闲状况但掉电单元260确定链路接口284没有保持空闲达至少目标空闲阈值时间周期时,掉电单元260将掉电预测值递减二。在一个实施方案中,掉电预测值的最小值为零。CSR 268存储成功阈值。在一个实施方案中,成功阈值为四。在掉电单元260更新掉电预测值之后,预测器266将更新后的掉电预测值与成功阈值进行比较。需注意,对于初始掉电预测值、递增量、递减量和成功阈值,除在该示例中使用的上述值之外的值是可能的并且被设想到。
当掉电预测值等于或大于成功阈值时,预测器266提供对链路接口284的当前检测到的空闲状况导致链路接口284保持空闲达至少目标空闲时间周期的预测。例如,二进制逻辑高值指示针对当前空闲状况的预测的“是”。在其它设计中,二进制逻辑低值指示预测的“是”。相比之下,当掉电预测值小于成功阈值时,预测器266提供对链路接口284的当前检测到的空闲状况不会导致链路接口284保持空闲达至少目标空闲时间周期的预测。例如,二进制逻辑低值指示针对当前空闲状况的预测的“否”。在其它设计中,二进制逻辑高值指示预测的“否”。
还设想到的是,在检测到特定状况时重置掉电预测值、掉电预测值的递增值和递减值、等待阈值时间周期230、目标空闲阈值时间周期和成功阈值中的一者或多者。这些特定状况的示例是当特定时间周期已经过去时、在新工作载荷的检测期间等等。如上所述,掉电单元260使用至少掉电预测值、掉电预测值的递增值和递减值、等待阈值时间周期230、目标空闲阈值时间周期、以及成功阈值以确定何时在链路220上向节点210B发送掉电请求。在以下论述中提供了使链路掉电的进一步的步骤。
现在转向图4,示出了多节点计算系统300的一个实施方案的一般化框图。先前描述的电路以相同方式进行编号。在所示实施方案中,主机处理器302经由交换机304与多节点分区340传送命令、消息和有效载荷数据。在其它实施方案中,计算系统300不具有单独的主机处理器302,并且依赖于节点210A至210D内的CPU或其它处理器来向彼此分配和传送任务。在一个实施方案中,分区340是置于服务器中的多插槽主板的插槽中的多芯片模块(MCM)。分区340包括经由链路220至230彼此连接的处理节点(或节点)210A至210D。链路220至230包括多条线或通道,如先前针对(图1的)链路154和链路174所述。如前所述,在一个实施方案中,链路接口链路220至230支持同一通信协议,诸如来自Advanced Micro Devices有限公司的用于GPU到GPU互连的xGMI互连。然而,其它类型的通信协议是可能的并且被设想到。
为了便于说明,未示出通信结构、存储器接口、功率控制器、中断控制器和锁相环(PLL)或其它时钟生成电路。在一些设计中,主机处理器302是通用中央处理单元(CPU)。交换机304支持诸如PCIe(Peripheral Component Interconnect Express)、来自AdvancedMicro Devices有限公司的Infinity Fabric以及来自Advanced Micro Devices有限公司的Infinity Architecture的通信协议。然而,其它类型的通信协议是可能的并且被设想到。
尽管在所示实施方案中,节点210A至210D被示出为完全连接,但是在其它实施方案中,链路220至230中的一个或多个链路未被包括在分区240中。在一些实施方案中,除链路220至230之外,计算系统200还包括节点210A至210D之间的其它链路。在一个实施方案中,这些其它链路用于针对服务请求的数据输送,而链路220至230用于消息传送诸如用于协商计算系统200的部件的掉电的消息。主机处理器302将任务(诸如进程的线程)分配给节点210A至210D。在一个示例中,主机处理器302通过将250个任务分配给处理节点210A至210D中的每一个处理节点来划分对一个或多个软件应用程序的1,000个任务的处理。主机处理器302将任务1至250分配给节点210A,将任务251至500分配给节点210B,将任务501至750分配给节点210C,并且将任务751至1,000分配给节点210D。此外,节点210A至210D中的每一个节点能够将除其它命令和任务之外的直接存储器访问(DMA)请求发送到节点210A至210D中的另一个节点。该一个或多个软件应用程序指向并行数据应用,诸如图形渲染、神经网络训练、科学计算、商业应用和医学应用等等。为了提高计算系统200的性能并协助主机处理器202(如果使用),在一些设计中,计算系统300使用虚拟化软件。
虚拟化软件充当虚拟机(VM)操作系统与计算系统300的硬件之间的接口。虚拟化软件包括用于多个虚拟机的驱动程序(诸如用于图形渲染应用程序的图形驱动程序),其允许多个虚拟机同时、直接访问单个物理GPU。现在,在多个工作载荷之间共享单个物理GPU,并且先前由主机处理器302执行的工作中的一些工作现在被卸载到节点210A至210D的GPU。如本文所用,“蜂巢”也被称为“VM蜂巢”。节点210A至210D中用于当前工作载荷并且从主机处理器202接收所分配任务的节点被视为订阅节点。相比之下,节点210A至210D中未用于当前工作载荷并且不从主机处理器302接收所分配任务的节点被视为未订阅节点。在各种实施方案中,计算系统300的链路接口(诸如链路接口284)支持用于电源管理的分布式方法。针对计算系统300中的掉电的协商使用先前针对计算系统200所述的步骤在部件级处发生。
如前所述,关于(图2的)计算系统200,链路接口284的掉电单元260使用至少掉电预测值、掉电预测值的递增值和递减值、等待阈值时间周期、目标空闲阈值时间周期和成功阈值来确定何时在链路220上向节点210B发送掉电请求。如前所述,计算系统300的其它链路接口(诸如链路接口280和链路接口282)使用诸如链路接口284的物理单元250和掉电单元260等部件。在一个示例中,具有与链路接口284类似的部件250至268的链路接口280有资格发送针对掉电的请求。节点210A的链路接口280在链路222上向节点210C发送请求。
如果节点210A的链路接口280从节点210C的链路接口接收到掉电请求被准许的掉电响应,则节点210A的链路接口280和节点210C的对应链路接口继续执行使链路222掉电的步骤。该时间点等同于(图1的)时间线50中的持续时间“D3”的开始。针对链路222的链路接口执行掉电动作,而不管节点210A和节点210C中的处理器或其它客户端是否仍是活动的。在一个实施方案中,链路接口280接收具有对节点210C的一个或多个客户端的操作状态的指示的掉电响应。另外,可能的是链路接口280发送具有对一个或多个客户端270的操作状态的指示的掉电请求。另外,设想到的是节点210A向节点210B、节点210D和主机处理器302中的一者或多者发送通知,该通知包括对节点210A和节点210C中的客户端的操作状态和/或电源管理状态的指示。因此,可能的是在节点210A和节点210C中的一者或多者的处理器为活动时使链路222掉电。如前所述,链路222的物理层被掉电,同时链路222的通信层保持上电。类似的分布式方法受用于链路220的节点210A和节点210B、用于链路224的节点210C和节点210D、用于链路226的节点210B和节点210D等等支持。
在一些设计中,节点210A的功率控制器监视节点210A的链路220、链路222和链路228中的阈值数量链路是否已经被掉电。在一个示例中,阈值数量链路为二,并且链路220和链路222已经被掉电。在该示例中,链路228仍针对节点210A被上电。在一个实施方案中,当阈值数量链路而不是每个链路已经针对节点210A被掉电并且节点210A的处理器指示其具有剩余任务要执行时,节点210A的功率控制器将处理器的电源管理状态改变为较高性能电源管理状态。在一些示例中,到较高性能电源管理状态的转变/改变是从第一P状态到较高性能第二P状态的转变。在其它示例中,到较高性能电源管理状态的转变/改变是从C状态到P状态的转变。当阈值数量链路不消耗电力时,节点210A的处理器能够在较高性能电源管理状态下执行任务。
在一个实施方案中,当链路220、链路222和链路228中的每个链路已经针对节点210A被掉电并且节点210A的处理器指示其为空闲时,节点210A的功率控制器使节点210A的部件掉电,而不管外部节点中的处理器是否是活动的。例如,节点210A的功率控制器使节点210A掉电,而不管节点210B、节点210C和节点210D中的处理器是活动的还是空闲的。节点210A的功率控制器将节点210A的通信结构的电源管理状态改变为较低性能电源管理状态。在一些示例中,到较低性能电源管理状态的转变/改变是从第一P状态到较低性能第二P状态的转变。在其它示例中,到较低性能电源管理状态的转变/改变是从P状态到C状态的转变。在一些实施方案中,到较低性能电源管理状态的转变/改变指示系统存储器(诸如通过DRAM实现的存储器)能够进入自刷新模式。用于节点210B至210D的功率控制器以与用于节点210A的功率控制器类似的方式操作。在一些实施方案中,节点210A在通信层上向节点210B至210D和主机处理器302中的一者或多者发送节点210A将要掉电的消息。
跨链路220至230的数据传送由于节点210A至210D执行的工作载荷的类型而随时间推移而变化。在一个示例中,节点210A至210D执行训练神经网络的任务。训练包括计算阶段与通信阶段之间的周期性转变。在计算阶段期间,节点210A至210D的处理器使用存储在本地系统存储器(诸如(图1的)存储器132)中的数据来处理任务。在计算阶段期间,节点210A至210D的功率控制器和链路接口在分布式、单独的基础上使未使用的链路220至230掉电。如前所述,当至少阈值数量链路针对节点210A至210D中的特定节点(诸如节点210A)被掉电时,节点210A的功率控制器将节点210A的一个或多个处理器的电源管理状态改变为用于执行神经网络工作载荷的计算阶段的较高性能电源管理状态。在一些实施方案中,节点210A还向节点210B至210D中的一个或多个活动节点发送消息,该消息包括对节点210A的处理器的新的较高性能电源管理状态和/或新的操作状态的指示。在计算阶段结束之后,节点210A至210D具有用以共享的更新后的权重值。利用链路220至230的通信层,节点210A至210D的功率控制器和链路接口使被掉电的链路220至230中的链路上电。当链路被再次上电时,节点210A至210D在通信阶段期间向彼此发送更新后的权重值。
在一些设计中,主机处理器302的功率控制器监视阈值数量节点210A至210D是否已经被掉电。在一个示例中,阈值数量链路为二,并且节点210A和节点210B已经被掉电,同时节点210C和节点210D保持上电。链路228仍针对节点210A被上电。在一个实施方案中,当阈值数量节点而不是每个节点已经被掉电并且主机处理器302指示其具有剩余任务要执行时,主机处理器302的功率控制器将主机处理器202的电源管理状态改变为较高性能电源管理状态。因为阈值数量节点不消耗计算系统300中的电力,所以主机处理器302能够在较高性能电源管理状态下执行任务。在一个实施方案中,当节点210A至210D中的每一个节点已经被掉电并且主机处理器302指示其空闲时,主机处理器302的功率控制器使主机处理器302及其对应存储器掉电。
现在参考图5,示出了用于执行针对多节点计算系统的电源管理的方法400的一个实施方案。出于论述的目的,以顺序次序示出此实施方案(以及图6至图8)中的步骤。然而,需注意,在所述方法的各种实施方案中,同时地执行、以与所示不同的次序执行、或完全省略所述元素中的一个或多个元素。还根据需要执行其它另外的元素。本文所述的各种系统或装置中的任一者被配置为实现方法400。
两个或更多个节点被置于计算系统的分区中。节点包括:一个或多个处理器;本地存储器;功率控制器;以及用于跨链路与其它节点传送消息的多个链路接口。在一个实施方案中,主机处理器将任务分配给节点的处理器。在各种设计中,主机处理器是通用CPU。在其它实施方案中,应用程序在单独的节点上运行,并且节点中的CPU将任务分配给该节点中的并行数据处理器(诸如GPU)。此外,节点中的每个节点能够向节点中的另一个节点发送直接存储器访问(DMA)请求以及其它命令和任务。当节点被掉电但对于当前工作载荷需要该节点时,主处理器和另一个活动的节点中的一者或多者向掉电节点发送上电请求。在一个示例中,主机处理器发送对在掉电节点的链路的通信层上传送的上电请求的指示。又如,另一个活动节点向掉电节点的处理器(诸如GPU)的存储器发送直接存储器访问(DMA)请求。对于一些工作载荷,每个节点对于该工作载荷是活动的,并且从主处理器和另一个活动节点中的一者或多者接收所分配的任务。对于其它工作载荷,不使用一个或多个节点并且不接收所分配的任务。这些节点和对应的链路变为空闲并且有资格基于所测量的空闲时间来掉电。不管任务被分配给节点的处理器的方式如何,用于使用于工作载荷的未使用节点的链路掉电的步骤类似于使在工作载荷中使用的节点的链路掉电的步骤,但链路在计算阶段期间或在任务完成时变为空闲。在下面进一步描述这些步骤。
被分配了任务的节点的处理器处理这些任务(框402)。在各种设计中,节点使用图形处理单元(GPU),并且节点是利用GPU来处理任务的非均匀存储器访问(NUMA)节点。节点的链路接口使用监视器来监视链路接口上的数据传送(框404)。链路接口的空闲状况的一个示例是存储要传送到另一个节点的消息和/或有效载荷数据的链路接口的输入队列为空,或者以其它方式,输入队列不存储要发送到另一个节点的消息或数据。另外,链路接口检测到未从另一个节点接收到数据。如果链路接口的电路未检测到空闲状况(条件框406的“否”分支),则方法400的控制流回到其中节点处理任务的框402。
如果链路接口的电路检测到空闲状况(条件框406的“是”分支),但是链路接口的电路未预测空闲状况导致链路接口保持空闲达至少目标空闲阈值时间周期(条件框408的“否”分支),则链路接口在尝试使链路接口掉电之前开始等待等待阈值时间周期过去(框410)。在各种实施方案中,等待阈值时间周期大于目标空闲阈值时间周期。在各种实施方案中,等待阈值时间周期与目标空闲阈值时间周期的比率为大于一的任何正值,并且该比率是基于设计要求来选择的。目标阈值时间周期和等待阈值时间周期等同于(图1的)时间线50中的持续时间“D1”和持续时间“D7”。
如果链路接口已经检测到阻止链路接口保持空闲达目标空闲阈值时间周期的中断(条件框412的“是”分支),则方法400的控制流回到其中节点的处理器处理所分配的任务的框402。这些中断的示例是:消息从同一节点的处理器到达以供存储在链路接口的输入队列中、消息从另一个节点到达以及带有指定拒绝掉电请求的指示的消息到达。如果链路接口尚未检测到阻止链路接口保持空闲达目标空闲阈值时间周期的中断(条件框412的“否”分支),但是等待阈值时间周期尚未过去(条件框414的“否”分支),则链路接口继续等待并且方法400的控制流回到条件框412。然而,如果链路接口尚未检测到阻止链路接口保持空闲达目标空闲阈值时间周期的中断(条件框412的“否”分支),并且等待阈值时间周期已经过去(条件框414的“是”分支),则链路接口开始执行用以请求使链路接口掉电而不等待等待阈值时间周期过去的步骤(框416)。在各种实施方案中,链路接口开始执行用以请求使链路接口掉电而完全不等待的步骤。简要地参考(图1的)时间线50,在情况3中,链路接口从持续时间“D7”转变到持续时间“D2”的开始。
如果链路接口检测到空闲状况(条件框406的“是”分支),并且链路接口预测空闲状况导致链路接口保持空闲达至少目标空闲阈值时间周期(条件框408的“是”分支),则链路接口开始执行用以请求使链路接口掉电而不等待进一步时间过去的步骤(框416)。简要地参考(图1的)时间线50,如针对情况1和情况2所示,链路接口在时间t1处开始掉电消息传送。在一些实施方案中,在持续时间“D2”中的掉电消息传送期间执行的步骤包括传输诸如以下中的一者或多者的消息:对掉电请求的指示、对掉电响应的指示(接受/准许、拒绝)、对掉电响应的确认(接受/准许、拒绝)、掉电请求的撤回、具有对节点的客户端中的一个或多个客户端的空闲/活动状态的指示的消息以及具有对对应链路接口的空闲/活动状态的指示的消息。在这些消息的传输期间,当链路接口和其它对应链路接口已经确定它们准备好掉电时,发送包括对掉电动作的开始的指示的消息。简要地参考(图1的)时间线50,该时间点等同于从持续时间“D2”到持续时间“D3”的转变。链路接口是否保持空闲达目标空闲阈值时间周期被用来更新链路接口中的预测器,如以下论述中进一步所述。
现在参考图6,示出了用于执行针对多节点计算系统的电源管理的方法500的一个实施方案。两个或更多个节点被置于计算系统的分区中,并且任务被分配给这些节点。节点的链路接口检测空闲状况(框502)。如果链路接口未检测到目标空闲阈值时间周期已经过去(条件框504的“否”分支),并且链路接口尚未检测到阻止链路接口保持空闲达目标空闲阈值时间周期的中断(条件框506的“否”分支),则链路接口继续等待并且方法500的控制流回到条件框504。目标空闲阈值时间周期等同于(图1的)时间线50的持续时间“D1”。
如果链路接口未检测到目标空闲阈值时间周期已经过去(条件框504的“否”分支),并且链路接口检测到阻止链路接口保持空闲达目标空闲阈值时间周期的中断(条件框506的“是”分支),则链路接口更新掉电预测值以指示链路接口保持空闲达目标空闲阈值时间周期的较低置信度(框508)。在一个示例中,如先前在对(图3的)掉电单元260进行描述期间所述,特定链路接口递减掉电预测值。如果链路接口检测到目标空闲阈值时间周期已经过去(条件框504的“是”分支),则链路接口更新掉电预测值以指示链路接口保持空闲达目标空闲阈值时间周期的较高置信度(框510)。在一个示例中,特定链路接口如先前在对(图3的)掉电单元260进行描述期间所述递增掉电预测值。
特定链路接口将掉电预测值与成功阈值进行比较。如果掉电预测值小于成功阈值(条件框512的“是”分支),则特定链路接口更新预测以指示链路接口的下一个检测到的空闲状况不会导致链路接口保持空闲达阈值时间周期(框514)。否则,如果掉电预测值等于或大于成功阈值(条件框512的“否”分支),则特定链路接口更新预测以指示链路接口的下一个检测到的空闲状况导致链路接口保持空闲达阈值时间周期(框516)。
在各种实施方案中,参数(诸如目标空闲阈值时间周期、等待阈值时间周期、掉电预测值更新的量和成功阈值)在计算系统处理各种工作载荷的同时在计算系统的测试期间被确定。在一些实施方案中,链路接口使用这些参数的确定值而不做进一步调整。在其它实施方案中,链路接口在电路中存储识别特定工作载荷类型的标识与参数的值集之间的映射。因此,链路接口能够基于要处理的当前工作载荷来动态调整参数。当接收所分配的任务时,节点还接收对工作载荷类型的指示,并且节点的链路接口能够更新用于分布式电源管理的上述参数。
现在转向图7,示出了用于执行针对多节点计算系统的电源管理的方法600的一个实施方案。两个或更多个节点被置于计算系统的分区中,并且任务被分配给这些节点。第一节点的空闲的第一链路接口确定到了开始掉电的时间(框602)。例如,第一链路接口的电路已经确定其已经达到等同于(图5的)先前方法400的框416的状态。例如,第一链路接口的电路既已确定已经检测到空闲状况,又预测空闲状况导致第一链路接口保持空闲达目标空闲阈值时间周期。第一链路接口在对应链路上发送对使第一节点的第一链路接口掉电并在该链路的另一侧上使第二节点的第二链路接口掉电的请求(框604)。第一链路接口向第二链路接口发送掉电请求。该掉电请求是等同于在(图1的)时间线50的持续时间“D2”的掉电消息传送中使用的消息的消息。在对(图1的)时间线50、(图2的)链路接口284和(图4的)用于执行针对多节点计算系统的电源管理的方法400的先前描述中提供了在持续时间“D2”(掉电消息传送的持续时间)期间使用的各种类型的掉电消息的示例。通过发送掉电请求,第一链路接口已经开始在时间线50的持续时间“D2”期间发生的掉电消息传送。需注意,尽管对方法600的描述具有第一链路接口发起掉电消息传送,但可能的并且设想到的是第二链路接口发起第一链路接口与第二链路接口之间的掉电消息传送。换句话讲,类似于(图1的)节点10A至10B的链路接口,第一链路接口和第二链路接口中的每一者都能够发起链路接口的掉电并执行针对方法600所述的步骤。
如果第一链路接口检测到阻止第一链路接口保持空闲达目标空闲阈值时间周期的中断(条件框606的“是”分支),则第一链路接口保持第一节点与第二节点之间的链路连接(框608)。如前所述,这些中断的示例是:消息从同一节点的处理器到达以供存储在第一链路接口的输入队列中、消息从另一个节点到达以及带有指定拒绝掉电请求的指示的消息到达。在一些实施方案中,第一链路接口还向第二链路接口发送指示撤回掉电请求的消息。
如果第一链路接口未检测到阻止第一链路接口保持空闲达目标空闲阈值时间周期的中断(条件框606的“否”分支),但第一链路接口尚未接收到指示第二链路接口准备好掉电的掉电响应(条件框610的“否”分支),则方法600的控制流回到其中第一链路接口继续等待来自第二链路接口的响应的条件框606。当第一链路接口等待时,其监视用于存储要跨链路发送的消息的队列以及用于存储从链路接收到的消息的队列。
当第一链路接口等待时,第二链路接口从第一链路接口接收掉电请求并确定其是具有活动操作状态还是空闲操作状态。如果第二链路接口确定其是活动的,则第二链路接口发送诸如拒绝来自第一链路接口的掉电请求的掉电响应的消息。在一个实施方案中,消息包括对第二链路接口的活动操作状态的指示。如果第二链路接口确定其是空闲的,则第二链路接口发送诸如接受/准许来自第一链路接口的掉电请求的掉电响应的消息。在一个实施方案中,消息包括对第二链路接口的空闲操作状态的指示。在一些实施方案中,在发送该类型的消息之后,第二链路接口开始执行掉电动作。在其它实施方案中,第二链路接口等待来自第一链路接口的指示继续掉电的确认。该时间点等同于(图1的)时间线50中的持续时间“D3”的开始。
如果第一链路接口未检测到阻止第一链路接口保持空闲达目标空闲阈值时间周期的中断(条件框606的“否”分支),并且第一链路接口已经接收到指示第二链路接口准备好掉电的掉电响应(条件框610的“是”分支),则第一链路接口和第二链路接口掉电(框612)。该掉电响应是等同于在(图1的)时间线50的持续时间“D2”的掉电消息传送中使用的消息的消息。另外,到达方法600的框612等同于从(图1的)时间线50中的持续时间“D2”到持续时间“D3”的转变,并且发起一个或多个掉电动作。如前所述,使第一链路接口掉电包括以下中的一者或多者:停用驱动器、停用一个或多个时钟信号、停用对第一链路接口的一个或多个部件的电力供应、以及将一个或多个部件转变到睡眠模式或最低性能电源管理状态。在各种实施方案中,第一链路接口使对应于物理层的高速数据线的部件掉电,同时保持通信层的低速数据线的当前操作状态。
当第二链路接口发送掉电响应以接受/准许掉电时,第一链路接口掉电,而不管第一节点和第二节点中的客户端是活动的还是空闲的。在一个实施方案中,第一链路接口从第二节点接收具有对第二节点的一个或多个客户端的操作状态的指示的掉电响应。在一个示例中,当第二节点的至少一个客户端为活动时,掉电响应中的指示指定第二节点的活动状态。相比之下,当第二节点的每个客户端为空闲时,掉电响应中的指示指定第二节点的空闲状态。另外,可能的是第一链路接口在较早的掉电请求中发送对第一节点的一个或多个客户端的操作状态的指示。在一些设计中,该指示类似于针对掉电响应所述的指示。另外,设想到的是第一节点和第二节点中的一者或多者向一个或多个其它节点发送通知(在消息中),该通知包括对第一节点和第二节点中的一者或多者中的客户端的操作状态的指示。这些指示用于确定是否要使节点掉电,如以下论述中所述。
现在参考图8,示出了用于执行针对多节点计算系统的电源管理的方法700的一个实施方案。多个节点的处理器处理所分配的任务(框702)。如果多个节点中的第一节点未确定第一节点的链路接口被掉电(条件框706的“否”分支),则分区的活动节点继续处理剩余任务(框708)。之后,方法700的控制流回到条件框706。如果多个节点中的第一节点确定第一节点的链路接口被掉电(条件框706的“是”分支),但第一节点的处理器是活动的(条件框710的“否”分支),则第一节点的功率控制器将处理器的电源管理状态改变为较高性能电源管理状态(框712)。之后,方法700的控制流移动到其中分区的活动节点继续处理剩余任务的框708。需注意,在一个实施方案中,当阈值数量链路已经针对节点而不是每个链路被掉电并且处理器指示其具有剩余任务要执行时,第一节点的功率控制器将处理器的电源管理状态改变为较高性能电源管理状态。因为阈值数量链路未正消耗电力,所以处理器能够在较高性能电源管理状态下执行任务。
如果多个节点中的第一节点确定第一节点的链路接口被掉电(条件框706的“是”分支),并且第一节点的客户端是空闲的(条件框710的“是”分支),则第一节点向分区的一个或多个其它节点的处理器发送指定第一节点为空闲的指示(框714)。在一些实施方案中,因为高速物理层被掉电,所以第一节点在通信层上发送对第一节点的客户端从活动状态到空闲状态的转变的指示。第一节点的功率控制器使第一节点的客户端和其它部件掉电(框716)。例如,本地存储器被置于自刷新模式下,针对第一节点的处理器停用一个或多个时钟信号,并且对处理器的一个或多个电源进行门控。在一些情况下,第一节点是支持用于电源管理的分布式方法的计算系统中要掉电的最后一个剩余节点。在其它情况下,第一节点不是计算系统中要掉电的剩余的最后一个节点,但是一个或多个其它活动节点意识到第一节点由于在框714中发送的指示而被掉电。当再次需要第一节点来处理任务时,第一节点接收指定所分配的任务就绪的指示,并且第一节点执行上电步骤。在此类时间点,再次执行框702的步骤,其中第一节点是处理任务的一个或多个活动节点中的一个节点。
现在转向图9,示出了多节点计算系统900的一个实施方案的一般化框图。先前描述的电路以相同方式进行编号。在所示实施方案中,主机处理器302经由交换机304与多节点分区340和多节点分区940传送命令、消息和数据。在一些实施方案中,分区340和分区940中的每个分区是置于服务器中的多插槽主板的插槽中的多芯片模块(MCM)。尽管示出了两个分区,但在其它实施方案中,计算系统900包括另一数量的分区。
在各种实施方案中,分区240的处理节点210A至210D中的每个处理节点以及分区640的处理节点910A至910D中的每个处理节点具有先前针对(图2的)处理节点100所述的功能性。在一个实施方案中,链路920至930、链路932和链路934支持与受链路220至230所支持的相同的通信协议。在一些设计中,节点210A至210D和节点910A至910D是利用GPU来处理任务的非均匀存储器访问(NUMA)节点。在各种实施方案中,计算系统900使用如先前针对(图2至图4的)计算系统100至300所述的用于电源管理的分布式方法。在若干情况下,链路932和链路934中的一个或多个链路被掉电,同时分区340和分区940的链路和节点中的一者或多者保持上电。在一些情况下,分区340和分区940中的一个分区被掉电,同时分区340和分区940中的另一个分区保持上电。
参考图10,示出了多节点计算系统1200的另一个实施方案的一般化框图。在各种实施方案中,处理节点(或节点)1210A至1210H中的每个处理节点具有先前针对(图2的)处理节点100、(图3至图4的)节点210A至210D以及(图10的)节点910A至910D所述的功能性。另外,链路1220至1234中的每个链路具有带有附带链路接口(诸如(图3的)链路接口280至284)的(图3的)链路220至230的等同功能性。在一些实施方案中,除链路1220至1234之外,计算系统1200还包括节点1210A至1210H之间的其它链路。这些其它链路(未示出)用于数据通信,而链路1220至1234用于电源管理消息传送。因此,在一个实施方案中,这些其它链路用于针对服务请求的数据输送,而链路1220至1234用于消息传送诸如用于协商集中式全系统掉电和分布式部件级掉电的消息。
在所示实施方案中,节点1210A是计算系统1200的根节点(主节点),而节点1210G和节点1210H中的每个节点是叶节点。节点1210B至1210F中的每个节点是根节点1210A与叶节点1210G至1210H之间的中间节点。因此,使用环形数据通信拓扑。在各种实施方案中,计算系统900使用如先前针对(图2至图4的)计算系统100至300所述的用于电源管理的分布式方法。
在各种实施方案中,软件应用程序的程序指令用于实现先前所述的方法和/或机制。程序指令以高级编程语言(诸如C)来描述硬件的行为。另选地,使用硬件设计语言(HDL),诸如Verilog。程序指令存储在非暂态计算机可读存储介质上。多种类型的存储介质是可用的。存储介质可在使用期间由计算系统访问以向计算系统提供程序指令和附带数据以用于程序执行。计算系统至少包括一个或多个存储器以及执行程序指令的一个或多个处理器。
应当强调的是,上述实施方案仅是具体实施的非限制性示例。一旦完全了解上述公开内容,许多变型和修改对于本领域技术人员将变得显而易见。旨在将以下权利要求书解释为涵盖所有此类变型和修改。
Claims (20)
1.一种计算系统,包括:
第一分区,所述第一分区包括:
被配置为处理任务的多个节点;和
在所述多个节点之间的多个链路;
其中所述多个节点中的第一节点被配置为:响应于确定以下情况而发起所述第一节点的第一链路接口的掉电,所述第一链路接口被配置为在所述第一节点与第二节点之间的所述多个链路中的第一链路上传送数据:
已经发生所述第一链路接口的空闲状况;以及
预测所述空闲状况导致所述第一链路接口保持空闲达至少目标空闲阈值时间周期。
2.根据权利要求1所述的计算系统,其中所述第一节点被进一步配置为:响应于确定以下情况而延迟发起所述第一链路接口的掉电达大于所述目标空闲阈值时间周期的等待阈值时间周期:
已经发生所述第一链路接口的所述空闲状况;以及
预测所述空闲状况不会导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期。
3.根据权利要求1所述的计算系统,其中所述第一节点被进一步配置为:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期的较高置信度:
在所述目标空闲阈值时间周期过去之前未发生阻止所述第一链路接口保持空闲达所述目标空闲阈值周期的中断。
4.根据权利要求3所述的计算系统,其中所述第一节点被进一步配置为:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期的较低置信度:
在所述目标空闲阈值时间周期过去之前已经发生阻止所述第一链路接口保持空闲达所述目标空闲阈值周期的中断。
5.根据权利要求4所述的计算系统,其中为了确定已经发生所述中断,所述第一节点被进一步配置为确定消息已经到达所述第一接口用于在所述第一链路上进行传输。
6.根据权利要求4所述的计算系统,其中所述第一链路接口被进一步配置为:
响应于确定所述掉电预测值小于阈值,更新预测以指示所述第一链路接口的下一个检测到的空闲状况不会导致所述第一链路接口保持空闲达所述阈值时间周期。
7.根据权利要求4所述的计算系统,其中所述第一链路接口被进一步配置为:
响应于确定所述掉电预测值大于或等于阈值,更新预测以指示所述第一链路接口的下一个检测到的空闲状况导致所述第一链路接口保持空闲达所述阈值时间周期。
8.根据权利要求1所述的计算系统,其中:
所述计算系统进一步包括第二分区;并且
其中所述第一分区被配置为:响应于确定所述第一分区的每个节点被掉电,使所述第一分区的剩余部件掉电,同时所述第二分区具有一个或多个活动节点。
9.一种方法,包括:
通过第一分区处理多个任务,其中所述第一分区包括:
被配置为处理任务的多个节点;和
在所述多个节点之间的多个链路;以及
响应于确定以下情况而通过所述多个节点中的第一节点来发起所述第一节点的第一链路接口的掉电,所述第一链路接口被配置为在所述第一节点与第二节点之间的所述多个链路中的第一链路上传送数据:
已经发生所述第一链路接口的空闲状况;以及
预测所述空闲状况导致所述第一链路接口保持空闲达至少目标空闲阈值时间周期。
10.根据权利要求9所述的方法,还包括:响应于确定以下情况而延迟发起所述第一链路接口的掉电达大于所述目标空闲阈值时间周期的等待阈值时间周期:
已经发生所述第一链路接口的所述空闲状况;以及
预测所述空闲状况不会导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期。
11.根据权利要求9所述的方法,还包括:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期的较高置信度:
在所述目标空闲阈值时间周期过去之前未发生阻止所述第一链路接口保持空闲达所述目标空闲阈值周期的中断。
12.根据权利要求11所述的方法,还包括:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述第一链路接口保持空闲达至少所述目标空闲阈值时间周期的较低置信度:
在所述目标空闲阈值时间周期过去之前已经发生阻止所述第一链路接口保持空闲达所述目标空闲阈值周期的中断。
13.根据权利要求12所述的方法,其中为了确定已经发生所述中断,所述方法还包括确定消息已经到达所述第一接口用于在所述第一链路上进行传输。
14.根据权利要求12所述的方法,还包括:
响应于确定所述掉电预测值小于阈值,更新预测以指示所述第一链路接口的下一个检测到的空闲状况不会导致所述第一链路接口保持空闲达所述阈值时间周期。
15.根据权利要求14所述的方法,还包括:
响应于确定所述掉电预测值大于或等于阈值,更新预测以指示所述第一链路接口的下一个检测到的空闲状况导致所述第一链路接口保持空闲达所述阈值时间周期。
16.一种装置,包括:
物理单元,所述物理单元被配置为管理在第一节点与第二节点之间的链路上的数据传送;和
掉电单元;并且
其中所述掉电单元被配置为至少部分地基于确定以下情况来发起所述装置的掉电:
已经发生所述装置的空闲状况;以及
预测所述空闲状况导致所述装置保持空闲达至少目标空闲阈值时间周期。
17.根据权利要求16所述的装置,其中所述掉电单元被进一步配置为:响应于确定以下情况而延迟发起所述装置的掉电达大于所述目标空闲阈值时间周期的等待阈值时间周期:
已经发生所述装置的所述空闲状况;以及
预测所述空闲状况不会导致所述装置保持空闲达至少所述目标空闲阈值时间周期。
18.根据权利要求16所述的装置,其中所述掉电单元被进一步配置为:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述装置保持空闲达至少所述目标空闲阈值时间周期的较高置信度:
在所述目标空闲阈值时间周期过去之前未发生阻止所述装置保持空闲达所述目标空闲阈值周期的中断。
19.根据权利要求18所述的装置,其中所述掉电单元被进一步配置为:
响应于确定以下情况而更新掉电预测值以指示所述空闲状况导致所述装置保持空闲达至少所述目标空闲阈值时间周期的较低置信度:
在所述目标空闲阈值时间周期过去之前已经发生阻止所述装置保持空闲达所述目标空闲阈值周期的中断。
20.根据权利要求19所述的装置,其中所述掉电单元被进一步配置为:
响应于确定所述掉电预测值小于阈值,更新预测以指示所述装置的下一个检测到的空闲状况不会导致所述装置保持空闲达所述阈值时间周期。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/031,739 | 2020-09-24 | ||
US17/031,739 US20220091657A1 (en) | 2020-09-24 | 2020-09-24 | Mechanism for performing distributed power management of a multi-gpu system |
PCT/US2021/051814 WO2022066951A2 (en) | 2020-09-24 | 2021-09-23 | Mechanism for performing distributed power management of a multi-gpu system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116490839A true CN116490839A (zh) | 2023-07-25 |
Family
ID=78483474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180063223.0A Pending CN116490839A (zh) | 2020-09-24 | 2021-09-23 | 用于执行多gpu系统的分布式电源管理的机制 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220091657A1 (zh) |
EP (1) | EP4217824A2 (zh) |
JP (1) | JP2023543723A (zh) |
KR (1) | KR20230073224A (zh) |
CN (1) | CN116490839A (zh) |
WO (1) | WO2022066951A2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11960596B2 (en) * | 2021-03-11 | 2024-04-16 | Xilinx, Inc. | Network interface device |
US20230051225A1 (en) * | 2021-08-10 | 2023-02-16 | Visa International Service Association | System, Method, and Computer Program Product for Segmenting Accounts |
US20240073058A1 (en) * | 2022-08-23 | 2024-02-29 | Mellanox Technologies Ltd. | Predicting inactivity patterns for a signal conductor |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984314B2 (en) * | 2007-05-14 | 2011-07-19 | Intel Corporation | Power management of low power link states |
US8156362B2 (en) * | 2008-03-11 | 2012-04-10 | Globalfoundries Inc. | Hardware monitoring and decision making for transitioning in and out of low-power state |
US8112651B2 (en) * | 2008-09-25 | 2012-02-07 | Intel Corporation | Conserving power in a computer system |
US20130003559A1 (en) * | 2011-06-30 | 2013-01-03 | Broadcom Corporation | Adaptive Power Savings for Aggregated Resources |
US8689028B2 (en) * | 2011-07-01 | 2014-04-01 | Intel Corporation | Method and apparatus to reduce idle link power in a platform |
US8868955B2 (en) * | 2011-07-01 | 2014-10-21 | Intel Corporation | Enhanced interconnect link width modulation for power savings |
US20130332764A1 (en) * | 2012-06-08 | 2013-12-12 | Apple Inc. | Intelligent inter-processor communication with power optimization |
CN107077343B (zh) * | 2014-10-27 | 2021-04-23 | 惠普发展公司有限责任合伙企业 | 忽略局域网唤醒引导中的输入 |
US9563261B2 (en) * | 2014-11-25 | 2017-02-07 | International Business Machines Corporation | Management of power consumption in large computing clusters |
US20160314024A1 (en) * | 2015-04-24 | 2016-10-27 | Mediatek Inc. | Clearance mode in a multicore processor system |
US10275008B2 (en) * | 2016-09-22 | 2019-04-30 | Intel Corporation | Methods and apparatus to reduce computing device power consumption |
US20180188797A1 (en) * | 2016-12-29 | 2018-07-05 | Intel Corporation | Link power management scheme based on link's prior history |
-
2020
- 2020-09-24 US US17/031,739 patent/US20220091657A1/en active Pending
-
2021
- 2021-09-23 JP JP2023518226A patent/JP2023543723A/ja active Pending
- 2021-09-23 CN CN202180063223.0A patent/CN116490839A/zh active Pending
- 2021-09-23 WO PCT/US2021/051814 patent/WO2022066951A2/en active Application Filing
- 2021-09-23 KR KR1020237010857A patent/KR20230073224A/ko unknown
- 2021-09-23 EP EP21801686.3A patent/EP4217824A2/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022066951A3 (en) | 2022-04-28 |
KR20230073224A (ko) | 2023-05-25 |
WO2022066951A2 (en) | 2022-03-31 |
JP2023543723A (ja) | 2023-10-18 |
EP4217824A2 (en) | 2023-08-02 |
US20220091657A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8291244B2 (en) | Power management in a data processing device having masters and slaves | |
CN116490839A (zh) | 用于执行多gpu系统的分布式电源管理的机制 | |
JP5981020B2 (ja) | 効率的な消費電力管理のための動的インタラプト再コンフィグレーション | |
US10671148B2 (en) | Multi-node system low power management | |
EP2430541B1 (en) | Power management in a multi-processor computer system | |
TWI564684B (zh) | 一般主機控制器延遲方法及設備 | |
US20210333860A1 (en) | System-wide low power management | |
JP2006506736A (ja) | システム管理信号を分配する方法および装置 | |
US10572183B2 (en) | Power efficient retraining of memory accesses | |
US8176304B2 (en) | Mechanism for performing function level reset in an I/O device | |
US9285865B2 (en) | Dynamic link scaling based on bandwidth utilization | |
CN116868170A (zh) | 嵌入式系统的运行方法和装置、嵌入式系统及芯片 | |
US20220263770A1 (en) | Application-to-application resource reservation schemes for precision networking | |
WO2004070619A2 (en) | Methods and apparatus for distributing system management signals | |
US20230153121A1 (en) | Accelerator usage prediction for improved accelerator readiness | |
US20230009970A1 (en) | In-band communication interface power management fencing | |
US20240142515A1 (en) | Peak power package tracking |
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 |