用于提供加速器设备发现服务的技术

文档序号:956391 发布日期:2020-10-30 浏览:3次 >En<

阅读说明:本技术 用于提供加速器设备发现服务的技术 (Techniques for providing accelerator device discovery services ) 是由 N.兰加纳桑 S.森 J.格雷科 S.普泰尔斯吉 于 2020-03-24 设计创作,主要内容包括:本发明涉及用于提供加速器设备发现服务的技术。用于提供加速器设备发现服务的技术包括具有电路的设备,所述电路被配置成:从发现服务获得可用性数据,所述可用性数据指示可用于协助执行工作负载的加速器设备集合。所述电路还被配置成:根据可用性数据来选择一个或多个目标加速器设备来协助执行工作负载,并且利用所述一个或多个目标加速器设备来执行工作负载。(The present invention relates to techniques for providing accelerator device discovery services. Technologies for providing accelerator device discovery services include a device having circuitry configured to: availability data is obtained from a discovery service, the availability data indicating a set of accelerator devices available to assist in executing a workload. The circuitry is further configured to: one or more target accelerator devices are selected to assist in executing the workload based on the availability data, and the workload is executed with the one or more target accelerator devices.)

用于提供加速器设备发现服务的技术

背景技术

在其中处理器可以将操作集合卸载到加速器设备(诸如现场可编程门阵列(FPGA)、图形处理单元(GPU)和/或与通用处理器相比能够更快地执行操作集合的其它设备)的典型架构中,处理器位于其中的主机计算机可以在加速器设备上配置总线设置(诸如***组件快速互连(PCIe)设置),以使得处理器能够与加速器设备通信。在其中计算资源被保留给单个方使用的情形中,上面的方案有效。然而,在其中代表不同客户(例如租户)在对应虚拟机中执行应用的数据中心中,向客户提供低级控制以限定用于设备的总线设置引入了如下风险:由一个客户建立的设置可能影响用于另一个客户的硬件的性能和/或可能对数据中心造成安全风险。

具体实施方式

虽然本公开的概念容许各种修改和替换形式,但是其特定实施例已经通过示例的方式在附图中示出,并且将在本文中详细描述。然而,应当理解,没有要将本公开的概念限制于所公开的特定形式的意图,而是相反,意图要覆盖与本公开和所附权利要求一致的所有修改、等同物和替换物。

说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或者特性,但是每个实施例可以或者可以不一定包括该特定的特征、结构或者特性。此外,这样的表述不一定指代相同实施例。进一步地,当结合实施例描述特定的特征、结构或特性时,据认为,无论是否明确描述,结合其它实施例来实现这样的特征、结构或特性都是在本领域技术人员的知识内的。附加地,应当领会,在以“至少一个A、B和C”的形式的列表中包含的项目可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。

在一些情况下,所公开的实施例可以被实现在硬件、固件、软件或者它们的任何组合中。所公开的实施例也可以被实现为由暂态或非暂态机器可读(例如,计算机可读)存储介质承载或者存储在其上的指令,所述指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以由机器可读的形式存储或者传输信息的任何存储设备、机构或者其它物理结构(例如,易失性或非易失性存储器、介质盘或其它介质设备)。

在附图中,一些结构或方法特征可以以特定布置和/或排序示出。然而,应当领会,可能并不要求这样的特定布置和/或排序。相反,在一些实施例中,这样的特征可以以不同于说明性图中所示出的方式和/或顺序来布置。附加地,在特定图中包括结构或方法特征并不意味着暗指在所有实施例中都要求这样的特征,并且在一些实施例中,可以不包括这样的特征或者这样的特征可以与其它特征组合。

现在参考图1,数据中心100包括多个pod 110、120、130、140,其中的每个pod包括一行或多行机架,在所述数据中心100中,解聚资源可以协作地执行一个或多个工作负载(例如,代表客户的应用)。当然,尽管数据中心100被示出为具有多个pod,但是在一些实施例中,数据中心100可以被体现为单个pod。如本文中更详细描述的,每个机架容纳多个托架,托架中的每个可以主要装备有特定类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器),即可以逻辑耦合以形成组成节点的资源,该组成节点可以充当例如服务器。在说明性实施例中,每个pod 110、120、130、140中的托架连接到多个pod交换机(例如,将数据通信路由到pod内的托架和从pod内的托架路由数据通信的交换机)。pod交换机转而与主干交换机150连接,主干交换机150在数据中心100中的pod(例如,pod 110、120、130、140)间交换通信。在一些实施例中,托架可以使用英特尔全向路径技术与结构连接。在其它实施例中,托架可以与诸如无线带宽或以太网之类的其它结构连接。如本文中更详细描述的,数据中心100中托架内的资源可以被分配给包含来自一个或多个托架的资源的群组(本文中称为“受管理节点”),以在工作负载的执行中被共同利用。工作负载可以像属于受管理节点的资源位于相同托架上一样执行。受管理节点中的资源可能属于归属于不同机架的托架,并且甚至属于归属于不同pod 110、120、130、140的托架。照此,单个托架的一些资源可以被分配给一个受管理节点,而相同托架的其它资源被分配给不同的受管理节点(例如,一个处理器被分派给一个受管理节点,而相同托架的另一个处理器被分派给不同的受管理节点)。

包括解聚资源的数据中心(诸如数据中心100)可以用在诸如企业、政府、云服务提供商和通信服务提供商(例如Telco’s)的各种各样的情景中,以及从消耗超过100,000平方英尺的云服务提供商大型数据中心到用于基站中的单机架或多机架安装的各种各样大小中。

将资源解聚为主体上由单个类型的资源组成的托架(例如,主要包括计算资源的计算托架、主要包含存储器资源的存储器托架)、以及对解聚资源进行选择性分配和解除分配以形成被分派为执行工作负载的受管理节点,相对于由在单个机箱中包含计算、存储器、存储以及可能的附加资源的超融合服务器组成的典型数据中心,改进了数据中心100的操作和资源使用。例如,因为托架主体上包含特定类型的资源,所以给定类型的资源可以独立于其它资源进行升级。附加地,因为不同的资源类型(处理器、存储、加速器等)典型地具有不同的刷新率,所以可以实现更高的资源利用和降低的总拥有成本。例如,数据中心运营商可以通过仅仅换出计算托架来升级贯穿其设施的处理器。在这样的情况下,加速器和存储资源可能不会同时升级,而是可以被允许继续操作直到那些资源被调度用于它们自己的刷新。资源利用也可以增加。例如,如果受管理节点是基于将在它们之上运行的工作负载的要求而组成的,则节点内的资源更有可能被充分利用。这样的利用可以允许在具有给定资源集的数据中心中运行更多的受管理节点,或者允许使用更少的资源来构建被期望运行给定工作负载集的数据中心。

现在参考图2,在说明性实施例中,pod 110包括机架240的行200、210、220、230的集合。每个机架240可以容纳多个托架(例如,16个托架),并且向所容纳的托架提供电力和数据连接,如本文中更详细描述的。在说明性实施例中,每行200、210、220、230中的机架连接到多个pod交换机250、260。pod交换机250包括一组端口252和另一组端口254,pod 110的机架的托架连接到所述一组端口252,所述另一组端口254将pod 110连接到主干交换机150,以提供到数据中心100中的其它pod的连接性。类似地,pod交换机260包括一组端口262和一组端口264,pod 110的机架的托架连接到所述一组端口262,所述一组端口264将pod110连接到主干交换机150。照此,一对交换机250、260的使用向pod 110提供冗余量。例如,如果交换机250、260中的任一个故障,那么pod 110中的托架仍然可以通过另一个交换机250、260与数据中心100的其余部分(例如,其它pod的托架)维持数据通信。更进一步地,在说明性实施例中,交换机150、250、260可以被体现为双模光学交换机,其能够经由光学结构的光学信令介质来路由承载互联网协议(IP)分组的以太网协议通信和根据第二高性能链路层协议的通信(例如,英特尔的全路径架构、无线带宽、快速PCI)这两者。

