CN107743608A - 至硬件加速器的动态功率路由 - Google Patents

至硬件加速器的动态功率路由 Download PDF

Info

Publication number
CN107743608A
CN107743608A CN201680033766.7A CN201680033766A CN107743608A CN 107743608 A CN107743608 A CN 107743608A CN 201680033766 A CN201680033766 A CN 201680033766A CN 107743608 A CN107743608 A CN 107743608A
Authority
CN
China
Prior art keywords
hardware accelerator
power
computing device
central processing
processing unit
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.)
Granted
Application number
CN201680033766.7A
Other languages
English (en)
Other versions
CN107743608B (zh
Inventor
A·R·帕特南
D·C·巴格
S·F·海尔
E·S·钟
A·M·考尔菲尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202010355058.3A priority Critical patent/CN111475012B/zh
Publication of CN107743608A publication Critical patent/CN107743608A/zh
Application granted granted Critical
Publication of CN107743608B publication Critical patent/CN107743608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

动态功率路由被利用以用于从被转变为低功率消耗状态的其它元件路由功率,以便通过硬件加速器来适应更高效地处理的计算任务,从而保持在功率阈值内,功率阈值可能没有同时适应其它元件和这种硬件加速器全功率运行。一旦工作流的部分正被硬件加速器处理,那么工作流或硬件加速器可以自抑制以保持在功率阈值内,或者它们可以被包括装置中心和全系统协调器的独立协调器抑制。另外,预测机制可以被用于通过将其它元件前摄地转变为减小的功率消耗状态而预先获取可用功率,或者,反应机制可以被用于仅在标识出针对增大的硬件加速器功率的特定需要时将元件转变为减小的功率消耗状态。

Description

至硬件加速器的动态功率路由
背景技术
现代计算机联网硬件使得在物理上分开的计算装置能够以比前几代的联网硬件快得多的量级彼此通信。因此,在远离请求这种处理的用户的位置处执行数字数据处理或代表用户执行这种处理已经变得更为实际。大量的数据处理能力被聚集到中央位置,其包括专用硬件并且支持包括通常安装在立式机架中的成百上千计算装置的系统。计算装置的这种集合、以及支持这种计算装置所必须的相关硬件和容纳计算装置和关联硬件的物理结构传统上被称为“数据中心”。由于计算装置在执行处理时消耗能量并产生热,大量计算装置在单个数据中心中的聚集导致大量的功率消耗和大量产生的热。通常,为了控制向这种计算装置提供能量的成本,电力传递元件被设计为仅能够安全地提供电力达限定的最大量。
发明内容
数据中心的单个计算装置可以包括硬件加速器,其可以比通用中央处理单元更快地执行限定的计算任务。除了由中央处理单元消耗的电力之外这种硬件加速器也可能消耗电力,这使得调节数据中心的电力传递元件的大小来适应硬件加速器以及中央处理单元和服务器计算装置的其它功率消耗元件的功率消耗可能是昂贵的并且浪费的。因此,可以利用动态功率路由来从可以被转变为低功率消耗状态的其它元件路由功率,以便适应硬件加速器的更快处理的计算任务。由此,动态功率路由可以将功率从已经将处理卸载到硬件加速器的元件(诸如中央处理单元)路由离开,并且相反地可以将这种功率发送到可以比中央处理单元更高效地有利地执行这种处理的硬件加速器,其中,这种处理已经从中央处理单元被卸载。以这种方式,硬件加速器可以被包括到这样的服务器和数据中心中,即其电力传递元件和电源不被提供为适应来自目前的服务器计算装置元件和这种硬件加速器两者的同时最大功率消耗。动态功率路由可以包括确定是否将工作流的至少部分的处理从通用中央处理单元转移到硬件加速器的目标处理单元;确定可以被告知当前功率消耗、预期功率消耗、可用功率路由实施、工作流或工作优先次序、来自代码编译器和分析器的提示以及其它类似信息。在工作流的部分正被一个或多个加速器处理时,工作流或硬件加速器可以自抑制以保持在功率阈值内,或者它们可以由可在单个计算装置的情形内或整个多个计算装置的系统中运行的独立协调器进行抑制。另外,预测机制可以被用于通过将其它元件前摄地转变到降低的功率消耗状态而预先获得可用功率,或者反应机制可以被用于仅在标识出特别需要增加的硬件加速器功率或当特定类型的工作流被开启时将元件转变为降低的功率消耗状态。
提供本发明内容以便以简单的方式提出一系列概念,其在下面的具体实施方式中进一步描述。本发明内容旨在确认所要求保护的主题的关键特征或必要特征,而不旨在用于限制所要求保护的主题的范围。
附加的特征和优势将从参照附图进行的下面的详细描述中变得更明显。
附图说明
下面的详细描述可以在结合附图时更易于理解,其中;
图1是包括示例性硬件加速器的示例性计算装置的框图;
图2是其内的功率可以被路由以适应硬件加速器的示例性机架(chassis)的框图;
图3是用于路由功率以适应硬件加速器的示例性元件的示图;
图4是用于适应硬件加速器的示例性动态功率路由的流程图。
具体实施方式
下面的描述涉及动态地发送功率以适应针对这种处理被优化的一个或多个硬件加速器上的计算机可执行工作流的至少部分的处理。可以通过以下方式来发送功率:禁用、或设置为减小的功率消耗状态、计算装置的其它元件代管这种硬件加速器。以这种方式,硬件加速器可以被包括在这样的服务器和数据中心中,即,其电力传递元件和电源不被提供为同时适应现有的服务器计算装置元件和这种硬件加速器两者的最大功率消耗。动态功率路由可以包括确定是否将工作流的至少部分的处理从通用中央处理单元转移到硬件加速器的目标处理单元,确定可以告知当前功率消耗、预期功率消耗、可用功率路由实施、工作载荷或任务优先次序、来自代码编译器和分析器的提示以及其它类似信息。一旦工作流的一部分正被一个或多个加速器处理,那么工作流或硬件加速器可以自抑制以保持在功率阈值内,或者它们可以由可以在单个计算装置的情形内或在整个多个计算装置的系统中运行的独立协调器进行抑制。另外,可以使用于预测机制来通过将其它元件前摄地地转变为减小的功率消耗状态而预先获得可用功率,或者可以使用反应机制来用于仅在针对增大的硬件加速器功率的特定需要被标识出或当工作载荷的特定类型被开启时才将元件转变为减小的功率消耗状态。
本文描述的技术参照硬件加速器,诸如包括定制的、通常特定任务的处理电路,其通常比通用中央处理单元更快并且更高效地执行特定处理任务。然而,描述的机制不特别地限制于硬件加速器,而是可以被用于将功率动态地发送到任意计算系统或子系统以便实现不太稳健的功率传递元件和单元的使用。
如本文使用的,术语“功率”表示诸如由基于晶体管的处理电路消耗的电力。另外,如本文使用的,术语“最大额定功率”表示具体电力传递元件已经被独立证明为安全地传递的电力的最大或上限阈值量。这种最大额定功率通常表示于电源和电力传递领域中并且对于本领域技术人员来说是已知的。实际上,电力传递元件和电源通常通过它们的“最大额定功率”诸如例如100W(瓦特)电源、50A(安培)电气服务等表示。
如本文使用的,术语“硬件加速器”表示处理电路的任意集合,与由不是被特别优化的通用中央处理单元执行的计算机处理操作或者指令相比,这种处理电路被特别优化以用于以加速的方式、更快的或采用更高效的功率利用的方式来执行这种离散的计算机处理操作的子集,或用以执行这种计算机可执行指令的离散子集。因此,如本文使用的,形容词“更高效”表示更快或采用更高效的功率利用。
尽管未要求,但是下面的描述将在由计算装置执行的计算机可执行指令(诸如程序模块)的通常情形下进行。更具体地,除非另外指示,否则描述将参照由一个或多个计算装置或外围设备执行的动作和符号表示的操作。这样,将理解的是有时称为计算机可执行的这种动作和操作包括由处理单元对以结构化形式表示数据的电信号的操纵。这种操纵变换数据或将其保持在存储器中的适当位置,其以由本领域技术人员很好地理解的方式重新配置或改变计算装置或外围设备的操作。数据被保持的数据结构是具有由数据的格式限定的特定性质的物理位置。
通常,程序模块包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、元件、数据结构等。此外,本领域技术人员将理解计算装置不必受限于传统的个人计算机,而是包括其它计算配置,包括手持装置、多处理器系统、基于微处理器或可编程消费电子、网络PC、服务器、小型计算机、大型计算机等。类似地,计算装置不必受限于单机计算装置,而是机制还可以在任务通过经由通信网络链接的远程处理装置执行的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于本地和远程存储装置两者中。
参照图1,示出了可以执行下面描述的一些或全部机制和动作的示例性计算装置100。示例性计算装置100可以包括诸如下面将讨论的传统的计算硬件和诸如示例性硬件加速器150的硬件加速器。如之前指示的,硬件加速器包括处理电路,与由不是被特别优化的通用中央处理单元(诸如例如,一个或多个处理单元(CPU)120)执行的计算机处理操作或者指令相比,这种处理单路被特别优化以加速的方式来更快地或采用更高效的功率利用的方式来执行这种离散的计算机处理操作的子集,或用以执行这种计算机可执行指令的离散子集。。
为了说明,图1中示出的示例性硬件加速器150被示出为包括多个集成电路,诸如示例性集成电路151和152。这种集成电路可以包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它超大规模集成电路(VLSI)。示例性硬件加速器150的集成电路151和152可以被特别优化以便以加速的方式执行计算机处理操作的离散子集或执行计算机可执行指令的离散子集。例如,示例性硬件加速器150可以被优化以执行视频压缩。作为另一示例,示例性硬件加速器150可以被优化以执行特定排序算法。在示例性硬件加速器150被用于例如执行排序算法的示例中,这种排序算法的执行可以从示例性CPU 120移交给示例性硬件加速器150,从而使得CPU 120可用于执行其它处理直到硬件加速器150返回其执行的排序算法的结果。
转到示例性计算装置100,除了示例性CPU120和示例性硬件加速器150的剩余部分,示例性计算装置100可以进一步包括系统存储器130、将包括系统存储器的多个系统元件耦合到处理单元120和硬件加速器150的系统总线121。总线系统120可以是总线结构中的任意总线结构,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任意总线架构的本地总线的多种类型。根据特定物理实施,CPU120、硬件加速器150、系统存储器130和计算装置100的其它元件中的一个或多个可以物理上被共同地布置在诸如在单晶片或硅片或单个电路板上。在这种情况下,一些或全部子系统总线121可以仅仅是单芯片结构内或单裸片上的硅通路,并且其在图1中的示出可以仅仅是出于示出的目的的概念性便利。
计算装置100还通常包括计算机可读介质,其可以包括可以由计算装置100访问的任意可用介质并且包括易失性和非易失性介质以及可移动和非可移动介质。通过示例而非限制的方式,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括在用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法或技术中实施的介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储或其它磁存储装置或可以用于存储期望的信息并且可以由计算装置100存取的任意其它介质。然而,计算机存储介质不包括通信介质。通信介质通常在诸如载波的调制数据信号或其它传输机制中实施计算机可读指令、数据结构、程序模块或其它数据并且包括任意信息传递介质。通过示例而非限制性的方式,通信介质包括诸如有线网络或直接线连接的有线介质以及诸如声学、RF、红外线和其它无线介质等的无线介质。任意以上的组合也应该包括在计算机可读介质的范围内。
系统存储器130包括呈易失性和/或非易失性存储器诸如只读存储器(ROM)131和随机存取存储器(RAM)132的计算机存储介质。包含帮助在计算机装置100内的元件之间传递信息的基本例程(诸如在启动期间)的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含立即可访问和/或目前正由处理单元120操作的数据和/或程序模块。通过示例而非限制性的方式,图1示出操作系统134、其它程序模块135和程序数据136。
计算装置100还可以包括其它可移动/非可移动、易失性/非易失性计算机存储介质。仅通过示例的方式,图1示出从非可移动的非易失性磁介质中读取或向非可移动非易失性磁介质中写入的硬盘驱动141。可以与示例性计算装置一起使用的其它可移动/非可移动的易失性/非易失性计算机存储介质包括但不限于如以上限定和描绘的磁带盒、闪速存储卡、数字通用光盘、数字视频磁带、固态RAM、固态ROM和其它计算机存储介质。硬盘驱动141通常通过诸如接口140的非易失性存储器接口连接到系统总线121。
上面讨论并且在图1中示出的驱动及其关联的计算机存储介质提供针对计算装置100的计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动141被示出为对操作系统144、其它程序模块145和程序数据146进行存储。注意这些元件可以与操作系统134、其它程序模块135和程序数据136相同或不同。操作系统144、其它程序模块145和程序数据146在此被给定以不同的数目以示出至少它们是不同的副本。
计算装置100可以使用与一个或多个远程计算机的逻辑连接而在联网环境中操作。计算装置100被示出为通过网络接口或适配器160而连接到通用网络耦合161,网络接口或适配器160进而连接到系统总线121。在联网环境中,关于计算装置100描绘的程序模块或其部分或外部设备可以存储在通过通用网络耦合161而通信地耦合到计算装置100的一个或多个其它计算装置的存储器中。将理解的是,示出的网络耦合是示例性的并且可以使用在计算装置之间建立通信的其它装置。
关于下面的描述,示例性计算装置100可以包括一个或多个功率供应装置,诸如示例性的功率供应装置160。根据一个方面,功率供应装置160可以是电源单元(PSU),其额定能够安全地供应限定的最大量的电力。可以与示例性计算装置100一起使用的其它功率供应装置可以包括配电单元、保险丝、电源面板或断路器箱、电源馈电器本身(诸如从电气设施接收)、包括电池和蓄电池馈电备用电源的备用电源等功率供应装置。如图1中示出的,电力可以来源于功率供应装置160外部,如箭头161示意性地表示,并且可以由功率供应装置160提供给示例性计算装置100的耗电元件,如箭头162示意性地表示。
尽管被描述为单个物理装置,但是示例性计算装置100可以是虚拟计算装置,在这种情况下,上述诸如CPU120、系统存储器130、网络接口160和其它类似元件的物理元件的功能可以通过计算机可执行指令提供。这种计算机可执行指令可以在单个物理计算装置上执行或者可以在整个多个物理计算装置上分布,包括以动态形式在多个物理计算装置上分布,以使得代管这种计算机的特定的物理计算装置可执行指令可以根据需要和可用性而随时间动态地改变。在示例性计算装置100是虚拟化装置的情况下,代管这种虚拟计算装置的下层物理计算装置本身包括类似于上面描述的那些物理元件并且以类似的方式操作。此外,虚拟计算装置可以与在另一个虚拟计算装置的构造内执行的一个虚拟计算装置一起在多层中使用。因此,本文使用的术语“计算装置”表示物理计算装置或者包括虚拟计算装置的虚拟化计算环境,在虚拟计算装置中计算机可执行指令可以以与它们由物理计算装置执行一致的方式而被执行。类似地,本文使用的关于计算装置的物理元件的术语表示执行相同或等同功能的那些物理元件或其虚拟化。
根据一个方面,诸如示例性功率供应装置160的一个或多个功率供应装置可以具有比示例性计算装置100的其它元件的合计功率消耗小的最大额定功率,如果这种元件被充分使用。如本领域技术人员将理解的,诸如示例性CPU 120和示例性硬件加速器150的特定元件可以根据由这种处理器执行的处理的性质和数量而消耗可变量的电力。例如,空闲时,示例性CPU120和示例性硬件加速器150可以各自仅消耗几瓦特的电力。然而,当执行密集的处理时,诸如以高频率持续执行计算机可执行指令达延长的时间段时,示例性CPU 120和示例性硬件加速器150的电力消耗可能显著地增大。例如,当执行密集处理时,示例性CPU120可以消耗50瓦特或更多电力。随着由示例性硬件加速器150执行的处理增加,这种硬件加速器150在功率消耗方面可能具有甚至更为显著的增加。例如,当执行密集处理时,示例性硬件加速器150可能消耗超过一百瓦特。
如上所述,功率供应装置160可以具有比示例性计算装置100的其它元件的合计功率消耗小的最大额定功率,如果这种元件被充分使用。例如,示例性电源单元可以具有250W的最大额定功率。继续参考该示例,示例性计算装置100可包括六个诸如示例性CPU 120的CPU,当执行密集处理时,每个CPU可以消耗三十瓦特的电力。其它元件,诸如示例性硬盘驱动141和示例性网络接口170的示例性计算装置100,本身可以消耗至少二十瓦特的电力。如可以从该简单的示例性布置看到的,如果全部六个示例性CPU各自消耗三十瓦特的电力,并且其它元件消耗二十瓦特的电力,那么在250W的示例性最大额定功率的情况下,仅剩余五十瓦特可以通过示例性功率供应装置160提供。如果示例性硬件加速器150被分配以密集处理的任务,那么将非常有可能很快地超过250W的示例性最大额定功率,并且示例性功率供应装置160或功率供应路径中的一些其它元件将失效或次优地操作。
然而,为计算装置(诸如示例性计算装置100)配备具有比可由示例性计算装置100的元件中的每一个与元件消耗的最大功率的合计大的最大额定功率的功率供应装置160可能极其昂贵。此外,由于至少一些CPU或硬件加速器将被持续用于执行密集处理,因此诸如示例性技术装置100的计算装置可能将很少利用这种功率供应装置的较高容量。因此,本文描述的机制使得能够利用硬件加速器,而不需要对诸如示例性计算装置100的计算装置配备具有诸如示例性功率供应装置160的较高容量功率供应装置。
转向图2,这里示出的示例性系统200示出了诸如呈示例性机箱210的多计算装置机箱,诸如通常在数据中心中找到的。另外,图2的示例性系统200进一步包括呈示例性中央控制计算装置260形式的分开的控制计算装置,其可以通过诸如上述网络179的网络而通信地耦合到示例性机箱210。
如通过图2的系统200示出的,示例性机箱210可以包括一个或多个刀片服务器(server blade),诸如示例性刀片服务器220和230。如本领域技术人员将理解的,刀片服务器可以是服务器计算装置,其具有与上面详细描述并在图1中示出的示例性计算装置100的至少一些元件部分类似的元件部分,除了这种服务器计算装置可在物理上配置为“刀片”形式,或者其中的元件沿着两个维度铺展开从而有利于多个这种服务器计算装置在单个机箱(诸如机箱210)内堆叠的其它物理布置之外。为了说明的简洁性而并不为了示出刀片服务器的每个元件,图2仅示出了在示例性刀片服务器220和230中示出的示例性刀片服务器220和230的CPU和硬件加速器,即,CPU 221和231以及硬件加速器222和232。另外,尽管在示例性机箱210被示出为包括两个刀片服务器,即,示例性刀片服务器220和230,但本领域技术人员将理解数据中心环境中的典型机箱可以包括更多的刀片服务器,并且下面的描述独立于特定机箱内的刀片服务器的数量。
图2中示出的示例性机箱210还可以包括可以由示例性机箱210的各个刀片服务器使用或在之间共享的元件。例如,示例性机箱210可以包括存储装置,诸如示例性硬盘211和212。备选地或附加地,这种存储装置可以是各个刀片服务器(诸如示例性刀片服务器220和230)的部分。示例性机箱210还可以包括网络接口装置,诸如示例性网络接口装置213。如本领域技术人员将理解的,网络接口装置可以包括网络接口卡、路由器、网络布线、交换机和其它类似网络接口装置。根据一个方面,机箱210可以包括分开的计算装置,诸如示例性机箱计算装置240,其可以管理机箱的其它元件,包括分配给机箱的各个刀片服务器的处理任务。另外,诸如示例性机箱210的机箱可以包括一个或多个功率供应装置,诸如示例性功率供应装置260,如之前所述,功率供应装置可以是电源单元、功率转换开关、备用发电机或其它类似功率供应装置。
为了提供下面描述的情形,诸如示例性机箱210的示例性刀片服务器220的机箱中的一个或多个刀片服务器可以被分配诸如示例性工作流270的“工作流”。如本文使用的,术语“工作流”表示执行计算任务或导致计算确定的计算机可执行指令的序列。示例工作流270可以包括可以部分271,与通过诸如示例性CPU 221的通用处理器执行相比,部分271能够通过诸如硬件加速器222的硬件加速器而被更高效的执行。例如,示例性工作流270的部分271可以包括压缩功能,并且诸如示例性硬件加速器222的硬件加速器可以被优化来执行比示例性CPU221更高效地执行这种压缩功能的计算机可执行指令。作为另一示例,示例性工作流270的部分271可以包括排序算法,并且诸如示例性硬件加速器222的示例性硬件加速器可以被优化来执行比示例性CPU221更高效地执行这种排序算法的计算机可执行指令。
此外,如果示例性工作流270的部分271如箭头281所示被提供给诸如示例性硬件加速器222的硬件加速器以从而被执行,那么工作流270的随后部分272或不同工作流的部分如箭头282所示可以被提供给CPU 221,这是因为CPU 221可能已经免于执行与工作流270的部分271相关联的计算机可执行指令,而工作流270的部分271已被分配由硬件加速器222执行。通过这种方式,使用硬件加速器不仅可以比通用处理单元更高效地执行诸如示例性部分271的工作流的特定部分,而且只要消耗的总功率不超过系统的最大功率容量,通过将工作流的部分分配给硬件加速器,使得通用处理单元可以被释放以执行其它任务。例如,通用处理单元可以执行其它计算机可执行指令,包括与同一工作流的其它部分(诸如示例性部分272)关联的其它计算机可执行指令。
然而,如前所述,使用诸如示例性硬件加速器222的硬件加速器可以超出诸如示例性功率供应装置260的功率供应装置的能力,以将功率适当地提供给各个处理单元和刀片服务器的其它元件和/或机箱。例如,如图2所示,由CPU 221执行与工作流270相关联的计算机可执行指令可以导致可能低于诸如一个或多个功率供应装置260的最大额定功率的功率消耗量292。然而,使用硬件加速器222来例如执行工作流270的至少部分271可以导致额外的功率消耗量291,以使得合计的功率消耗290可能超过一个或多个功率供应装置260的最大额定功率。
为了通过硬件加速器来适应工作流270的至少部分,可以采用动态功率路由机制。根据一个方面,这种动态功率路由机制可以包括减小其它元件(诸如示例性CPU 221)的功率消耗,从而将合计功率消耗290降到一个或多个功率供应装置260的最大额定功率以下。动态功率路由机制还可以包括将工作流270的部分(诸如示例性部分271)的处理转移289到不同的硬件加速器(诸如示例性硬件加速器232)其可以位于不同的刀片服务器、不同的机箱上或者从不同的功率供应装置上汲取功率,使得硬件加速器232的功率消耗将既不增大硬件加速器232的主机装置的合计功率消耗从而超过对应的功率供应装置的最大额定功率,又将使得原始计算装置(诸如示例性刀片服务器220)能够持续操作而不将任意其组件转变为较低功率消耗状态。
转向图3,这里示出的系统300示出了动态功率路由器诸如示例性动态功率路由器330的操作的各个方面。为了提供针对系统300的上下文,之前描述的示例性工作流270被示出,包括能够由一个或多个硬件加速器执行的部分271。如之前所述,硬件加速器可以被特别设计为优化包括部分271的计算机可执行指令的执行,从而比通用处理单元更快地或采用更高效的功率利用方式来执行部分271。因此,图3中未明确示出的初始步骤可以是确定能够由比通用处理单元更高效的硬件加速器执行的工作流(诸如示例性工作流271)的那些部分。根据一个方面,工作流的这种部分可以由生成工作流的软件开发者明确标识。例如,可以提供接口使得这种软件开发者可以调用以请求工作流的标识部分可以由硬件加速器执行(如果可能的话)。在另一个方面,考虑到硬件加速器的设计,可以由硬件加速器加速的工作流的部分可以通过搜索计算机可执行指令或适于由硬件加速器执行的特定例程的特定组合来进行检测。
一旦可以由硬件加速器执行工作流的部分(诸如示例性工作流270的示例性部分271)已经被标识,如图3通过决定310所示,可以做出关于这样的部分271实际上将被提供给硬件加速器以被加速,还是将由通用处理单元(诸如当前执行工作流270的其它部分的通用处理单元)执行的确定。如图3所示,可以基于功率中心输入340通过动态功率路由器(诸如示例性动态功率路由器330)进行这种确定。更特别地,根据一个方面,动态功率路由器330可以基于是否足量的功率能够被提供给可以被分配以执行部分271的任务的硬件加速器而不超过对应的功率供应装置的最大额定功率来进行决定310。这样,可以由动态功率路由器330接收的功率中心输入340中的一个可以是相关功率供应装置的最大额定功率。
功率中心输入340中的另一个可以是主机计算装置(诸如示例性计算装置220)的当前功率汲取,其CPU(诸如示例性CPU 221)当前正在执行工作流270。例如,如果计算装置220具有足够低的功率汲取,以使得工作流270的部分271能够由同样作为这种计算装置220的一部分的硬件加速器(诸如示例性硬件加速器222)执行而不超过最大额定功率,则动态功率路由器330可以实施决定310并且可以允许这个部分270在硬件加速器222上执行。
如果动态功率路由器330确定的主机计算装置(诸如示例性计算装置200)的功耗太高而在不超过将功率供应到这种计算装置220的至少一个功率供应装置的最大额定功率的情况下,不能适应硬件加速器(诸如示例性硬件加速器222)的额外功耗,则动态功率路由器330可以继续进一步确定计算装置220的其它元件是否可以被降低到较低功率消耗状态,以便在最大额定功率阈值下为硬件加速器222“留出空间”。这样做,使得动态功率路由器330可以实施多个功率降低机制和策略以降低其它元件或那些元件中的部分(诸如计算装置220的一个或多个通用处理单元的特定核)的功率消耗。例如,动态功率路由器330可以命令CPU 221转变为较低功率消耗模式。如本领域技术人员将理解的,在CPU 221是多核处理器时,这种较低功率消耗模式可以导致CPU 221更慢地或仅使用其核的小部分来执行处理。作为另一示例,动态功率路由器330可以在包括多个离散处理器的计算环境中使个体处理器失效,诸如通过使这种处理器通过其与母板通信耦合的插口失效。其它元件可以同样被转变为较低功率状态或完全失效以保存功率一段时间,在这段时间期间,硬件加速器(诸如示例性硬件加速器222)可以在执行。这种其它元件可以包括例如存储装置(诸如磁或固态硬盘驱动)、联网元件(诸如网络接口卡)和其它机箱或计算装置元件。
根据一个方面,为了确定硬件加速器在执行部分271时可以消耗多少功率,动态功率路由器(诸如示例性动态功率路由器330)可以考虑硬件加速器的不同处理模式及其各自功率汲取。更具体地,如本领域技术人员将理解的,硬件加速器可以根据不同处理或处理模式(有时称为“热”模式或“冷”模式)以不同的速度和吞吐量执行计算机可执行指令,并且单个硬件加速器能够通常响应于其正在执行的计算机可执行指令的类型或者响应于从这种计算机可执行指令的执行中接收到的明确指令而在多个这种模式之间进行转变。因此,如示例性功率中心输入340指示的,当以不同的操作模式操作时,指示硬件加速器的功率消耗的经验数据可以是提供给动态功率路由器330的信息的一部分。
利用这种信息,连同关于硬件加速器的处理模式,以及哪些模式是被需要或被期望用以在硬件加速器上执行部分271的信息一起,动态功率路由器330可以确定其是否可以改变其它元件350的功率消耗以适应硬件加速器的功率消耗。例如,如果动态功率路由器330将部分271标识为包括可以由仅在低功率或“冷”模式下操作的硬件加速器执行的计算机可执行指令,那么动态功率路由器330可以确定额外的功率可以以仅产生最小影响的方式通过改变其它元件350的功率消耗供这种硬件加速器使用。在这种示例中,动态功率路由器330可以实施决定310并且可以允许这种部分271在本地硬件加速器(诸如例如工作流270当前正在其上执行的计算装置220的硬件加速器222)上执行。相反,如果动态功率路由器330将部分271标识为包括被期望由以最高功率消耗模式操作的硬件加速器执行的计算节可执行指令,那么动态功率路由器330可以确定其不足以改变其它元件350的功率消耗来适应将由本地硬件加速器(诸如硬件加速器222)消耗的功率消耗。在这种情况下,动态功率路由器330可以实施决定310以将工作流270的部分271的执行转移到计算装置222外部的硬件加速器,诸如例如硬件加速器232,在其上工作流270之前正在被执行。备选地,动态功率路由器330可以实施决定310以保持CPU 221上的工作流270的执行,并且不发送部分271以由硬件加速器执行。
根据一个方面,动态功率路由器330除了标识出可以执行工作流的部分(诸如示例性工作流270的示例性部分271)的一个或多个硬件加速器而不超过一个或多个功率供应装置的最大额定功率之外,还可以控制其它元件350的功率消耗,以使得硬件加速器能够消耗功率而不超过一个或多个功率供应装置的最大额定功率。对其它元件350的功率消耗的这种控制可以以反应或预测的方式或其组合实现。
在预测操作中,动态功率路由器330可以预期硬件加速器的功率需求并且可以前摄地调节其它元件350的功率消耗以适应硬件加速器的预期的功率消耗。例如,在引导硬件加速器222执行工作流270的部分271之前,动态功率路由器330可以将计算装置220的其它元件转变为较低功率消耗状态,以使得当硬件加速器222开始执行部分271时,计算装置220的增大的合计功率消耗(现在包括硬件加速器222的功率消耗)仍可以保持在一个或多个功率供应装置的最大额定功率以下。如之前所述,动态功率路由器330可以诸如基于哪些接口被工作流270调用来确定硬件加速器220将使用哪个处理模式来执行部分271,并且可以从这种处理模式和经验数据确定在执行部分271时硬件加速器222的功率消耗。其它元件350的功率消耗然后可以通过动态功率路由器330前摄地减小,从而硬件加速器222的期望功率消耗与其它元件350的功率消耗的组合将不超过一个或多个功率供应装置的最大额定功率。
在反应操作中,动态功率路由器330可以从在硬件加速器222上执行的工作流271的部分中接收对额外功率的请求,以使得硬件加速器222可以转变为更多功率消耗执行模式,并且可以执行对是否需要硬件加速器来保持其当前执行模式,或者是否在那时减小其它元件350的功率消耗从而使得硬件加速器222转变为更多功率消耗执行模式的确定320。
根据一个方面,部分271或硬件加速器222自身可以自抑制以避免超过限定的功率消耗限制。例如,动态功率路由器330可以标识硬件加速器222在执行部分271时在不超过一个或多个功率供应装置的最大额定功率的情况下可能消耗的功率的量。硬件加速器222可以包括可以监控硬件加速器222的功率消耗并且可以使得硬件加速器转变为较低功率消耗执行模式的自抑制功能,如果其功率消耗增加超过由动态功率路由器330标识的对于硬件加速器222可用的功率的量。备选地,这种自抑制功能可以由计算机可执行指令提供,诸如由硬件加速器222正在执行的部分271的那些指令提供。
根据另一个方面,硬件加速器的抑制操作的功能可以由外部协调器提供,外部协调器包括例如可以作为动态功率路由器330的部分执行的外部协调器。在这种情况下,动态功率路由器330可以建立可用于硬件加速器的功率量的阈值,包括动态功率路由器330已经通过减小其它元件350的功率消耗而供硬件加速器使用的功率,并且外部协调器可以修改硬件加速器的执行模式以确保硬件加速器不超过建立的功率量的阈值。
关于硬件加速器的抑制功能的一个示例可以是提供可由硬件加速器执行并且提供不同级别的硬件加速器功能的计算机可执行指令。例如,类似于使通用处理单元的核空闲或失效,硬件加速器可以提供有多种加速器设计,以用于可以适配到可用功率包络中的给定离散功能的集合。作为特定示例,数据压力加速器可以以可由这种硬件加速器执行的计算机可执行指令的形式提供有多个或“平铺式”压缩引擎。例如,一个、两个、三个或四个引擎版本可以加载以由硬件加速器基于可用功率或其它功率相关阈值而执行。类似地,这种压缩引擎(例如任意其它类似组计算机可执行指令)可以被前摄地加载以便不超过可用功率。以类似的方式,单个硬件装置上的多个加速器可以被适应。
返回到图2,其操作在上面详细描述过的动态功率路由器330可以以通过一个或多个计算装置提供的功能的形式实施。例如,示例性机箱210中的服务器计算装置(诸如示例性刀片服务器220和230)中的每一个可以实施本地动态功率路由器,其可以确定是否本地硬件加速器将被使用,以及这种本地硬件加速器可能消耗多少功率。因此,例如,正在刀片服务器220上执行的本地动态功率路由器可以确定工作流的部分(诸如工作流270的示例性部分271)是否可以通过由刀片服务器220代管的硬件加速器222执行,以及如果这种示例性部分271可以由硬件加速器222执行,这种硬件加速器222可以消耗的功率量。每个本地动态功率路由器可以与其它本地动态功率路由器交互以有利于将处理传递到可以对其硬件加速器提供更多的功率量的刀片服务器。因此,例如,刀片服务器220的本地动态功率路由器可以与刀片服务器230的本地动态功率路由器通信,并且通过这种通信,本地动态功率路由器可以确定例如刀片服务器230可以为硬件加速器232提供更多的功率量,并且由此,否则将通过刀片服务器220的CPU 221正在执行的示例性工作流270的部分271可以被转移到的刀片服务器230以由在此代管的硬件加速器232执行。
根据另一个方面,中央动态功率路由器可以通过中央控制计算装置(诸如机箱计算装置240和/或集中控制计算装置260)执行。这种中央动态功率路由器可以监控个体刀片服务器(诸如示例性独立的刀片服务器220和230)中的多个,并且可以执行类似于上述那些的动作,除了这种动作可以在多个单独刀片服务器上同时操作,并且可以更容易地有助于在刀片服务器之间传递例如部分271,以有助于在刀片服务器的硬件加速器上执行部分271,刀片服务器消耗足够少的功率,诸如那个刀片服务器的其它元件的合计功率消耗与那个刀片服务器的硬件加速器的功率消耗的组合不超过为这种刀片服务器提供的功率的一个或多个功率供应装置的最大额定功率。
转向图4,这里示出的示例性流程图400示出了示例性步骤序列,动态功率路由可以通过该步骤序列提供以便在计算装置上使用硬件加速器,计算装置的功率供应装置具有最大额定功率阈值,如果在包括硬件加速器的计算装置的元件同时在高功率利用执行模式下使用,将被消耗的将低于最大额定功率阈值。相关处理可以通过通用处理单元(诸如CPU)上的工作流的执行开始,如图4中的步骤410所示。随后在步骤415,可以进行关于是否那个工作流的至少部分能够通过可用的硬件加速器加速的确定。如之前所述,硬件加速器可以针对特定处理功能(诸如针对特定任务的特定计算机可执行指令的性能)而被优化。因此,在步骤415的性能中,可以进行被执行的工作流的至少部分是否执行这种任务的分析。备选地,415可以包括接收对特定的应用程序接口的调用,通过其被执行的工作流的部分可以请求其在硬件加速器上执行。如果不存在能够加速的工作流的部分,则工作流可以继续在CPU上执行,如步骤470所示。
然而,在步骤415中,如果确定工作流的至少部分可以通过在一个或多个硬件加速器上执行而被加速,那么在步骤420中,可以进行关于是否足够的功率可以被路由到本地硬件加速器以执行工作流的那个部分的确定。如上面详细描述的,将功率路由到硬件加速器可以包括将其中工作流被执行的计算装置的一个或多个其它元件转变为较低功率消耗状态,包括例如将一个或多个CPU转变为较慢执行频率,使多核CPU的一个或多个核失效和/或使多CPU母板的插口失效。在步骤420中,可以通过由其中工作流被执行的本地计算装置消耗的当前功率量以及在执行工作流的部分时将由硬件加速器消耗的预期功率量进一步获知确定。例如并且如上面详细描述的,硬件加速器可以执行可以消耗相异功率量的不同执行模式。因此,在步骤420中,确定可以包括在执行被分配至其的工作流的部分时硬件加速器将实施哪个执行模式以及是否足够的功率可以被发送到硬件加速器诸如通过将其它元件转变为较低功率状态从而将不会超过在其上执行工作流的计算装置的一个或多个功率供应装置的最大额定功率的确定。
在步骤420中,如果确定没有足够的本地功率来适用于在硬件加速器上执行工作流的部分,那么处理可以进行到步骤460,在步骤460中,可以针对还可以包括类似硬件加速器的其它计算装置进行类似确定。如果那些其它计算装置包括足够可用的功率,诸如可以在步骤460中确定,那么处理可以进行到步骤465并且将在硬件加速器上执行的工作流的部分可以被转移到一个或多个这种远程计算装置。如上面详细描述的,在步骤460中的确定并且实际上图4所示的示例性流程图400的全部步骤可以通过可以跨越多个计算装置(诸如单个机箱内的多个刀片服务器计算装置或数据中心中的整个多个机箱的多个计算装置)在硬件加速器上协调工作流的部分的执行的集中动态功率路由器执行。在步骤460中,如果没有发现具有适用于在硬件加速器上执行工作流的部分的足够功率的其它计算装置,那么工作流如步骤470所示可以继续在通用处理单元(诸如之前工作流在其上被执行的计算装置的CPU)上执行。
返回参照步骤420,如果确定具有适用于在硬件加速器上执行工作流的部分的足够的本地功率,那么处理可以进行到步骤425,并且工作流的部分可以被发送到在此将被执行的硬件加速器。作为步骤425的部分,在开始通过硬件加速器执行工作流的在这种部分之前,计算系统的一个或多个其它元件可以被前摄地转变为较低功率消耗状态。如上面详细描述的,动态功率路由器可以预测模式在通过硬件加速器消耗的功率的预期下动作以将其它元件前摄地转变为较低功率消耗状态,从而确保合计功率消耗保持在一个或多个功率供应装置的最大额定功率以下。还如上面详细描述的动态功率路由器可以以反应的方式动作并且诸如在转变为较高功率消耗执行模式之前,在将其它元件转变为较低功率消耗状态之前,可以等待将由硬件加速器请求的额外的功率。因此,诸如通过将它们转变为较低功率消耗状态或使它们完全失效而减小其它元件的功率消耗的动作可以在步骤425中用斜体字表示以指示它是可选的动作并且可以从属实施。
在步骤430中,可以进行关于由硬件加速器执行的工作流的部分或者硬件加速器本身是否被自抑制的确定,从而将不超过给定的阈值功率消耗量并且通过硬件加速器的工作流的部分的执行将在执行模式之间自身转变为保持其功率消耗低于这种阈值功率消耗量。如果由硬件加速器加速的工作流的部分或硬件加速器本身被自抑制,那么处理可以进行到步骤435并且动态功率路由器可以将可用的功率信息提供给硬件加速器或在此执行的计算机可执行指令。如上面详细描述的,这种信息可以包括可以发送到硬件加速器的功率量,如果计算装置的一个或多个元件被转变为较低功率计算状态。可选地,这种信息可以包括当前可用的功率量,其中,如果硬件加速器消耗功率量,那么计算装置的合计功率消耗将仍然不超过将功率提供给这种计算装置的一个或多个功率供应装置的最大额定功率。如上详述,利用这种信息,自抑制硬件加速器或工作流部分可以在硬件加速器的执行模式之间转变,以确保不超过标识的阈值功率消耗量,同时,硬件加速器执行作为工作流的部分的那些计算机可执行指令。然后处理可以返回到CPU,如步骤470表示。
在步骤430中,如果确定自抑制功能不可用,那么处理可以进行到步骤440至455,其中硬件加速器的抑制可以通过动态功率路由器执行。更具体地,在步骤440中,可以从硬件加速器接收请求以转变到增大的功率消耗执行模式。如之前解释的,这种增大的功率消耗执行模式可以是执行更高效地或具有更大吞吐量的计算机可执行指令的执行模式。在步骤440中这种请求被接收之后,在步骤445中,可以进行功率是否可用于满足请求的确定。如之前,可以基于如果计算装置的其它元件被转变为较低功率消耗状态或完全失效而可用的功率量来进行这种确定。由于转变为较低功率消耗状态可能引起性能的损失,考虑到硬件加速器在以较高功率消耗时或以更高性能执行模式操作的性能的对应增加,可以进行关于计算装置的其它元件的这种性能的损失是否可接受的进一步确定。在步骤445中,如果确定额外的功率对于硬件加速器来说不可用,或者其它元件转变为较低消耗状态将导致它们的性能与硬件加速器对应增加的性能不成比例地更大的降低,则处理可以进行到步骤445并且可以拒绝硬件加速器转变为较高功率消耗执行模式的请求。相反,在步骤455中,如果确定额外的功率可以被路由到硬件加速器,诸如通过将其它元件转变为较低功率消耗状态,那么动态功率路由器可以将那些元件转变为较低功率消耗状态,并且利用在由来自被转变为较低功率消耗状态的那些元件的功率存储适应的增大的功率消耗执行模式中由硬件加速器消耗的额外的功率的至少一些,可以随后对使得硬件加速器能够转变为增大的功率消耗执行模式的请求作出反应。步骤440至455并且然后在由硬件加速器处理工作流的部分期间反复,基于此,结果可以返回到在CPU上执行的工作流的其它计算机可执行指令并且工作流的执行可以在CPU上继续,如步骤470表示。
作为第一示例,上面的描述包括计算装置,其包括:通用中央处理单元;硬件加速器,被预配置为比通用中央处理单元更高效地执行离散的计算操作集合,该离散的计算操作集合仅为通能够过通用中央处理单元执行的较大的计算操作集合的子集;电力供应装置,具有最大额定功率,其中,在至少一种处理模式下使用硬件加速器可以导致计算装置要求比电力供应装置的最大额定功率更大量的电力;以及一个或多个计算机可读存储介质,包括指向以下步骤的计算机可执行指令,步骤包括:标识包括可以由硬件加速器更高效地执行的该离散的计算操作集合中的至少一些计算操作的工作流部分,工作流由通用中央处理单元执行;使得标识的工作流部分由硬件加速器执行;以及将通用中央处理单元设置为减小的功率消耗模式,其中,如果没有将通用中央处理单元设置为减小的功率消耗模式,则由硬件加速器执行所标识的工作流部分将超过电力供应装置的最大额定功率。
第二示例是第一示例的计算装置,其中,指向标识工作流的计算机可执行指令包括用于经由接口从请求所述工作流部分由硬件加速器执行的工作流接收调用的计算机可执行指令。
第三示例是第一示例的计算装置,其中,在通过硬件加速器执行标识的工作流部分之前,通用中央处理单元被设置为减小的功率消耗状态。
第四示例是第三示例的计算装置,其中,一个或多个计算机可读存储介质包括:另外计算机可执行指令以用于:向硬件加速器或由硬件加速器执行的工作流部分提供可用量的功率,在通用中央处理单元被设置为减小的功率消耗状态之后,该可用量的功率可以由硬件加速器在执行工作流部分时消耗,而同时保持在电力供应装置的最大额定功率以下,硬件加速器或由硬件加速器执行的工作流部分被自抑制以保持在所提供的可用量的功率内。
第五示例是第一示例的计算装置,其中,在由硬件加速器执行标识的工作流部分已经开始之后,通用中央处理单元被设置为减小的功率消耗状态。
第六示例是第五示例的计算装置,其中,一个或多个计算机可读存储介质包括另外的计算机可执行指令,其用于:从硬件加速器或由硬件加速器执行的工作流部分接收用于以将硬件加速器转变为较高功率消耗执行模式的请求;并且响应于该请求而仅在将通用中央处理单元设置为减小的功率消耗模式之后,授权硬件加速器转变为较高功率消耗执行模式。
第七示例是第一示例的计算装置,其中,一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于预测将由硬件加速器在执行标识的工作流部分时消耗的功率量;并且其中,用于使得标识的工作流部分将由硬件加速器执行的计算机可执行指令仅在如下情况下被执行:由硬件加速器消耗的预测量的功率量与在通用中央处理单元被设置为减小的功率消耗模式之后由计算装置的其它元件消耗的功率量合集仍小于电力供应装置的最大额定功率。
第八示例是第七示例的计算装置,其中,用于预测将在执行标识的工作流部分时将由硬件加速器消耗的功率量的计算机可执行指令包括用于在执行标识的工作流部分时标识硬件加速器的执行模式的计算机可执行指令。
第九示例是第一示例的计算装置,其进一步包括通过插口通信地耦合到计算装置的第二通用中央处理单元;其中,一个或多个计算机可读存储介质包括用于使插口失效的另外的计算机可执行指令。
第十示例是第一示例的计算装置,其中,通用中央处理单元包括多个处理核;其中进一步地,用于将通用中央处理单元设置为减小的功率消耗模式的计算机可执行指令包括用于使通用中央处理单元的多个处理核中的至少一个失效的计算机可执行指令。
第十一示例是第一示例的计算装置,其进一步包括一个或多个计算机可读存储装置和一个或多个网络接口装置;并且其中,一个或多个计算机可读存储介质包括用于使一个或多个计算机可读存储装置中的至少一个或一个或多个网络接口装置中的至少一个失效或将其设置为减小的功率消耗模式,其中,如果没有一个或多个计算机可读存储装置中的至少一个或一个或多个网络接口装置中的至少一个设置为减小的功率消耗模式,则由硬件加速器执行标识的工作流部分将超过电力供应装置的最大额定功率。
第十二示例是一种系统,其包括:第一计算装置,包括第一通用中央处理单元和预配置为比第一通用中央处理单元更高效地执行离散的计算操作集合的第一硬件加速器,该离散的计算操作集合仅是由第一通用中央处理单元可执行的较大的计算操作集合的子集;第二计算装置,与第一计算装置不同,第二计算装置包括第二通用中央处理单元和预配置为比第二通用中央处理单元更高效地执行该离散的计算操作集合的第二硬件加速器;电力供应装置,具有最大额定功率;以及一个或多个计算机可读存储介质,包括指向以下步骤的计算机可读指令,步骤包括:标识包括该离散的计算操作集合中的至少一些计算操作的工作流部分,工作流通过第一通用中央处理单元执行;标识可以分别利用第一硬件加速器或第二硬件加速器中对应的一个来执行标识的工作流部分而同时保持合计功率消耗低于最大额定功率的第一计算装置或第二计算装置中的一个;以及使得第一或第二计算装置中的标识的一个利用第一或第二硬件加速器中对应的一个来执行标识的工作流部分。
第十三示例是第十二示例的系统,其进一步包括与第一和第二计算装置分开的中央控制计算装置,中央控制计算装置执行计算机可执行指令。
第十四示例是第十二示例的系统,其中,第一或第二计算装置中所标识的一个是第二计算装置;并且其中进一步地,计算机可读存储介质包括另外的计算机可读指令以用于:从第一计算装置将标识的工作流部分转移到第二计算装置。
第十五示例是第十二示例的系统,其中,计算机可读存储介质包括与第一或第二计算装置中所标识的一个对应将第一或第二通用中央处理单元中对应的一个设置为减小的功率消耗模式的另外的计算机可执行指令;并且其中进一步地,如果没有将第一或第二通用中央处理单元中对应的一个设置为减小的功率消耗模式,则由第一或第二硬件加速器中对应的一个执行所标识的工作流部分将超出电力供应装置的最大额定功率。
第十六示例是第十二示例的系统,其中,指向标识工作流的计算机可执行指令包括:用于经由接口从请求工作流部分由硬件加速器执行的工作流接收调用的计算机可执行指令。
第十七示例是第十二示例的系统,其中,一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:向第一或第二硬件加速器中对应的一个或在此执行的工作流部分提供可以在保持在电力供应装置的最大额定功率以下的同时执行工作流部分时由第一或第二硬件加速器中对应的一个消耗的可用的功率量,第一或第二硬件加速器中对应的一个或工作流部分被自抑制以保持在所提供的可用量的功率内。
第十八示例是第十二示例的系统,其中,一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:接收请求以将第一或第二硬件加速器中对应的一个转变为较高功率消耗执行模式;以及响应于请求仅在将与第一或第二计算装置中所标识的一个对应的第一或第二通用中央处理单元中对应的一个设置为减小的功率消耗模式之后,授权第一或第二硬件加速器中对应的一个转变为较高功率消耗执行模式。
第十九示例是第十二示例的系统,其中,一个或多个计算机可读存储介质包括用于在执行标识的工作流部分时标识第一或第二硬件加速器中对应的一个的执行模式的另外的计算机可执行指令。
第二十示例是一种硬件加速器,其包括:一个或多个处理单元,预配置为比通用中央处理单元更高效地执行离散的计算操作集合,该离散的计算操作操作为由通用中央处理单元可执行的较大的计算操作集合的子集;以及一个或多个计算机可读存储介质,包括计算机可执行指令,当由硬件加速器执行时,计算机可执行指令使得硬件加速器执行以下步骤,步骤包括:在硬件加速器执行包括可以由硬件加速器更高效地执行该离散的计算操作集合中的至少一些计算操作的工作流部分时,监控硬件加速器的功率消耗,工作流由通用中央处理单元执行;响应于执行工作流部分的执行而交替地将硬件加速器转变为较高功率消耗执行模式或较低功率消耗执行模式,以便将硬件加速器的功率消耗保持在提供的阈值以下。
如从上面的描述可看到,已经提供用于将功率动态地发送到硬件加速器的机制。考虑到本文描述的主题的许多可能的变形,我们要求我们的发明保护全部这种实施例,其可以在所附权利要求及其等同物的范围内。

Claims (15)

1.一种计算装置,其包括:
通用中央处理单元;
硬件加速器,被预配置为比所述通用中央处理单元更高效地执行离散的计算操作集合,所述离散的计算操作集合仅为能够由所述通用中央处理单元执行的较大的计算操作集合的子集;
电力供应装置,具有最大额定功率,其中在至少一种处理模式下使用所述硬件加速器能够导致所述计算装置要求比所述电力供应装置的最大额定功率更大量的电力;以及
一个或多个计算机可读存储介质,包括指向以下步骤的计算机可执行指令,所述步骤包括:
标识包括能够由所述硬件加速器更高效地执行的所述离散的计算操作集合中的至少一些计算操作的工作流部分,所述工作流由所述通用中央处理单元执行;
使得所标识的工作流部分由所述硬件加速器执行;以及
将所述通用中央处理单元设置为减小的功率消耗模式,其中,如果没有将所述通用中央处理单元设置为所述减小的功率消耗模式,则由所述硬件加速器执行所标识的工作流部分将超过所述电力供应装置的最大额定功率。
2.根据权利要求1所述的计算装置,其中指向标识工作流的所述计算机可执行指令包括用于经由接口从请求所述工作流部分由所述硬件加速器执行的所述工作流接收调用的计算机可执行指令。
3.根据权利要求1所述的计算装置,其中所述一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:向所述硬件加速器或正由所述硬件加速器执行的所述工作流部分提供可用的功率量,在所述通用中央处理单元被设置为所述减小的功率消耗状态之后,所述可用量的功率能够由所述硬件加速器在执行所述工作流部分时消耗,而同时保持在所述电力供应装置的最大额定功率以下,所述硬件加速器或由所述硬件加速器执行的所述工作流部分被自抑制以保持在所提供的可用量的功率内,其中在由所述硬件加速器执行所标识的工作流部分之前,所述通用中央处理单元被设置为所述减小的功率消耗状态。
4.根据权利要求1所述的计算装置,其中所述一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:
从所述硬件加速器或正由所述硬件加速器执行的所述工作流部分接收用以将所述硬件加速器转变为较高功率消耗执行模式的请求;并且
响应于所述请求而仅在将所述通用中央处理单元设置为所述减小的功率消耗模式之后,授权所述硬件加速器转变为所述较高功率消耗执行模式,所述通用中央处理单元在由所述硬件加速器执行所标识的工作流部分已经开始之后被设置为所述减小的功率消耗状态。
5.根据权利要求1所述的计算装置,其中所述一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于预测将由所述硬件加速器在执行所标识的工作流部分时消耗的功率量;并且其中用于使得所标识的工作流部分将由所述硬件加速器执行的所述计算机可执行指令仅在如下情况下被执行:由所述硬件加速器消耗的所预测的功率量与在所述通用中央处理单元被设置为所述减小的功率消耗模式之后由所述计算装置的其它元件消耗的功率量合计仍小于所述电力供应装置的最大额定功率。
6.一种系统,其包括:
第一计算装置,包括第一通用中央处理单元和被预配置为比所述第一通用中央处理单元更高效地执行离散的计算操作集合的第一硬件加速器,所述离散的计算操作集合仅为能够由所述第一通用中央处理单元执行的较大的计算操作集合的子集;
第二计算装置,与所述第一计算装置不同,所述第二计算装置包括第二通用中央处理单元和被预配置为比所述第二通用中央处理单元更高效地执行所述离散的计算操作集合的第二硬件加速器;
电力供应装置,具有最大额定功率;以及
一个或多个计算机可读存储介质,包括指向以下步骤的计算机可读指令,所述步骤包括:
标识包括所述离散的计算操作集合中的至少一些计算操作的工作流部分,所述工作流由所述第一通用中央处理单元执行;
标识能够分别利用所述第一硬件加速器或所述第二硬件加速器中对应的一个硬件加速器来执行所标识的工作流部分而同时保持合计功率消耗低于所述最大额定功率的所述第一计算装置或所述第二计算装置中的一个计算装置;以及
使得所述第一装置或所述第二计算装置中的所标识的计算装置利用所述第一硬件加速器或所述第二硬件加速器中对应的一个硬件加速器来执行所标识的工作流部分。
7.根据权利要求6所述的系统,其中进一步包括与所述第一计算装置和所述第二计算装置分开的中央控制计算装置,所述中央控制计算装置执行所述计算机可执行指令。
8.根据权利要求6所述的系统,其中所述第一计算装置或所述第二计算装置中的所标识的计算装置是所述第二计算装置;并且其中进一步地所述计算机可读存储介质还包括另外的计算机可读指令以用于将所标识的工作流部分从所述第一计算装置转移到所述第二计算装置。
9.根据权利要求6所述的系统,其中所述一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:向所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器或由其执行的所述工作流部分提供能够由所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器在执行所述工作流部分时所消耗的可用量的功率,而同时保持在所述电力供应装置的最大额定功率以下,所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器或所述工作流部分被自抑制以保持在所提供的可用量的功率内。
10.一种硬件加速器,包括:
一个或多个处理单元,被预配置为比通用中央处理单元更高效地执行离散的计算操作集合,所述离散的计算操作集合仅为能够由所述通用中央处理单元执行的较大的计算操作的子集;以及
一个或多个计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由所述硬件加速器执行时使得所述硬件加速器执行以下步骤,所述步骤包括:
在所述硬件加速器执行包括能够由所述硬件加速器更高效地执行所述离散的计算操作集合中的至少一些计算操作的工作流部分时,监控所述硬件加速器的功率消耗,所述工作流由所述通用中央处理单元执行;
响应于所述工作流部分的执行而交替地将所述硬件加速器转变为较高功率消耗执行模式或较低功率消耗执行模式,以便将所述硬件加速器的功率消耗保持在提供的阈值以下。
11.根据权利要求5所述的计算装置,其中用于预测将由所述硬件加速器在执行所标识的工作流部分时消耗的功率量的计算机可执行指令包括:用于标识所述硬件加速器在执行所标识的工作流部分时的执行模式的计算机可执行指令。
12.根据权利要求1所述的计算装置,进一步包括通过插口通信地耦合到所述计算装置的第二通用中央处理单元;其中所述一个或多个计算机可读存储介质包括用于使插口失效的另外的计算机可执行指令。
13.根据权利要求1所述的计算装置,其中所述通用中央处理单元包括多个处理核;其中进一步地,用于将所述通用中央处理单元设置为所述减小的功率消耗模式的所述计算机可执行指令包括:用于使所述通用中央处理单元的所述多个处理核中的至少一个处理核失效的计算机可执行指令。
14.根据权利要求6所述的系统,其中所述计算机可读存储介质包括另外的计算机可执行指令以用于:将与所述第一计算装置或所述第二计算装置中所标识的所述计算装置相对应的所述第一通用中央处理单元或所述第二通用中央处理单元中对应的通用中央处理单元设置为减小的功率消耗模式;并且其中进一步地,如果没有将所述第一通用中央处理单元或第二通用中央处理单元中对应的所述通用中央处理单元设置为所述减小的功率消耗模式,则由所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器所标识的工作流部分的执行将超出所述电力供应装置的最大额定功率。
15.根据权利要求6所述的系统,其中所述一个或多个计算机可读存储介质包括另外的计算机可执行指令以用于:
接收用以将所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器转变为较高功率消耗执行模式的请求;以及
响应于所述请求而仅在将与所述第一计算装置或所述第二计算装置中所标识的所述计算装置对应的所述第一通用中央处理单元或所述第二通用中央处理单元中对应的通用中央处理单元设置为减小的功率消耗模式之后,授权所述第一硬件加速器或所述第二硬件加速器中对应的所述硬件加速器转变为所述较高功率消耗执行模式。
CN201680033766.7A 2015-04-08 2016-04-05 至硬件加速器的动态功率路由 Active CN107743608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010355058.3A CN111475012B (zh) 2015-04-08 2016-04-05 至硬件加速器的动态功率路由

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/682,088 2015-04-08
US14/682,088 US9760159B2 (en) 2015-04-08 2015-04-08 Dynamic power routing to hardware accelerators
PCT/US2016/025957 WO2016164324A1 (en) 2015-04-08 2016-04-05 Dynamic power routing to hardware accelerators

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010355058.3A Division CN111475012B (zh) 2015-04-08 2016-04-05 至硬件加速器的动态功率路由

Publications (2)

Publication Number Publication Date
CN107743608A true CN107743608A (zh) 2018-02-27
CN107743608B CN107743608B (zh) 2020-05-22

Family

ID=55863192

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010355058.3A Active CN111475012B (zh) 2015-04-08 2016-04-05 至硬件加速器的动态功率路由
CN201680033766.7A Active CN107743608B (zh) 2015-04-08 2016-04-05 至硬件加速器的动态功率路由

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010355058.3A Active CN111475012B (zh) 2015-04-08 2016-04-05 至硬件加速器的动态功率路由

Country Status (4)

Country Link
US (2) US9760159B2 (zh)
EP (1) EP3281085A1 (zh)
CN (2) CN111475012B (zh)
WO (1) WO2016164324A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113947185A (zh) * 2021-09-30 2022-01-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760159B2 (en) * 2015-04-08 2017-09-12 Microsoft Technology Licensing, Llc Dynamic power routing to hardware accelerators
US11188682B2 (en) * 2016-06-17 2021-11-30 Arm Limited Apparatus and method for masking power consumption of a processor
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US10320677B2 (en) 2017-01-02 2019-06-11 Microsoft Technology Licensing, Llc Flow control and congestion management for acceleration components configured to accelerate a service
US10326696B2 (en) 2017-01-02 2019-06-18 Microsoft Technology Licensing, Llc Transmission of messages by acceleration components configured to accelerate a service
US10425472B2 (en) 2017-01-17 2019-09-24 Microsoft Technology Licensing, Llc Hardware implemented load balancing
US11157067B2 (en) 2019-12-14 2021-10-26 International Business Machines Corporation Power shifting among hardware components in heterogeneous system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169714B (zh) * 2006-10-26 2010-06-02 国际商业机器公司 用于在计算环境中加速应用的执行的系统和方法
US20150089251A1 (en) * 2013-09-26 2015-03-26 Cavium, Inc. Method and Apparatus for Managing Global Chip Power on a Multicore System on Chip
CN104823129A (zh) * 2012-12-28 2015-08-05 英特尔公司 用于智能地对异构处理器组件供电的装置和方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047342A (en) * 1998-03-31 2000-04-04 Apple Computer, Inc. PC processing card for decoding operations
US20060112286A1 (en) 2004-11-23 2006-05-25 Whalley Ian N Method for dynamically reprovisioning applications and other server resources in a computer center in response to power and heat dissipation requirements
US7444526B2 (en) 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
US7464278B2 (en) 2005-09-12 2008-12-09 Intel Corporation Combining power prediction and optimal control approaches for performance optimization in thermally limited designs
US7496770B2 (en) * 2005-09-30 2009-02-24 Broadcom Corporation Power-efficient technique for invoking a co-processor
JP4800837B2 (ja) 2006-05-22 2011-10-26 株式会社日立製作所 計算機システム、その消費電力低減方法、及びそのプログラム
US10339227B1 (en) 2007-06-08 2019-07-02 Google Llc Data center design
US7818499B2 (en) 2007-09-18 2010-10-19 Hitachi, Ltd. Methods and apparatuses for heat management in storage systems
US7904287B2 (en) 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
US8145761B2 (en) 2008-03-03 2012-03-27 Microsoft Corporation Load skewing for power-aware server provisioning
US8612984B2 (en) 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
US8756441B1 (en) 2010-09-30 2014-06-17 Emc Corporation Data center energy manager for monitoring power usage in a data storage environment having a power monitor and a monitor module for correlating associative information associated with power consumption
WO2013016313A1 (en) 2011-07-25 2013-01-31 Servergy, Inc. Method and system for building a low power computer system
US8909961B2 (en) 2011-11-29 2014-12-09 Ati Technologies Ulc Method and apparatus for adjusting power consumption level of an integrated circuit
US9407863B2 (en) * 2012-09-28 2016-08-02 Intel Corporation System and method for processing visual information
US9250682B2 (en) 2012-12-31 2016-02-02 Intel Corporation Distributed power management for multi-core processors
US9760159B2 (en) * 2015-04-08 2017-09-12 Microsoft Technology Licensing, Llc Dynamic power routing to hardware accelerators

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169714B (zh) * 2006-10-26 2010-06-02 国际商业机器公司 用于在计算环境中加速应用的执行的系统和方法
CN104823129A (zh) * 2012-12-28 2015-08-05 英特尔公司 用于智能地对异构处理器组件供电的装置和方法
US20150089251A1 (en) * 2013-09-26 2015-03-26 Cavium, Inc. Method and Apparatus for Managing Global Chip Power on a Multicore System on Chip

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113947185A (zh) * 2021-09-30 2022-01-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US10528119B2 (en) 2020-01-07
CN111475012B (zh) 2023-09-29
US20160299553A1 (en) 2016-10-13
EP3281085A1 (en) 2018-02-14
CN111475012A (zh) 2020-07-31
WO2016164324A1 (en) 2016-10-13
US20170351321A1 (en) 2017-12-07
CN107743608B (zh) 2020-05-22
US9760159B2 (en) 2017-09-12

Similar Documents

Publication Publication Date Title
CN107743608A (zh) 至硬件加速器的动态功率路由
US20210365199A1 (en) Technologies for coordinating disaggregated accelerator device resources
US8225118B2 (en) Server system, reducing method of power consumption of server system, and a computer readable medium thereof
Hyser et al. Autonomic virtual machine placement in the data center
US20070250835A1 (en) Grid Computing System, Information Processing Apparatus, Job Execution Request Generating Apparatus, Control Method, and Recording Medium
US8589919B2 (en) Traffic forwarding for virtual machines
CN116501683A (zh) 用于协调解聚的加速器装置资源的技术
CN104049712B (zh) 用于计算机系统的功率管理方法和系统
CN107852413A (zh) 用于将网络分组处理卸载到gpu的技术
CN112905305B (zh) 基于vpp的集群式虚拟化数据转发方法、装置及系统
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
US9135047B2 (en) Apparatus, method, and program for managing a plurality of virtual machines
KR20150100042A (ko) 3차원 다이 스택 디램에서의 가속 시스템
CN107665180A (zh) 分解系统和用于处理请求的方法
CN107846367A (zh) 一种数据传输方法及装置
CN107979474B (zh) 网络设备及供电方法
Bennaceur et al. Formal models for safety and performance analysis of a data center system
CN104219061B (zh) 请求功耗状态变化的方法及装置
JP2007172322A (ja) 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
CN107950013A (zh) 计算机网络中的后备通信方案
US10897429B2 (en) Managing multiple cartridges that are electrically coupled together
US20230137191A1 (en) Mechanism to recompose workload packages in a computing environment
US9146849B2 (en) Apparatus and method for controlling power supply of control device that controls access to data
CN101615066B (zh) 多径数据通信中的节能方法和系统
CN109791503A (zh) 处理中断的方法和装置

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