应当领会,其它pod 120、130、140中的每一个(以及数据中心100的任何附加的pod)可以与图2中示出并且关于图2描述的pod 110类似地被结构化,并且具有与该pod 110类似的部件(例如,每个pod可以具有容纳如上所述的多个托架的多行机架)。附加地,虽然示出了两个pod交换机250、260,但是应当理解,在其它实施例中,每个pod 110、120、130、140可以连接到不同数量的pod交换机,从而提供甚至更多的故障转移能力。当然,在其它实施例中,pod可以不同于图1至图2中所示的成排机架配置进行布置。例如,pod可以被体现为机架的多个集合,其中机架的每个集合被径向布置,即机架与中心交换机等距。

现在参考图3-图5,数据中心100的每个说明性机架240包括竖向布置的两个细长支承柱302、304。例如,当被部署时,细长支承柱302、304可以从数据中心100的地面向上延伸。机架240还包括一对或多对水平的细长支承臂312(在图3中经由虚线椭圆标识),所述支承臂312被配置成支撑数据中心100的托架,如下面所讨论的那样。细长支承臂312的对中的一个细长支承臂312从细长支承柱302向外延伸,并且另一个细长支承臂312从细长支承柱304向外延伸。

在说明性实施例中,数据中心100的每个托架被体现为无机箱托架。也就是说,每个托架具有无机箱电路板基板,在所述无机箱电路板基板上,物理资源(例如,处理器、存储器、加速器、存储等)如下面更详细讨论的那样被安装。照此,机架240被配置成接纳无机箱托架。例如,细长支承臂312的每个对310限定了机架240的托架槽320,托架槽320被配置成接纳对应的无机箱托架。为此,每个说明性细长支承臂312包括电路板导向件330,该电路板导向件330被配置成接纳托架的无机箱电路板基板。每个电路板导向件330被固定或以其它方式被安装到对应细长支承臂312的顶侧332。例如,在说明性实施例中,每个电路板导向件330被安装在对应细长支承臂312相对于对应细长支承柱302、304的远端处。为了各图的清楚起见,可以不在每个图中引用每个电路板导向件330。

每个电路板导向件330包括限定了电路板槽380的内壁,该电路板槽380被配置为当托架400被接纳在机架240的对应托架槽320中时接纳托架400的无机箱电路板基板。为此,如图4中所示,用户(或机器人)将说明性无机箱托架400的无机箱电路板基板对准托架槽320。用户或机器人然后可以将无机箱电路板基板向前滑动到托架槽320中,使得无机箱电路板基板的每个侧边缘414被接纳在细长支承臂312对310的电路板导向件330的对应电路板槽380中,该细长支承臂312的对310限定了对应托架槽320,如图4中所示。通过使机器人可访问和机器人可操控的托架包括解聚的资源,每种类型的资源可以彼此独立地并且以它们自己的优化刷新率进行升级。更进一步地,托架被配置成与每个机架240中的电力和数据通信线缆盲配合,从而增强它们被快速移除、升级、重新安装和/或更换的能力。照此,在一些实施例中,数据中心100可以在没有人类参与的情况下在数据中心地面上操作(例如,执行工作负载、进行维护和/或升级等)。在其它实施例中,人类可以促进数据中心100中的一个或多个维护或升级操作。

应当领会,每个电路板导向件330是双侧的。也就是说,每个电路板导向件330包括内壁,该内壁在电路板导向件330的每一侧上限定电路板槽380。通过该方式,每个电路板导向件330可以在任一侧支撑无机箱电路板基板。照此,单个附加的细长支承柱可以被添加到机架240,以将机架240转变成双机架解决方案,其可以保持两倍于如图3中所示的托架槽320。说明性机架240包括细长支承臂312的七个对310,其限定了对应的七个托架槽320,每个托架槽320被配置成接纳和支撑对应托架400,如上面所讨论的那样。当然,在其它实施例中,机架240可以包括细长支承臂312的附加或更少的对310(即,附加或更少的托架槽320)。应当领会,因为托架400是无机箱的,所以托架400可以具有不同于典型服务器的总高度。照此,在一些实施例中,每个托架槽320的高度可以与典型服务器的高度相比更短(例如,与单列单元“1U”相比更短)。也就是说,细长支承臂312的每个对310之间的竖向距离可以小于标准机架单元“1U”。附加地,由于托架槽320的高度相对减小,在一些实施例中,机架240的总高度可能与传统机架外壳的高度相比更短。例如,在一些实施例中,细长支承柱302、304中的每个可以具有六英尺或者更少的长度。此外,在其它实施例中,机架240可以具有不同的尺寸。例如,在一些实施例中,细长支承臂312的每个对310之间的垂直距离可以大于标准机架直到“1U”。在这样的实施例中,托架之间增加的竖向距离允许更大的散热器附接到物理资源,并且允许(例如,在下面描述的风扇阵列370中)使用更大的风扇以用于冷却每个托架,这转而可以允许物理资源以增加的电力水平操作。进一步地,应当领会,机架240不包括任何壁或者外壳等。相反,机架240是向本地环境开放的无外壳机架。当然,在一些情况下,在其中机架240在数据中心100中形成行尾机架的那些情形中,端板可以附接到细长支承柱302、304中的一个。

在一些实施例中,各种互连可以通过细长支承柱302、304向上或者向下布线。为了促进这样的布线,每个细长支承柱302、304包括内壁,该内壁限定了内部腔室,互连可以位于该内部腔室中。通过细长支承柱302、304布线的互连可以被体现为任何类型的互连,包括但不限于向每个托架槽320提供通信连接的数据或通信互连、向每个托架槽320提供电力的电力互连和/或其它类型的互连。

在说明性实施例中,机架240包括支承平台,在该支承平台上安装对应的光学数据连接器(未示出)。每个光学数据连接器与对应的托架槽320相关联,并且被配置成当托架400被接纳在对应托架槽320中时与对应托架400的光学数据连接器配合。在一些实施例中,数据中心100中的组件(例如,托架、机架和交换机)之间的光学连接利用盲配合光学连接进行。例如,每条线缆上的门可以防止灰尘污染线缆内部的光纤。在连接到盲配合光学连接器机构的处理中,当线缆末端接近或进入连接器机构时,门被推开。随后,线缆内部的光纤可以进入连接器机构内的凝胶,并且一条线缆的光纤与连接器机构内部凝胶内的另一条线缆的光纤接触。

说明性机架240还包括耦合到机架240的交叉支承臂的风扇阵列370。风扇阵列370包括一行或多行冷却风扇372,所述一行或多行冷却风扇372在细长支承柱302、304之间的水平线中对准。在说明性实施例中,风扇阵列370包括用于机架240的每个托架槽320的一行冷却风扇372。如上面所讨论的,在说明性实施例中,每个托架400不包括任何板上冷却系统,并且照此,风扇阵列370为被接纳在机架240中的每个托架400提供冷却。在说明性实施例中,每个机架240还包括与每个托架槽320相关联的电源。每个电源被固定到细长支承臂312的对310中的一个细长支承臂312,该细长支承臂312的对310限定了对应的托架槽320。例如,机架240可以包括被耦合或者固定到从细长支承柱302延伸的每个细长支承臂312的电源。每个电源包括电力连接器,该电力连接器被配置成当托架400被接纳在对应托架槽320中时与托架400的电力连接器配合。在说明性实施例中,托架400不包括任何板上电源,并且照此,当被安装到机架240时,机架240中提供的电源向对应托架400供应电力。每个电源被配置成满足针对其相关联的托架的电力要求,该电力要求可能因托架而异。附加地,机架240中提供的电源可以彼此独立地操作。也就是说,在单个机架内,向计算托架提供电力的第一电源可以提供与向加速器托架提供电力的第二电源所供应电力水平不同的电力水平。电源可以在托架级或者机架级可控,并且可以由相关联托架上的组件本地控制或者诸如由另外的托架或者协调器远程控制。

现在参考图6,在说明性实施例中,托架400被配置成安装在数据中心100的对应机架240中,如上面所讨论的那样。在一些实施例中,每个托架400可以被优化或以其它方式配置用于执行特定任务,诸如计算任务、加速任务、数据存储任务等。例如,托架400可以体现为如下面关于图8-图9所讨论的计算托架800、如下面关于图10-图11所讨论的加速器托架1000、如下面关于图12-图13所讨论的存储托架1200,或者体现为被优化或以其它方式配置为执行其它专门任务的托架,诸如存储器托架1400,如下面关于图14所讨论的那样。

如上面讨论的,说明性托架400包括无机箱电路板基板602,该无机箱电路板基板602支撑安装在其上的各种物理资源(例如,电气组件)。应当领会,电路板基板602是“无机箱的”,因为托架400不包括壳体或者外壳。相反,无机箱电路板基板602对本地环境开放。无机箱电路板基板602可以由能够支撑安装在其上的各种电气组件的任何材料形成。例如,在说明性实施例中,无机箱电路板基板602由FR-4玻璃增强环氧层压材料形成。当然,在其它实施例中,可以使用其它材料来形成无机箱电路板基板602。

如下面更详细讨论的,无机箱电路板基板602包括改进安装在无机箱电路板基板602上的各种电气组件的热冷却特性的多个特征。如所讨论的那样,无机箱电路板基板602不包括壳体或者外壳,这可以通过减少可能抑制空气流动的那些结构来改进托架400的电气组件上方的气流。例如,因为无机箱电路板基板602没有定位在单独的壳体或外壳中,所以没有附接到无机箱电路板基板602的竖向布置的背平面(例如,机箱的背板),所述背平面可能抑制空气跨电气组件流动。附加地,无机箱电路板基板602具有一种几何形状,该几何形状被配置成减小跨安装到无机箱电路板基板602的电气组件的气流路径的长度。例如,说明性的无机箱电路板基板602具有与无机箱电路板基板602的深度606相比更大的宽度604。例如,在一个特定实施例中,与具有大约17英寸宽度和大约39英寸深度的典型服务器相比,无机箱电路板基板602具有大约21英寸宽度和大约9英寸深度。照此,从无机箱电路板基板602的前边缘610朝向后边缘612延伸的气流路径608相对于典型服务器具有更短距离,这可以改进托架400的热冷却特性。更进一步地,虽然未在图6中图示,但是安装到无机箱电路板基板602的各种物理资源被安装在对应位置中,使得没有两个实质上发热的电气组件彼此遮蔽,如下面更详细讨论的那样。也就是说,没有在操作期间产生可观热量(即,大于足以不利地影响对另外的电气组件的冷却的标称热量)的两个电气组件被沿着气流路径608的方向(即,沿着从无机箱电路板基板602的前边缘610朝向后边缘612延伸的方向)彼此线性直排地安装到无机箱电路板基板602。

如上面讨论的,说明性托架400包括被安装到无机箱电路板基板602的顶侧650的一个或多个物理资源620。虽然在图6中示出了两个物理资源620,但是应当领会,在其它实施例中,托架400可以包括一个、两个或更多个物理资源620。物理资源620可以体现为能够进行如下操作的任何类型的处理器、控制器或者其它计算电路:执行各种任务(诸如计算功能)和/或取决于例如托架400的类型或者所意图的功能性来控制托架400的功能。例如,如下面更详细讨论的,物理资源620可以:在其中托架400体现为计算托架的实施例中,体现为高性能处理器;在其中托架400体现为加速器托架的实施例中,体现为加速器协处理器或电路;在其中托架400体现为存储托架的实施例中,体现为存储控制器;或者在其中托架400体现为存储器托架的实施例中,体现为存储器设备的集合。

托架400还包括被安装到无机箱电路板基板602的顶侧650的一个或多个附加物理资源630。在说明性实施例中,附加物理资源包括网络接口控制器(NIC),如下面更详细讨论的。当然,在其它实施例中,取决于托架400的类型和功能性,物理资源630可以包括附加的或其它电子组件、电路和/或设备。

物理资源620经由输入/输出(I/O)子系统622通信耦合到物理资源630。I/O子系统622可以体现为电路和/或组件,以促进利用物理资源620、物理资源630和/或托架400的其它组件进行的输入/输出操作。例如,I/O子系统622可以体现为(或者以其它方式包括)存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件设备、通信链路(例如,点对点链路、总线链路、引线、线缆、波导、光导、印制电路板迹线等),和/或其它组件和子系统,以促进输入/输出操作。在说明性实施例中,I/O子系统622体现为(或者以其它方式包括)双倍数据速率4 (DDR4)数据总线或者DDR5数据总线。

在一些实施例中,托架400还可以包括资源到资源互连624。资源到资源互连624可以体现为能够促进资源到资源通信的任何类型的通信互连。在说明性实施例中,资源到资源互连624体现为高速点对点互连(例如,与I/O子系统622相比更快)。例如,资源到资源互连624可以体现为快速路径互连(QPI)、超路径互连(UPI)或者专用于资源到资源通信的其它高速点对点互连。

托架400还包括电力连接器640,电力连接器640被配置成当托架400被安装在对应机架240中时,与机架240的对应电力连接器配合。托架400经由电力连接器640从机架240的电源接收电力,以向托架400的各种电气组件供应电力。也就是说,托架400不包括任何本地电源(即,板上电源)来向托架400的电气组件提供电力。对本地或板上电源的排除促进无机箱电路板基板602的总占地面积的减少,这可以增加如上面所讨论的被安装在无机箱电路板基板602上的各种电气组件的热冷却特性。在一些实施例中,电压调节器被放置在无机箱电路板基板602的底侧750(参见图7)上、与处理器820(参见图8)直接相对,并且电力被通过延伸穿过电路板基板602的通孔从电压调节器路由到处理器820。相对于典型的印制电路板,这样的配置提供了增加的热预算、附加的电流和/或电压、以及更好的电压控制,在典型的印制电路板中,处理器电力被部分地通过印制电路迹线从电压调节器传递。

在一些实施例中,托架400还可以包括安装部件642,该安装部件642被配置成与机器人的安装臂或其它结构配合,以促进由机器人将托架600放置在机架240中。安装部件642可以体现为允许机器人抓住托架400而不损坏无机箱电路板基板602或者安装到其上的电气组件的任何类型的物理结构。例如,在一些实施例中,安装部件642可以体现为附接到无机箱电路板基板602的非导电垫。在其它实施例中,安装部件可以体现为附接到无机箱电路板基板602的支架、支柱或者其它类似结构。安装部件642的特定数量、形状、大小和/或构成可以取决于被配置成管理托架400的机器人的设计。

现在参考图7,除了安装在无机箱电路板基板602的顶侧650上的物理资源630之外,托架400还包括安装到无机箱电路板基板602的底侧750的一个或多个存储器设备720。也就是说,无机箱电路板基板602体现为双侧电路板。物理资源620被经由I/O子系统622通信耦合到存储器设备720。例如,物理资源620和存储器设备720可以通过延伸穿过无机箱电路板基板602的一个或多个通孔而通信耦合。在一些实施例中,每个物理资源620可以通信耦合到一个或多个存储器设备720的不同集合。可替换地,在其它实施例中,每个物理资源620可以通信耦合到每个存储器设备720。

存储器设备720可以体现为:能够在操作托架400期间存储用于物理资源620的数据的任何类型的存储器设备,诸如任何类型的易失性(例如,动态随机存取存储器(DRAM)等)或非易失性存储器。易失性存储器可以是需要电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可用在存储器模块中的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在特定实施例中,存储器组件的DRAM可以符合由JEDEC颁布的标准,诸如用于DDR SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F、用于DDR4 SDRAM的JESD79-4A、用于低功率DDR (LPDDR)的JESD209、用于LPDDR2的JESD209-2、用于LPDDR3的JESD209-3以及用于LPDDR4的JESD209-4。这样的标准(和类似标准)可以被称为基于DDR的标准,并且实现这类标准的存储设备的通信接口可以被称为基于DDR的接口。

在一个实施例中,存储器设备是块可寻址存储器设备,诸如基于NAND或NOR技术的那些存储器设备。存储器设备还可以包括下一代非易失性设备,诸如英特尔3D XPointTM存储器或者其它字节可寻址就地写入非易失性存储器设备。在一个实施例中,存储器设备可以是或者可以包括:使用硫属化合物玻璃的存储器设备,多阈值级NAND闪速存储器,NOR闪速存储器,单级或多级相变存储器(PCM),电阻性存储器,纳米线存储器,铁电晶体管随机存取存储器(FeTRAM),反铁电存储器,结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器,包括金属氧化物基底、氧空位基底的电阻性存储器,以及导电桥随机存取存储器(CB-RAM),或者自旋转移矩(STT)-MRAM,基于自旋电子磁结存储器的设备、基于磁隧道结(MTJ)的设备,基于DW(畴壁)和SOT(自旋轨道转移)的设备,基于晶闸管的存储器设备,或者上述的任何组合,或者其它存储器。存储器设备可以指代管芯本身和/或封装的存储器产品。在一些实施例中,存储器设备可以包括无晶体管的可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉处,并且是可单独寻址的,并且其中位存储基于体电阻的改变。

现在参考图8,在一些实施例中,托架400可以体现为计算托架800。计算托架800被优化或者以其它方式配置为执行计算任务。当然,如上面所讨论的,计算托架800可以依靠诸如加速托架和/或存储托架之类的其它托架来执行这样的计算任务。计算托架800包括类似于托架400的物理资源的各种物理资源(例如,电气组件),所述各种物理资源已经在图8中使用相同的参考标号来标识。上面关于图6和图7提供的对这类组件的描述适用于计算托架800的对应组件,并且为了计算托架800的描述清楚起见而不在本文中重复。

在说明性计算托架800中,物理资源620体现为处理器820。尽管图8中仅示出了两个处理器820,但是应当领会,在其它实施例中,计算托架800可以包括附加的处理器820。说明性地,处理器820体现为高性能处理器820,并且可以被配置成以相对高的额定功率操作。尽管处理器820在与典型处理器(其在大约155W-230W下操作)相比更高的额定功率下操作生成附加的热量,但是上面讨论的无机箱电路板基板602的增强的热冷却特性促进更高功率操作。例如,在说明性实施例中,处理器820被配置成在至少250W的额定功率下操作。在一些实施例中,处理器820可以被配置成在至少350W的额定功率下操作。

在一些实施例中,计算托架800还可以包括处理器到处理器互连842。类似于上面讨论的托架400的资源到资源互连624,处理器到处理器互连842可以体现为能够促进处理器到处理器互连842通信的任何类型的通信互连。在说明性实施例中,处理器到处理器互连842体现为高速点对点互连(例如,与I/O子系统622相比更快)。例如,处理器到处理器互连842可以体现为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器到处理器通信的其它高速点对点互连。

计算托架800还包括通信电路830。说明性通信电路830包括网络接口控制器(NIC)832,其也可以被称为主机结构接口(HFI)。NIC 832可以体现为或者以其它方式包括:可以由计算托架800用来与另外的计算设备(例如,与其它托架400)连接的任何类型的集成电路、分立电路、控制器芯片、芯片组、插件板、子卡、网络接口卡或者其它设备。在一些实施例中,NIC 832可以体现为包括一个或多个处理器的片上系统(SoC)的一部分,或者被包括在也包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 832可以包括本地处理器(未示出)和/或本地存储器(未示出),这二者均在NIC 832的本地。在这样的实施例中,NIC832的本地处理器能够执行处理器820的功能中的一个或多个。附加地,或可替换地,在这样的实施例中,NIC 832的本地存储器可以在板级、插座级、芯片级和/或其它级集成到计算托架的一个或多个组件中。

通信电路830通信耦合到光学数据连接器834。光学数据连接器834被配置成当计算托架800安装在机架240中时与机架240的对应光学数据连接器配合。说明性地,光学数据连接器834包括从光学数据连接器834的配合表面引导至光学收发器836的多个光纤。光学收发器836被配置成将来自机架侧光学数据连接器的传入光信号转换成电信号,并且将电信号转换成传出光信号去往机架侧光学数据连接器。尽管在说明性实施例中示出为形成光学数据连接器834的一部分,但是在其它实施例中,光学收发器836可以形成通信电路830的一部分。

在一些实施例中,计算托架800还可以包括扩展连接器840。在这样的实施例中,扩展连接器840被配置成与扩展的无机箱电路板基板的对应连接器配合,以向计算托架800提供附加的物理资源。附加的物理资源可以例如在计算托架800的操作期间由处理器820使用。扩展的无机箱电路板基板可以基本上类似于上面讨论的无机箱电路板基板602,并且可以包括安装到其上的各种电气组件。安装到扩展的无机箱电路板基板的特定电气组件可能取决于扩展的无机箱电路板基板的所意图功能性。例如,扩展的无机箱电路板基板可以提供附加的计算资源、存储器资源和/或存储资源。照此,扩展的无机箱电路板基板的附加物理资源可以包括但不限于处理器、存储器设备、存储设备和/或加速器电路,其包括例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全协处理器、图形处理单元(GPU)、机器学习电路或者其它专门化处理器、控制器、设备和/或电路。

现在参考图9,示出了计算托架800的说明性实施例。如所示出的,处理器820、通信电路830和光学数据连接器834被安装到无机箱电路板基板602的顶侧650。任何合适的附接或者安装技术可以用于将计算托架800的物理资源安装到无机箱电路板基板602。例如,各种物理资源可以安装在对应插座(例如,处理器插座)、保持器或者支架中。在一些情况下,电气组件中的一些可以经由焊接或类似技术直接安装到无机箱电路板基板602。

如上面所讨论的,单独的处理器820和通信电路830被安装到无机箱电路板基板602的顶侧650,使得没有两个发热的电气组件彼此遮蔽。在说明性实施例中,处理器820和通信电路830被安装在无机箱电路板基板602的顶侧650上的对应位置中,使得这些物理资源中没有两个物理资源沿着气流路径608的方向与其它物理资源线性直排。应当领会,尽管光学数据连接器834与通信电路830直排,但是光学数据连接器834在操作期间不产生热量或者产生标称热量。

计算托架800的存储器设备720被安装到无机箱电路板基板602的底侧750,如上面关于托架400所讨论的那样。尽管被安装到底侧750,但是存储器设备720经由I/O子系统622通信耦合到位于顶侧650上的处理器820。因为无机箱电路板基板602体现为双侧电路板,所以存储器设备720和处理器820可以通过延伸穿过无机箱电路板基板602的一个或多个通孔、连接器或者其它机构而通信耦合。当然,在一些实施例中,每个处理器820可以通信耦合到一个或多个存储器设备720的不同集合。可替换地,在其它实施例中,每个处理器820可以通信耦合到每个存储器设备720。在一些实施例中,存储器设备720可以安装到无机箱电路板基板602的底侧上的一个或多个存储器夹层,并且可以通过球栅阵列与对应处理器820互连。

处理器820中的每个包括固定到其上的散热器850。由于将存储器设备720安装到无机箱电路板基板602的底侧750(以及对应机架240中的托架400的竖向间距),无机箱电路板基板602的顶侧650包括附加的“自由”区域或者空间,其促进使用相对于典型服务器中使用的传统散热器而言具有更大大小的散热器850。附加地,由于无机箱电路板基板602的改进的热冷却特性,没有一个处理器散热器850包括附接于其上的冷却风扇。也就是说,每个散热器850体现为无风扇散热器。在一些实施例中,安装在处理器820顶上的散热器850由于其大小增加而可能在气流路径608的方向上与附接于通信电路830的散热器重叠,如由图9说明性地暗示的那样。

现在参考图10,在一些实施例中,托架400可以体现为加速器托架1000。加速器托架1000被配置成执行专门化的计算任务,诸如机器学习、加密、散列或者其它计算密集型任务。例如,在一些实施例中,计算托架800可以在操作期间将任务卸载到加速器托架1000。加速器托架1000包括类似于托架400和/或计算托架800的组件的各种组件,所述各种组件已经在图10中使用相同的参考标号来标识。上面关于图6、图7和图8提供的对这类组件的描述适用于加速器托架1000的对应组件,并且为了加速器托架1000的描述清楚起见而不在本文中重复。

在说明性加速器托架1000中,物理资源620体现为加速器电路1020。尽管在图10中仅示出了两个加速器电路1020,但是应当领会,在其它实施例中,加速器托架1000可以包括附加的加速器电路1020。例如,如图11中所示,在一些实施例中,加速器托架1000可以包括四个加速器电路1020。加速器电路1020可以体现为任何类型的处理器、协处理器、计算电路或者能够执行计算或处理操作的其它设备。例如,加速器电路1020可以体现为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全协处理器、图形处理单元(GPU)、神经形态处理器单元、量子计算机、机器学习电路或者其它专门化处理器、控制器、设备和/或电路。

在一些实施例中,加速器托架1000还可以包括加速器到加速器互连1042。类似于上面讨论的托架600的资源到资源互连624,加速器到加速器互连1042可以体现为能够促进加速器到加速器通信的任何类型的通信互连。在说明性实施例中,加速器到加速器互连1042体现为高速点对点互连(例如,与I/O子系统622相比更快)。例如,加速器到加速器互连1042可以体现为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器到处理器通信的其它高速点对点互连。在一些实施例中,加速器电路1020可以与通过I/O子系统622连接到NIC 832和存储器720的初级加速器电路1020、以及通过初级加速器电路1020连接到NIC832和存储器720的次级加速器电路1020菊花链式连接。

现在参考图11,示出了加速器托架1000的说明性实施例。如上面所讨论的,加速器电路1020、通信电路830和光学数据连接器834被安装到无机箱电路板基板602的顶侧650。此外,单独的加速器电路1020和通信电路830被安装到无机箱电路板基板602的顶侧650,使得没有两个发热的电气组件彼此遮蔽,如上面所讨论的那样。加速器托架1000的存储器设备720被安装到无机箱电路板基板602的底侧750,如上面关于托架600所讨论的那样。尽管被安装到底侧750,但是存储器设备720经由I/O子系统622(例如,通过通孔)通信耦合到位于顶侧650上的加速器电路1020。进一步地,加速器电路1020中的每个可以包括与服务器中使用的传统散热器相比更大的散热器1070。如上面参考散热器870所讨论的,散热器1070可以是与传统散热器相比更大的,这是因为由存储器资源720提供的“自由”区域位于无机箱电路板基板602的底侧750上,而不是顶侧650上。

现在参考图12,在一些实施例中,托架400可以体现为存储托架1200。存储托架1200被配置成将数据存储在存储托架1200本地的数据存储1250中。例如,在操作期间,计算托架800或者加速器托架1000可以存储数据并且从存储托架1200的数据存储1250中检索数据。存储托架1200包括类似于托架400和/或计算托架800的组件的各种组件,所述各种组件已经在图12中使用相同的参考标号来标识。上面关于图6、图7和图8提供的对这类组件的描述适用于存储托架1200的对应组件,并且为了存储托架1200的描述清楚起见而不在本文中重复。

在说明性存储托架1200中,物理资源620体现为存储控制器1220。尽管图12中仅示出了两个存储控制器1220,但是应当领会,在其它实施例中,存储托架1200可以包括附加的存储控制器1220。存储控制器1220可以体现为能够进行如下操作的任何类型的处理器、控制器或者控制电路:基于经由通信电路830接收的请求来控制将数据存储到数据存储1250中和在数据存储1250中检索数据。在说明性实施例中,存储控制器1220体现为相对低功率的处理器或者控制器。例如,在一些实施例中,存储控制器1220可以被配置成在大约75W的额定功率下操作。

在一些实施例中,存储托架1200还可以包括控制器到控制器互连1242。类似于上面讨论的托架400的资源到资源互连624,控制器到控制器互连1242可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242体现为高速点对点互连(例如,与I/O子系统622相比更快)。例如,控制器到控制器互连1242可以体现为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器到处理器通信的其它高速点对点互连。

现在参考图13,示出了存储托架1200的说明性实施例。在说明性实施例中,数据存储1250体现为或者以其它方式包括存储笼1252,所述存储笼1252被配置成容纳一个或多个固态驱动器(SSD)1254。为此,存储笼1252包括多个安装槽1256,所述安装槽1256中的每个被配置成收容对应固态驱动器1254。安装槽1256中的每个包括多个驱动导向件1258,驱动导向件1258协作以限定对应安装槽1256的访问开口1260。存储笼1252被固定到无机箱电路板基板602,使得访问开口背离无机箱电路板基板602(即,朝向无机箱电路板基板602的前面)。照此,当存储托架1200安装在对应机架204中时,固态驱动器1254是可访问的。例如,当存储托架1200保持被安装在对应机架240中时,固态驱动器1254可以被从机架240中换出(例如,经由机器人)。

存储笼1252说明性地包括十六个安装槽1256,并且能够安装和存储十六个固态驱动器1254。当然,在其它实施例中,存储笼1252可以被配置成存储附加的或者更少的固态驱动器1254。附加地,在说明性实施例中,固态驱动器被竖向地安装在存储笼1252中,但是在其它实施例中可以以不同取向被安装在存储笼1252中。每个固态驱动器1254可以体现为能够存储长期数据的任何类型的数据存储设备。为此,固态驱动器1254可以包括上面讨论的易失性和非易失性存储器设备。

如图13中所示,存储控制器1220、通信电路830和光学数据连接器834被说明性地安装到无机箱电路板基板602的顶侧650。此外,如上面所讨论的,任何合适的附接或安装技术可以用于将存储托架1200的电气组件安装到无机箱电路板基板602,包括例如插座(例如,处理器插座)、保持器、支架、焊接连接和/或其它安装或者固定技术。

如上面所讨论的,单独的存储控制器1220和通信电路830被安装到无机箱电路板基板602的顶侧650,使得没有两个发热的电气组件彼此遮蔽。例如,存储控制器1220和通信电路830被安装在无机箱电路板基板602的顶侧650上的对应位置中,使得那些电子组件中没有两个组件沿着气流路径608的方向彼此线性直排。

存储托架1200的存储器设备720被安装到无机箱电路板基板602的底侧750,如上面关于托架400所讨论的那样。尽管被安装到底侧750,但是存储器设备720经由I/O子系统622通信耦合到位于顶侧650上的存储控制器1220。此外,因为无机箱电路板基板602体现为双侧电路板,所以存储器设备720和存储控制器1220可以通过延伸穿过无机箱电路板基板602的一个或多个通孔、连接器或者其它机构来通信耦合。存储控制器1220中的每个包括固定到其上的散热器1270。如上面所讨论的,由于存储托架1200的无机箱电路板基板602的改进的热冷却特性,没有一个散热器1270包括附接于其上的冷却风扇。也就是说,散热器1270中的每个都体现为无风扇散热器。

现在参考图14,在一些实施例中,托架400可以体现为存储器托架1400。存储托架1400被优化或以其它方式配置为:为其它托架400(例如,计算托架800、加速器托架1000等)提供对存储器托架1200本地的存储器池(例如,在存储器设备720的两个或更多个集合1430、1432中)的访问。例如,在操作期间,计算托架800或加速器托架1000可以使用映射到存储器集合1430、1432中的物理地址的逻辑地址空间,来远程地向存储器托架1200的一个或多个存储器集合1430、1432写入和/或从其读取。存储器托架1400包括类似于托架400和/或计算托架800的组件的各种组件,所述各种组件已经在图14中使用相同的参考标号来标识。上面关于图6、图7和图8提供的对这类组件的描述适用于存储器托架1400的对应部件,并且为了存储器托架1400的描述清楚起见而不在本文中重复。

在说明性存储器托架1400中,物理资源620体现为存储器控制器1420。尽管在图14中仅示出了两个存储器控制器1420,但是应当领会,在其它实施例中,存储器托架1400可以包括附加的存储器控制器1420。存储器控制器1420可以体现为能够进行如下操作的任何类型的处理器、控制器或者控制电路:基于经由通信电路830接收的请求来控制将数据写入到存储器集合1430、1432中和从其中读取数据。在说明性实施例中,每个存储器控制器1420连接到对应的存储器集合1430、1432,来向对应存储器集合1430、1432内的存储器设备720写入并且从其读取,并且实施与已经向存储器托架1400发送请求的托架400相关联的任何许可(例如,读取、写入等),以执行存储器访问操作(例如,读取或者写入)。

在一些实施例中,存储器托架1400还可以包括控制器到控制器互连1442。类似于上面讨论的托架400的资源到资源互连624,控制器到控制器互连1442可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1442体现为高速点对点互连(例如,与I/O子系统622相比更快)。例如,控制器到控制器互连1442可以体现为快速路径互连(QPI)、超路径互连(UPI)或者专用于处理器到处理器通信的其它高速点对点互连。照此,在一些实施例中,存储器控制器1420可以通过控制器到控制器互连1442来访问与另一个存储器控制器1420相关联的存储器集合1432内的存储器。在一些实施例中,可缩放存储器控制器由存储器托架(例如,存储器托架1400)上的多个较小的存储器控制器(本文中称为“小芯片”)构成。小芯片可以互连(例如,使用EMIB(嵌入式多管芯互连桥))。组合的小芯片存储器控制器可以扩展到相对大量的存储器控制器和I/O端口(例如,多达16个存储器通道)。在一些实施例中,存储器控制器1420可以实现存储器交织(例如,一个存储器地址被映射到存储器集合1430,下一个存储器地址被映射到存储器集合1432,并且第三个地址被映射到存储器集合1430等)。交织可以在存储器控制器1420内被管理,或者从跨网络链路到存储器集合1430、1432的(例如,计算托架800的)CPU插座来管理,并且与从相同存储器设备访问连续存储器地址相比,可以改进与执行存储器访问操作相关联的延迟。

进一步地,在一些实施例中,使用波导连接器1480,存储器托架1400可以通过波导连接到(例如,在相同的机架240或者相邻的机架240中的)一个或多个其它托架400。在说明性实施例中,波导是64毫米波导,其提供16个Rx(即,接收)通道和16个Tx(即,发射)通道。在说明性实施例中,每个通道或者是16 GHz或者是32 GHz。在其它实施例中,频率可以是不同的。使用波导可以向另一个托架(例如,与存储器托架1400在相同机架240或者在相邻机架240中的托架400)提供对存储器池(例如,存储器集合1430、1432)的高吞吐量访问,而不会添加光学数据连接器834上的负载。

现在参考图15,可以根据数据中心100实现用于执行一个或多个工作负载(例如,应用)的系统。在说明性实施例中,系统1510包括协调器服务器1520,其可以被体现为包括执行管理软件(例如,云操作环境,诸如OpenStack)的计算设备(例如,计算托架800上的处理器820)的受管理节点,所述计算设备通信地耦合到多个托架400,包括大量计算托架1530(例如,每个都类似于计算托架800)、存储器托架1540(例如,每个都类似于存储器托架1400)、加速器托架1550(例如,每个都类似于加速器托架1000)以及存储托架1560(例如,每个类似于存储托架1200)。托架1530、1540、1550、1560中的一个或多个可以诸如由协调器服务器1520分组成受管理节点1570,以共同执行工作负载(例如,在虚拟机中或者在容器中执行的应用1532)。受管理节点1570可以体现为来自相同或者不同托架400的物理资源620的组装,所述物理资源620诸如处理器820、存储器资源720、加速器电路1020或者数据存储1250。进一步地,受管理节点可以在工作负载要被分派给受管理节点的时候或者在任何其它时间处由协调器服务器1520建立、限定或者“起转”,并且不管当前是否有任何工作负载被分派给受管理节点,都可以存在。在说明性实施例中,协调器服务器1520可以根据服务质量(QoS)目标(例如,与吞吐量、延迟、每秒指令数等相关联的性能目标),来选择性地从托架400分配和/或解除分配物理资源620,和/或从受管理节点1570添加或者移除一个或多个托架400,所述服务质量(QoS)目标与针对工作负载(例如,应用1532)的服务水平协议相关联。在这样做时,协调器服务器1520可以接收指示受管理节点1570的每个托架400中的性能状况(例如,吞吐量、延迟、每秒指令等)的遥测数据,并且将遥测数据与服务质量目标进行比较,以确定服务质量目标是否得到满足。协调器服务器1520可以附加地确定是否可以从受管理节点1570解除分配一个或多个物理资源而同时仍然满足QoS目标,从而释放那些物理资源以用于在另外的受管理节点中使用(例如,来执行不同的工作负载)。可替换地,如果当前没有满足QoS目标,则协调器服务器1520可以确定在工作负载正在执行时动态分配附加的物理资源,以协助工作负载(例如,应用1532)的执行。类似地,如果协调器服务器1520确定解除分配物理资源将造成仍然满足QoS目标,则协调器服务器1520可以确定从受管理节点动态地解除分配物理资源。

附加地,在一些实施例中,协调器服务器1520可以诸如通过如下操作来标识工作负载(例如,应用1532)的资源利用的趋势:标识工作负载(例如,应用1532)的执行阶段(例如,在其中执行不同操作的时间段,每个操作具有不同的资源利用特性),并且预先标识数据中心100中的可用资源并且将它们分配给受管理节点1570(例如,在相关联的阶段开始的预定时间段内)。在一些实施例中,协调器服务器1520可以基于各种延迟和分布方案对性能进行建模,以在数据中心100中的计算托架和其它资源(例如,加速器托架、存储器托架、存储托架)之间放置工作负载。例如,协调器服务器1520可以利用计及如下各项的模型:托架400上的资源的性能(例如,FPGA性能、存储器访问延迟等),和通过网络到资源(例如,FPGA)的路径的性能(例如,拥塞、延迟、带宽)。照此,基于与数据中心100中可用的每个潜在资源相关联的总延迟(例如,除了与通过执行工作负载的计算托架和资源位于其上的托架400之间网络的路径相关联的延迟之外,还有与资源本身的性能相关联的延迟),协调器服务器1520可以确定哪个(哪些)资源应当与哪些工作负载一起使用。

在一些实施例中,协调器服务器1520可以使用从托架400报告的遥测数据(例如,温度、风扇速度等)来生成数据中心100中的热量生成图,并且根据该热量生成图以及与不同工作负载相关联的预测热量生成来将资源分配给受管理节点,以维持数据中心100中的目标温度和热量分布。附加地,或者可替换地,在一些实施例中,协调器服务器1520可以将接收到的遥测数据组织成分层模型,该分层模型指示受管理节点之间的关系(例如,空间关系,诸如数据中心100内受管理节点的资源的物理位置;和/或功能关系,诸如受管理节点为其提供服务的客户对受管理节点的分组、典型地由受管理节点执行的功能的类型、典型地在彼此之间共享或者交换工作负载的受管理节点等)。基于受管理节点中的物理位置和资源的差异,给定的工作负载可能跨不同受管理节点的资源而表现出不同的资源利用(例如,引起不同的内部温度,使用不同百分比的处理器或者存储器容量)。协调器服务器1520可以基于存储在分层模型中的遥测数据来确定差异,并且如果工作负载被从一个受管理节点重新分派到另一个受管理节点,则将该差异作为因素计入到工作负载的未来资源利用预测中,从而准确地平衡数据中心100中的资源利用。

为了减少协调器服务器1520上的计算负载和网络上的数据传输负载,在一些实施例中,协调器服务器1520可以向托架400发送自测信息,以使得每个托架400能够本地(例如,在托架400上)确定托架400生成的遥测数据是否满足一个或多个条件(例如,满足预限定阈值的可用容量、满足预限定阈值的温度等)。每个托架400然后可以向协调器服务器1520报告回简化的结果(例如,是或否),协调器服务器1520可以利用该简化的结果来确定资源到受管理节点的分配。

现在参考图16,用于提供加速器设备发现服务的系统1600包括彼此通信并且与协调器服务器1616通信的多个加速器托架1610、1612和计算托架1614。每个加速器托架1610、1612类似于图10的加速器托架1000。虽然为了清楚起见而示出了两个加速器托架1610、1612,但是应当理解,系统1600可以具有不同数量的加速器托架(例如,数十个、数百个或数千个),并且可以包括其它类型的托架(存储器、存储等)。在说明性实施例中,加速器托架1610包括两个加速器设备1620、1622,所述两个加速器设备1620、1622类似于图10的加速器托架1000的加速器电路1020。在说明性实施例中,每个加速器设备1620、1622是FPGA。FPGA1620的门被划分成两个槽1630、1632(例如,每个槽是FPGA 1620中存在的门的子集)。每个槽1630、1632实现对应内核1660、1662,其中的每个可以体现为门的集合,所述门的集合被配置成执行功能的集合(例如,从计算托架(诸如,计算托架1614)卸载的操作,以增加代表客户(本文中也称为租户)执行工作负载(例如,由处理器1680执行的应用1682)的速度)。加速器设备1622包括槽1634、1636,它们类似于上面描述的槽1630、1632。进一步地,每个槽1634、1636包括对应内核1664、1666。附加地,加速器托架1610包括发现数据逻辑单元1640,发现数据逻辑单元1640可以体现为被配置成提供如下各项的任何设备或电路(例如,处理器、专用集成电路(ASIC)等):指示托架1610上的可用加速器设备(例如,FPGA 1620、1622)的数据,诸如每个加速器设备1620、1622的唯一标识符;指示每个加速器设备1620、1622内的槽1630、1632、1634、1636和内核1660、1662、1664、1666的数据(例如,每个内核1660、1662、1664、1666被配置成执行的操作的标识符);指示与每个加速器设备1620、1622相关联的服务质量度量的数据(例如,可能影响延迟等的当前延迟、当前带宽、加速器设备上的当前负载);可用于与加速器设备1620、1622连接的数据(例如,要包括在分组报头中的地址信息,以将数据路由到托架1610上的特定加速器设备1620、1622,和/或路由到加速器设备1620、1622的特定槽1630、1632、1634、1636)。在说明性实施例中,在操作中,发现数据逻辑单元1640连续地向协调器服务器1616提供如上所述的更新数据。

附加地,加速器托架1612包括加速器设备1624和1626。在说明性实施例中,加速器设备1624是图形处理单元(GPU),其可以体现为被配置成执行图形相关的计算(例如,矩阵乘法、向量运算等)的任何设备或电路(例如,可编程逻辑芯片、处理器等),并且在说明性实施例中,加速器设备1626是视觉处理单元(VPU),其可以体现为被配置成执行与机器视觉、机器学习和人工智能相关的操作的任何设备或电路(例如,可编程逻辑芯片、处理器等)。在说明性实施例中,每个加速器设备1624、1626包括对应内核1668、1670,并且加速器托架1612附加地包括发现数据逻辑单元1642,发现数据逻辑单元1642类似于上面描述的发现数据逻辑单元1640。

在说明性实施例中,协调器服务器1616执行发现服务1618。在说明性实施例中,发现服务1618是操作的集合,其中协调器服务器1616从系统1600中的其它设备、诸如从计算托架1614的加速器设备选择逻辑单元1650(例如,诸如处理器或其它可配置电路的任何设备或电路,其被配置成确定系统1600中的可用加速器设备并且与它们中的一个或多个建立通信,以从对应应用1682、1684卸载操作)接收查询,请求指示系统1600中对特定租户(例如,正在由计算托架1614的一个或多个处理器1680为其执行应用1682、1684的客户)可用的加速器设备的可用性数据。发现服务1618利用所请求的可用性数据(例如,基于从发现数据逻辑单元1640接收的数据)来响应查询。发现服务1618可以在不同的租户间划分系统1600中的加速器设备1620、1622、1624、1626(例如,依照系统1600的运营商和对应租户之间的服务水平协议(SLA)),使得如果发现服务1618代表应用1682(例如,与应用1682相关联的租户)接收到请求,则发现服务1618可以提供将加速器设备的一个集合(例如,加速器设备1620、1626)指示为可用的可用性数据,并且如果发现服务1618代表应用1684(例如,与应用1684相关联的租户)接收到类似的请求,则发现服务1618可以提供指示加速器设备的不同集合(例如,加速器设备1622、1624)可用的可用性数据。换句话说,并非所有发现的加速器设备都一定可用于由特定计算设备使用(例如,可用性可能受到发现服务配置的限制,该发现服务配置可以由协调器服务器管理员或者其它实体限定)。通过提供如下基于查询的服务(例如,发现服务1618):该服务向请求设备(例如,计算托架1614)提供指示计算托架1614可用的加速器设备的数据和可用于与加速器设备1620、1622、1624、1626通信的信息,系统1600消除了主机设备(例如,计算托架1614)配置加速器设备1620、1622、1624、1626中的任何一个上的低级设置以与它们通信的需要,并且从而降低了不利影响(例如,性能下降、硬件故障等)的风险,否则该风险可能由允许租户为系统1600中的组件(例如,加速器设备1620、1622、1624、1626)配置低级连接设置而产生。

现在参考图17,在操作中,计算托架1614可以执行利用发现服务1618来选择图16的系统1600中的一个或多个加速器设备1620、1622、1624、1626并且与它们通信的方法。方法1700以框1702开始,其中计算托架1614确定是否利用发现服务1618。在这样做时,计算托架1614可以基于计算托架1614是否装备有加速器设备选择逻辑单元1650、应用(例如,应用1682、1684中的一个)是否已经请求将操作集合卸载到加速器设备和/或基于其它因素来做出确定。无论如何,响应于利用发现服务1618的确定,方法1700前进到框1704,其中计算托架1614从发现服务(例如,发现服务1618)获得可用性数据,该可用性数据指示可用于协助执行工作负载(例如,与应用1682、1684中的一个相关联的操作集合)的加速器设备1620、1622、1624、1626的集合。在这样做时,并且如框1706中所指示的,计算托架1614向由协调器服务器执行的发现服务(例如,由协调器服务器1616执行的发现服务1618)发送对可用性数据的请求。进一步地,并且如框1708中所指示的,计算托架1614可以发送请求,该请求包括指示与该请求相关联的租户的数据(例如,与该请求相关联的应用1682、1684的标识符)。随后,并且如框1710中所指示的,在说明性实施例中,计算托架1614从发现服务1618接收可用性数据,该可用性数据指示对于与该请求相关联的租户可用(例如,可用于由应用1682、1684中的一个使用)的加速器设备1620、1622、1624、1626的集合。在这样做时,并且如框1712中所指示的,计算托架1614可以接收对于与该请求相关联的租户可用的加速器设备1620、1622、1624、1626的标识符(例如,唯一地标识对应加速器设备1620、1622、1624、1626的数字和/或字母集合,媒体访问控制地址,序列号等)。如框1714中所指示的,计算托架1614可以接收可用加速器设备的子集(例如,可用加速器设备中的组件)的标识符。例如,并且如框1716中所指示的,计算托架1614可以接收可用于利用的FPGA(例如,加速器设备1620、1622)的一个或多个槽(例如,槽1630、1632、1634、1636)的标识符。

仍然参考图17,在接收可用性数据时,计算托架1614可以接收指示每个可用加速器设备1620、1622、1624、1626的类型的数据,如框1718中所指示的。例如,并且如框1720中所指示的,计算托架1614可以接收指示每个加速器设备1620、1622、1624、1626的架构的数据(例如,指示架构的简写描述的字符串(诸如“FPGA”、“GPU”或“VPU”),可以与架构类型对应的数字等)。如框1722中所指示的,计算托架1614还可以接收指示每个可用加速器设备1620、1622、1624、1626上存在的内核的数据(例如,指示由对应内核支持的操作的名称的字符串、内核的名称、与内核类型和内核支持的操作相对应的数字等)。在说明性实施例中,计算托架1614还接收通信数据,该通信数据可以体现为可用于使得计算托架1614能够与每个可用加速器设备1620、1622、1624、1626通信的任何数据(例如,在计算托架1614和对应加速器设备1620、1622、1624、1626之间的地址、对指示一个或多个总线的通信路径的引用、中间设备等),如框1724中所指示的那样。计算托架1614可以附加地接收服务质量数据,该服务质量数据可以体现为指示与每个可用加速器设备1620、1622、1624、1626相关联的当前服务质量参数的任何数据,如框1726中所指示的那样。例如,并且如框1728中所指示的,计算托架1614可以接收指示每个可用加速器设备1620、1622、1624、1626的延迟(例如,对于要执行所请求的操作而典型经过的时间量)的数据。作为另一个示例,并且如框1730中所指示的,计算托架1614可以接收指示每个可用加速器设备1620、1622、1624、1626的带宽(例如,每秒传送到加速器设备1620、1622、1624、1626或者从加速器设备1620、1622、1624、1626传送的字节)的数据。随后,方法1700前进到图18的框1732,其中计算托架1614根据可用性数据(例如,在框1704中获得的可用性数据)选择一个或多个目标加速器设备来协助工作负载的执行(例如,以执行与对应应用1682、1684相关联的一个或多个操作)。

现在参考图18,在选择一个或多个目标加速器设备时,计算托架1614可以为工作负载确定兼容类型的加速器设备,如框1734中所指示的。例如,并且如框1736中所指示的,计算托架1614可以读取与工作负载(例如,与应用1682、1684)相关联的元数据,该元数据指示能够执行工作负载内的操作的加速器设备类型。附加地或可替换地,计算托架1614可以读取指示能够执行工作负载内的操作的内核的元数据,如框1738中所指示的那样。使用元数据,计算托架1614可以将加速器设备1620、1622、1624、1626和内核的可用类型(例如,如来自框1718、1720、1722的可用性数据中所指示的)与元数据中所指示的加速器类型和/或内核相匹配。元数据可以是与工作负载(例如,应用1682、1684)相关联的、描述工作负载特性的任何数据,并且可以与工作负载(例如,应用1682、1684)一起被存储在存储器(例如,存储器720)中,或者从另一个源(例如,从协调器服务器1616)接收。如框1740中所指示的,计算托架1614可以根据如下各项来选择可用加速器设备1620、1622、1624、1626中的一个或多个来作为(多个)目标加速器设备:目标服务质量(例如,在与应用1682、1684相关联的服务水平协议(SLA)中指定的目标延迟、目标带宽等);以及服务质量数据(例如,来自图17的框1726的服务质量参数)。如框1742中所指示的,计算托架1614可以将工作负载(例如,与应用1682、1684相关联的、要被执行的操作集合)划分成要由多个目标加速器设备执行的多个分段(例如,操作子集)。在这样做时,计算托架1614可以根据加速器设备1620、1622、1624、1626的类型与工作负载中的操作的兼容性来划分工作负载(例如,将与工作负载相关联的操作与能够执行那些操作的加速器设备相匹配),如框1744中所指示的那样。附加地或可替换地,计算托架1614可以根据如下各项来划分工作负载:与可用加速器设备1620、1622、1624、1626相关联的服务质量数据(例如,来自图17的1726的服务质量参数);以及针对工作负载内的操作的一个或多个集合的目标服务质量,如框1746中所指示的那样。例如,计算托架1614可以确定在特定时间段内要执行对象识别操作集合,以便基于所标识的对象在总时间段(例如,在与应用1682、1684相关联的SLA中限定的延迟)内执行对应的决策操作集合。为此,计算托架1614可以选择VPU 1626来执行对象识别操作,这是因为服务质量数据指示VPU 1626以与FPGA 1620相比更低的延迟(例如,在更短的时间段内)执行那些操作,并且FPGA 1620应当执行对应的决策操作,这是因为它执行那些操作比VPU 1626更快(例如,以更低的延迟)。随后,方法1700前进到图19的框1748,其中计算托架1614利用一个或多个目标加速器设备(例如,加速器设备1620、1626)执行工作负载。

现在参考图19,在利用一个或多个目标加速器设备(例如,加速器设备1620、1626)执行工作负载时,在说明性实施例中,计算托架1614使用来自发现服务的通信数据与(多个)目标加速器设备(例如,加速器设备1620、1626)通信(例如,以将分组寻址到对应的(多个)加速器设备1620、1626),如框1750中所指示的那样。如框1752中所指示的,计算托架1614将(多个)工作负载分段发送到对应的(多个)目标加速器设备1620、1626。例如,并且如框1754中所指示的,计算托架1614发送指示要执行的操作的数据(例如,目标代码、可解释脚本、操作名称等)。进一步地,如框1756中所指示的,计算托架1614发送要在其上进行操作的数据(例如,其中要被识别的对象的图像数据等)。如框1758中所指示的,计算托架1614在工作负载的执行中获得由(多个)目标加速器设备(例如,加速器设备1620、1626)产生的结果数据(例如,输出数据)(例如,以用于由(多个)处理器1680执行进一步的操作)。在一些实施例中,计算托架1756发送和接收对数据所驻留的存储器位置(例如,存储器托架1540的存储器)的参考(例如,指针),而不是发送和接收数据本身。随后,方法1700循环回到图17的框1704,以潜在地获得更新的可用性数据。虽然以特定的次序示出,但是应当理解,参考方法1700描述的操作可以以不同的顺序和/或并行地执行(例如,计算托架1614可以连续地获得可用性数据,同时计算托架1614与一个或多个目标加速器设备(例如,加速器设备1620、1626)合作并行地执行工作负载)。

示例

下面提供了本文中公开的技术的说明性示例。技术的实施例可以包括下面描述的示例中的任何一个或多个以及任何组合。

示例1包括一种设备,其包括电路,所述电路用于:从发现服务获得可用性数据,所述可用性数据指示可用于协助工作负载的执行的加速器设备集合;根据可用性数据,选择一个或多个目标加速器设备来协助工作负载的执行;以及利用所述一个或多个目标加速器设备来执行工作负载。

示例2包括示例1的主题,并且其中获得可用性数据包括:向由协调器服务器执行的发现服务发送对于可用性数据的请求;以及从发现服务接收指示对于与所述请求相关联的租户可用的一个或多个加速器设备的可用性数据。

示例3包括示例1和示例2中的任何一个的主题,并且其中发送对可用性数据的请求包括:发送包括指示租户的数据的请求。

示例4包括示例1至示例3中的任何一个的主题,并且其中获得可用性数据包括:接收可用于协助执行工作负载的一个或多个加速器设备中的每一个的标识符。

示例5包括示例1至示例4中的任何一个的主题,并且其中获得可用性数据包括:接收指示可用于协助执行工作负载的每个加速器设备的类型的数据。

示例6包括示例1至示例5中的任何一个的主题,并且其中获得指示每个加速器设备的类型的数据包括:接收指示每个加速器设备的架构的数据。

示例7包括示例1至示例6中的任何一个的主题,并且其中获得可用性数据包括:接收指示每个加速器设备上存在的内核的数据。

示例8包括示例1至示例7中的任何一个的主题,并且其中获得可用性数据包括:接收可用于使得能够实现所述设备与每个加速器设备之间的通信的通信数据,所述加速器设备可用于协助工作负载的执行。

示例9包括示例1至示例8中的任何一个的主题,并且其中获得可用性数据包括:接收服务质量数据,所述服务质量数据指示与可用于协助执行工作负载的每个加速器设备相关联的当前服务质量参数。

示例10包括示例1至示例9中的任何一个的主题,并且其中接收服务质量数据包括:接收指示与每个加速器设备相关联的延迟或者与每个加速器设备相关联的带宽的数据中的至少一个。

示例11包括示例1至示例10中的任何一个的主题,并且其中根据可用性数据选择一个或多个目标加速器设备来协助工作负载的执行包括:为工作负载确定一个或多个兼容类型的加速器设备。

示例12包括示例1至示例11中的任何一个的主题,并且其中为工作负载确定一个或多个兼容类型的加速器设备包括:读取与工作负载相关联的元数据,所述元数据指示能够执行工作负载内的操作的加速器设备类型。

示例13包括示例1至示例12中的任何一个的主题,并且其中根据可用性数据选择一个或多个目标加速器设备来协助执行工作负载包括:读取指示能够执行工作负载内的操作的一个或多个内核的元数据。

示例14包括示例1至示例13中的任何一个的主题,并且其中根据可用性数据选择一个或多个目标加速器设备来协助执行工作负载包括:根据与可用于协助执行工作负载的每个加速器设备相关联的目标服务质量和服务质量数据,来选择加速器设备中的一个或多个作为一个或多个目标加速器设备。

示例15包括示例1至示例14中的任何一个的主题,并且其中根据可用性数据选择一个或多个目标加速器设备来协助执行工作负载包括:将工作负载划分成多个分段以由多个目标加速器设备来执行。

示例16包括一个或多个机器可读存储介质,所述一个或多个机器可读存储介质包括存储在其上的多个指令,所述多个指令响应于被执行而引起设备:从发现服务获得可用性数据,所述可用性数据指示可用于协助执行工作负载的加速器设备集合;根据可用性数据,选择一个或多个目标加速器设备来协助执行工作负载;以及利用所述一个或多个目标加速器设备来执行工作负载。

示例17包括示例16的主题,并且其中获得可用性数据包括:向由协调器服务器执行的发现服务发送对于可用性数据的请求;以及从发现服务接收指示对于与所述请求相关联的租户可用的一个或多个加速器设备的可用性数据。

示例18包括示例16和示例17中的任何一个的主题,并且其中发送对于可用性数据的请求包括发送包括指示租户的数据的请求。

示例19包括一种方法,所述方法包括:由设备并且从发现服务获得可用性数据,所述可用性数据指示可用于协助执行工作负载的加速器设备集合;由设备并且根据可用性数据选择一个或多个目标加速器设备来协助执行工作负载;以及由设备利用所述一个或多个目标加速器设备来执行工作负载。

示例20包括示例19的主题,并且其中获得可用性数据包括:向由协调器服务器执行的发现服务发送对于可用性数据的请求;以及从发现服务接收指示对于与所述请求相关联的租户可用的一个或多个加速器设备的可用性数据。

42页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种内嵌在墙体中的多功能家庭信息箱

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类