CN109426452A - 用于在加速器设备中提供高效内核供应的技术 - Google Patents

用于在加速器设备中提供高效内核供应的技术 Download PDF

Info

Publication number
CN109426452A
CN109426452A CN201810846889.3A CN201810846889A CN109426452A CN 109426452 A CN109426452 A CN 109426452A CN 201810846889 A CN201810846889 A CN 201810846889A CN 109426452 A CN109426452 A CN 109426452A
Authority
CN
China
Prior art keywords
accelerator
kernel
memory
bit stream
circuit
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
Application number
CN201810846889.3A
Other languages
English (en)
Inventor
E·库斯托迪奥
S·M·巴列
F·G·贝尔纳特
S·普特尔斯基
J·格雷科
H·米切尔
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.)
Intel Corp
Original Assignee
Intel Corp
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
Priority claimed from US15/859,365 external-priority patent/US11119835B2/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109426452A publication Critical patent/CN109426452A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

用于在加速器设备中提供高效供应的技术包括加速器板。加速器板包括存储器以及耦合至所述存储器的加速器设备。加速器设备用于利用第一比特流来对其自身进行配置以建立第一内核,执行所述第一内核以产生输出数据,将输出数据写入所述存储器,利用第二比特流来对其自身进行配置以建立第二内核,以及执行所述第二内核,其中,将所述存储器中的输出数据用作对第二内核的输入数据。还描述并要求保护了其他实施例。

Description

用于在加速器设备中提供高效内核供应的技术
交叉引用
该申请要求于2017年8月30日提交的印度临时专利申请No.201741030632以及于2017年11月10日提交的美国临时专利申请No.62/584,401的权益。
背景技术
在一些数据中心中,一个或多个加速器设备可以是从执行通用处理(例如,利用通用处理器)的计算设备中分解出来的。在这样的系统中,计算设备可以请求工作负载的多个部分被加速以增加工作负载被执行的整体速度。例如,加速器设备可以执行一个部分,将从对该部分的执行所得出的输出发送回计算设备(例如,通过网络),并且此后,计算设备可以请求加速器设备(例如,相同的加速器设备或不同的加速器设备)对依赖先前部分的输出作为输入的工作负载的后续部分进行加速。在这样的示例中,计算设备将所接收的输出数据发送至要执行工作负载的第二部分的加速器设备,并且还可以从对该部分的执行接收另一组输出数据,以用于由加速器板(sled)使用用于工作负载的第三部分。通过网络,由数据中心中的加速器设备所产生和消费的数据的该传递可以降低工作负载可以以其他方式被执行的速度。
附图说明
在附图中作为示例而非限制示出了在本文中所描述的概念。为了示出的简单和清楚,在附图中所描述的元素不一定是按比例绘制的。在适当地考虑的情况下,附图标记可以在附图中重复以指示对应的或类似的元素。
图1是用于利用经分解的资源来执行工作负载的数据中心的至少一个实施例的简化框图;
图2是图1的数据中心的舱(pod)的至少一个实施例的简化图;
图3是可以被包括在图2的舱中的机架的至少一个实施例的透视图;
图4是图3的机架的边侧立面视图;
图5是具有安装在其中的板的图3的机架的透视图;
图6是图5的板的顶面的至少一个实施例的简化框图;
图7是图6的板的底面的至少一个实施例的简化框图;
图8是在图1的数据中心中可用的计算板的至少一个实施例的简化框图;
图9是图8的计算板的至少一个实施例的顶部透视图;
图10是在图1的数据中心中可用的加速器板的至少一个实施例的简化框图;
图11是图10的加速器板的至少一个实施例的顶部透视图;
图12是在图1的数据中心中可用的存储板的至少一个实施例的简化框图;
图13是图12的存储板的至少一个实施例的顶部透视图;
图14是在图1的数据中心中可用的存储器板的的至少一个实施例的简化框图;以及
图15是可以在图1的数据中心内被建立以利用由经分解的资源组成的受管理的节点来执行工作负载的系统的简化框图。
图16是用于在加速器设备中提供高效重供应的系统的至少一个实施例的简化框图;
图17是图16的系统的加速器板的至少一个实施例的简化框图;
图18是可以由图16和图17的加速器板建立的环境的至少一个实施例的简化框图;以及
图19-图20是可以由图16和图17的加速器板执行的用于在加速器设备中提供高效重供应的方法的至少一个实施例的简化流程图。
具体实施方式
尽管本公开的概念易于进行各种修改和替代形式,但其具体实施例已经在附图中作为示例示出,并且将在本文中详细描述。然而,应当理解的是,不存在将本公开的概念限于所公开的特定形式的意图,相反,目的是要覆盖与本公开和所附权利要求一致的所有修改、等价物、和替代物。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用表示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以或可以不必包括该特定特征、结构或特性。此外,这样的短语不一定指的是同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为在本领域技术人员的知识范围内的是,无论是否明确描述,都可以结合其他实施例实现这样的特征、结构或特性。额外地,应当意识到的是,“至少一个A、B和C”的形式的列表中所包括的项可以表示(A);(B);(C);(A和B);(B和C);(A和C);或(A、B和C)。类似地,“A,B或C中的至少一个”的形式中所列出的项可以表示(A);(B);(C):(A和B);(B和C);(A和C);或者(A、B和C)。
在一些情况下,所公开的实施例可在硬件、固件、软件或其任何组合中实现。所公开的实施例还可以被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储在其上的指令,所述指令可由一个或多个处理器读取和执行。机器可读存储介质可以被实施为用于以机器可读形式存储或传输信息的任何存储设备、机制、或其他物理结构(例如,易失性或非易失性存储器,介质盘、或其他介质设备)。
在附图中,可以以特定的布置和/或排序示出一些结构或方法特征。然而,应当意识到的是,可能不需要这样的特定布置和/或排序。相反,在一些实施例中,可以以与说明性附图所示的不同的方式和/或顺序来布置这些特征。额外地,在特定图中包括结构或方法特征不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,这样的特征可以不被包括或者可以与其他特征组合。
现在参考图1,其中经分解的资源可以协同地执行一个或多个工作负载(例如,代表客户的应用)的数据中心100包括多个舱110、120、130、140,其中每个包括一行或多行机架。如在本文中详细描述的,每个机架壳(house)包括多个板(sled),每个板可以被实施为计算设备,例如主要装备有特定类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器)的服务器。在说明性实施例中,每个舱110、120、130、140中的板连接至多个舱交换机(例如,将数据通信路由到舱内的板并从舱内的板进行路由的交换机)。舱交换机进而与骨干(spine)交换机150连接,所述骨干交换机在数据中心100中的舱(例如,舱110、120、130、140)之间交换通信。在一些实施例中,多个板可以与使用Intel Omni-Path技术与结构连接。如在本文中更加详细地描述的,数据中心100中的板内的资源可以被分配至分组(在本文中被称为“受管理的节点”),所述分组包含来自要在工作负载的执行中共同利用的一个或多个其他板的资源。所述工作负载可以执行为好像属于受管理的节点的资源位于同一板上。受管理的节点中的资源甚至可以属于属于不同机架的板,并且甚至属于不同的舱110、120、130、140。单个板的一些资源可以被分配至一个受管理的节点,而同一板的其他资源被分配至不同的受管理的节点(例如,一个处理器被分配至一个受管理的节点,而同一板的另一个处理器被分配至不同的受管理的节点)。通过将资源分解至主要包括单个类型的资源的板(例如,主要包括计算资源的计算板,主要包含存储器资源的存储器板),并且选择性地将经分解的资源分配和解除分配以形成被指定执行工作负载的受管理的节点,数据中心100对由超融合服务器组成的一般的数据中心提供更加高效的资源使用,所述超融合服务器包含计算、存储器、存储、以及可能的额外的资源)。由此,数据中心100可以比具有相同数量的资源的一般数据中心提供更好的性能(例如,吞吐量、每秒运算、延迟等)。
现在参考图2,在说明性实施例中,舱110包括机架240的一组行200、210、220、230。每个行240可以容纳多个板(例如,十六个板),并且提供至所容纳的板的电力和数据连接,如在本文中更加详细地描述的。在说明性实施例中,每一行200、210、220、230中的机架连接至多个舱交换机250、260。舱交换机250包括舱110的机架的板与其连接的一组端口252,以及将舱110连接至主干交换机150以提供对数据中心100中的其他舱的连通性的另一组端口254。类似地,舱交换机260包括舱110的机架的板与其连接的一组端口262,以及将舱110连接至主干交换机150的一组端口264。由此,一对交换机250、260的使用向舱110提供了一定量的冗余。例如,如果交换机250、260中的任何一个发生故障,则舱110中的板可以仍然保持通过另一交换机250、260与数据中心100中的剩余部分(例如,其他舱的板)的数据通信。此外,在说明性实施例中,交换机150、250、260可以被实施为双模式光学交换机,其能够经由光纤的光学信号介质来对携带互联网协议(IP)分组的以太网协议通信和根据第二、高性能链路层协议(例如,Intel的Omni-Path架构,无限带宽)的通信两者进行路由。
应当意识到的是,其他舱120、130、140(以及数据中心100的任何额外的舱)中的每个可以类似地被构建为在图2中所示出以及关于图2所描述的舱110(例如,每个舱可以如上文所描述的具有容纳多个板的多行机架),并且具有与其类似的组件。额外地,尽管示出了两个舱交换机250、260,但应当理解的是,在其他实施例中,每个舱110、120、130、140可以连接至不同数量的舱交换机(例如,提供更加多的故障切换容量)。
现在参考图3-图5,数据中心100的每个说明性机架240包括两个细长的支柱302、304,它们是被竖直地布置的。例如,所述细长的支柱302、304可以在被采用时从数据中心100的地面向上延伸。机架240还包括细长的支臂312的一个或多个水平对310(在图3中经由虚线椭圆标识),其被配置为如下文所讨论的支撑数据中心100的板。细长的支臂312对中的一个细长的支臂312从细长的支柱302向外延伸,而另一细长的支臂312从细长的支柱304向外延伸。
在说明性实施例中,数据中心100的每个板被实施为无托架的板。即,如下文所讨论的,每个板具有物理资源(例如,处理器、存储器、加速器、存储等)在其上安装的无托架电路板基底。由此,机架240被配置为接收无托架板。例如,细长的支臂312的每一对310限定机架240的板槽320,其被配置为接收对应的无托架板。为此,每个说明性的细长的支臂312包括被配置为接收板的无托架电路板基底的电路板引导330。每个电路板引导330被安装至或以其他方式安装至对应的细长的支臂312的顶面332。例如,在说明性实施例中,每个电路板引导330相对于对应的细长的支柱302、304而被安装在对应的细长的支臂312的末端。为了附图清楚起见,没有在每个附图中引用每个电路板引导330。
每个电路板引导330包括限定电路板槽380的内墙,其被配置为当板400在机架240的对应的板槽320中被接收时接收板400的无托架电路板基底。为此,如在图4中所示出的,用户(或机器人)将说明性无托架板400的无托架电路板基底与板槽320对齐。用户或机器人可以接着将无托架电路板基底向前滑动到板槽320中,以使得无托架电路板基底的每个侧边414在细长的支臂312的对310的电路板引导330的对应的电路板槽380中被接收,所述电路板引导330如在图4中所描述的限定对应的板槽320。通过使得包括经分解的资源的能够由机器人访问和操纵,每种类型的资源可以独立于彼此并且以其最佳化刷新速率来升级。此外,板被配置为与每个机架240中的电力和数据通信线缆盲配,以增强其要被快速移除、升级、重新安装、和/或替换的能力。由此,在一些实施例中,数据中心100可以在数据中心地板上没有人类参与的情况下进行操作(例如,执行工作负载、经历维护、和/或进行升级等)。在其他实施例中,人类可以在数据中心100中促进一个或多个维护或升级操作。
应当意识到的是,每个电路板引导330是双面的。即,每个电路板引导330包括限定电路板引导330的每个面上的电路板槽380的内墙。以该方式,每个电路板引导330可以支撑每个面上的无托架电路板基底。由此,单个额外的细长的支柱可以被增加至机架240以将机架240变成能够支撑如在图3中所示出的板槽320两倍的两机架解决方案。说明性机架240包括七对310限定对应的七个板槽320的细长的支臂312,其中每个对被配置为接收和支撑对应的板400,如在上文所讨论的。当然,在一些实施例中,机架240可以包括细长的支臂312的额外的或较少的对310(即,额外的或较少的板槽320)。应当意识到的是,因为板400是无托架的,所以板400可以具有不同于一般的服务器的总体高度。由此,在一些实施例中,每个板槽320的高度可以低于一般服务器的高度(例如,低于单个机架单位,“1U”)。即,细长的支臂312的每个对310之间的竖直距离可以小于标准机架单位“1U”。额外地,由于板槽320的高度的相对降低,因此,在一些实施例中,机架240的整体高度可以低于传统机架包围结构的高度。例如,在一些实施例中,细长的支柱302、304中的每个可以具有六英尺或更少的长度。再一次,在其他实施例中,机架240可以具有不同的维度。此外,应当意识到的是,机架240不包括任何墙、包围结构等。相反,机架240是对本地环境开放的无包围机架。当然,在一些情况下,可以将端板附接至细长的支柱302、304中的一个,在那些情况下机架240形成数据中心100中的结束行机架。
在一些实施例中,各种互连可以通过细长的支柱302、304而向上或向下路由。为了促进这样的路由,每个细长的支柱302、304包括内墙,所述内墙限定互连可以位于其中的内室。通过细长的支柱302、304路由的互连可以被实施为任何类型的互连,其包括但不限于用于向每个板槽320提供通信互连的数据或通信互连、用于向每个板槽320提供电力的电力互连、和/或其他类型的互连。
在说明性实施例中,机架240包括对应的光学数据连接器(未示出)安装在其上的支撑平台。每个光学数据连接器与对应的板槽320相关联,并且被配置为当板400在对应的板槽320中被接收时,与对应的板400的光学数据连接器紧密配合。在一些实施例中,数据中心100中的组件(例如,板、机架、和交换机)之间的光学连接是用盲配光学连接形成的。例如,每个线缆上的门可以防止灰尘污染线缆内的纤维。在连接至盲配光学连接器机构的过程中,当线缆的末端进入连接器机构时所述门被推开。随后,线缆内的光纤进入连接器机构内的胶质(gel),并且一个线缆的光纤在连接器机构内部的胶质中接触到另一线缆的光纤。
说明性机架240还包括耦合至机架240的交叉支臂的风扇阵列370。风扇阵列370包括一行或多行冷却风扇372,它们排列在细长的支柱302、304之间的水平线上。在说明性实施例中,风扇阵列370包括针对机架240的每个板槽320的一行冷却风扇372。如上文所讨论的,在说明性实施例中,每个板400不包括任何板载冷却系统,并且由此,风扇阵列提供针对在机架240中所接收的每个板400的冷却。在说明性实施例中,每个机架240还包括与每个板槽320相关联的电源。每个电源被安装至限定了对应的板槽320的细长的支臂312的对310中的细长的支臂312中的一个。例如,机架240可以包括耦合或安装至从细长的支柱302延伸的每个细长的支臂312的电源。每个电源包括电源连接器,其被配置为当板400在对应的板槽320中被接收时与板400的电源连接器紧密配合。在说明性实施例中,板400不包括任何板载电源,并且由此,在机架240中所提供的电源当被安装至机架240时向对应的板400供电。
现在参考图6,在说明性实施例中,板400被配置为如上文所讨论的安装在数据中心100的对应的机架240中。在一些实施例中,每个板400可以被优化或者以其他方式被配置用于执行特定任务,例如计算任务、加速任务、数据存储任务等。例如,板400可以被实施为如在下文中关于图8-图9讨论的计算板800,如在下文中关于图10-图11讨论的加速器板1000,如在下文中关于图12-图13讨论的存储板1200,或者如在下文中关于图14讨论的、经优化或以其他方式被配置为执行其他专门任务的板,例如存储器板1400。
如上文中讨论的,说明性板400包括无托架电路板基底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的一个或多个物理资源。尽管在图6中示出了两个物理资源620,但应当意识到的是,在其他实施例中,板400可以包括一个、两个、或更多个物理资源620。物理资源620可以被实施为任何类型的处理器、控制器、或者其他计算电路,所述其他计算电路能够执行诸如计算功能之类的各种任务和/或取决于例如板400的类型或期望的功能来控制板400的功能。例如,如在下文中详细讨论的,物理资源620可以在板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,其被配置为当板400被安装在对应的机架240中时与机架240的对应的电力连接器紧密配合。板400经由电力连接器640从机架240的电源接收电力,以向板400的各种电气组件供电。即,板400不包括用于向板400的电气组件提供电力的任何本地电源(即,板载电源)。对本地或板载电源的不包括促进无托架电路板基底602的整体占用面积(footprint)的降低,这可以增加如上文所讨论的安装在无托架电路板基底602上的各种电气组件的热冷却特性。在一些实施例中,电力通过在处理器820正下方的过孔(vias)而提供给处理器820(例如,通过无托架电路板基底602的底面750),这提供了增加的热预算、额外的电流和/或电压、以及对一般的板的更好的电压控制。
在一些实施例中,板400还可以包括安装(mouning)特征642,其被配置为与机器人的安装臂或其他结构紧密结合,以促进由机器人将板600放置在机架240中。安装特征642可以被实施为允许机器人抓住板400而不伤害无托架电路板基底602或安装至其的电气组件的任何类型的物理结构。例如,在一些实施例中,安装特征642可以被实施为附接至无托架电路板基底602的非导体舱。在其他实施中,安装特征可以被实施为支架、支撑、或者附接至无托架电路板基底602的其他类似结构。安装特征642的特定数量、形状、大小、和/或构造可以取决于被配置为管理板400的机器人的设计。
现在参考图7,除了安装在无托架电路板基底602的顶面650上的物理资源之外,板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、针对DDR2SDRAM的JESD79、针对DDR3SDRAM的JESD79-3F、针对DDR4SDRAM的JESD79-4A、针对低功率DDR(LPDDR)的JESD209、针对LPDDR2的JESD209-2、针对LPDDR3的JESD209-3、以及针对LPDDR4的JESD209-4(这些标准在www.jedec.org可获得)。这样的标准(以及类似标准)可以被称为基于DDR的标准,而实现这样的标准的存储设备的通信接口可以被称为基于DDR的接口。
在一个实施例中,存储器设备是块可寻址存储器设备,例如基于NAND或NOR技术的那些设备。存储器设备还可以包括下一代非易失性设备,例如Intel 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并且可以被配置为以相对高的功率等级进行操作。尽管以高于一般处理器的功率等级(其以大约155-230W进行操作)进行操作的处理器820生成额外的热,但在上文中所讨论的无托架电路板基底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可以包括都在NIC832本地的本地处理器(未示出)和/或本地存储器。在这样的实施例中,NIC 832的本地处理器能够执行处理器820的功能中的一个或多个。额外地或可替代地,在这样的实施例中,NIC832的本地存储器可以在板等级、插槽等级、芯片等级、和/或其他等级被集成到计算板的一个或多个组件中。
通信电路830可通信地耦合至光学数据连接器834。光学数据连接器834被配置为当计算板800被安装在机架240中时与机架240的对应的光学数据连接器紧密配合。说明性地,光学数据连接器834包括多个光纤,其从光学数据连接器834的配合面引出至光学收发机836。光学收发机836被配置为将来自机架侧光学数据连接器的到来的光学信号转换成电信号,以及将电信号转换成针对机架侧光学数据连接器的输出的光学信号。尽管在说明性实施例中被示出为形成了光学数据连接器834的部分,但在其他实施例中,光学收发机836可以形成通信电路830的一部分。
在一些实施例中,计算板800还可以包括扩展连接器840。在这样的实施例中,扩展连接器840被配置为与扩展无托架电路板基底的对应的连接器紧密配合以向计算板800提供额外的物理资源。所述额外的物理资源可以例如由处理器820在计算板800的操作期间使用。扩展无托架电路板基底可以大体上类似于在上文中所讨论的无托架电路板基底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在操作期间不产生热或名义上产生热。
如在上文中关于板400所讨论的,计算板800的存储器设备720被安装至无托架电路板基底602的底面750。尽管被安装至底面750,但是存储器设备720经由I/O子系统622通信地耦合至位于顶面650上的处理器820。因为无托架电路板基底602被实施为双面电路板,所以存储器设备720和处理器820可以由延伸通过无托架电路板基底602的一个或多个过孔、连接器、或其他机制可通信地耦合。当然,在一些实施例中,每个处理器820可以可通信地耦合至不同的一组一个或多个存储器设备720。可替代地,在其他实施例中,每个处理器820可以可通信地耦合至每个存储器设备720。在一些实施例中,存储器设备720可以被安装至无托架电路板基底602的底面上的一个或多个存储器夹层(memory mezzanine),并且可以通过球状网格阵列来与对应的处理器820进行互连。
处理器820中的每个包括安装至其的散热器850。由于将存储器设备720安装至无托架电路板基底602的底面750(以及板400在对应的机架240中竖直间隔),所以无托架电路板基底602的顶面650包括促进对相对于在一般服务器中所使用的传统散热器而言具有较大尺寸的散热器850的使用的额外的“自由”区域或空间。额外地,由于无托架电路板基底602的经改进的热冷却特性,处理器散热器850全都不包括附接至其的冷却风扇。即,散热器中的每个被实施为无风扇散热器。
现在参考图10,在一些实施例中,板400可以被实施为加速器板1000。加速器板1000被优化或者以其他方式被配置为执行专门的计算任务,例如机器学习、加密、散列、或者其他计算密集的任务。在一些实施例中,例如,计算板800可以在操作期间将任务卸载至加速器板1000。加速器板1000包括与板400和/或计算板800的组件类似的各种组件,它们可以在图10中使用相同的附图标记来标识。在上文中关于图6、图7、和图8所提供的这样的组件的描述适用于加速器板1000的对应的组件,并且为了对加速器板1000的描述清楚起见而不在本文中重复。
在说明性加速器板1000中,物理资源被实施为加速器电路1020。尽管在图10中仅仅示出了两个加速器电路1020,但应当意识到的是,在其他实施例中,加速器板1000可以包括额外的加速器电路1020。在一些实施例中,例如,如在图11中所示出的,加速器板1000可以包括四个加速器电路1020。加速器电路1020可以被实施为任何类型的处理器、协处理器、计算电路、或者能够执行计算或处理操作的其他设备。例如,加速器电路1020可以被实施为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全协处理器、图形处理单元(GPU)、机器学习电路、或者其他专用处理器、控制器、设备、和/或电路。
在一些实施例中,加速器板1000还可以包括加速器到加速器互连1042。类似于在上文中所讨论的板600的资源到资源互连,加速器到加速器互连可以被实施为能够促进加速器到加速器通信的任何类型的通信互连。在说明性实施例中,加速器到加速器互连1042被实施为高速点对点互连(例如,比I/O子系统622更快)。例如,加速器到加速器互连1042可以被实施为快速路径互连(QPI)、多路径互连(UPI)、或者专用于处理器到处理器通信的其他高速点对点互连。在一些实施例中,加速器电路1020可以是菊花链式的,其中,主加速器电路1020通过I/O子系统622连接至NIC832和存储器720,而辅助加速器电路1020通过主加速器电路1020连接至NIC 832和存储器720。
现在参考图11,示出了加速器板1000的说明性实施例。如上文所讨论的,加速器电路1020、通信电路830、以及光学数据连接器834被安装至无托架电路板基底602的顶面650。再一次,个体的加速器电路1020和通信电路830被安装至无托架电路板基底602的顶面650,以使得没有两个产热的电气组件彼此遮蔽,如上文所讨论的。如上文中关于板600所讨论的,加速器板1000的存储器设备720被安装至无托架电路板基底602的底面750。尽管被安装至底面750,但存储器设备720经由I/O子系统622(例如,通过过孔)可通信地耦合至位于顶面650上的加速器电路1020。此外,加速器1020中的每个可以包括大于在服务器中使用的传统散热器的散热器1070。如在上文中参考散热器870所描述的,散热器1070可以大于传统散热器,这是由于位于无托架电路板基底602的底面750而不是顶面650的存储器设备750所提供的自由“区域”。
现在参考图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可以被配置为以大约75瓦的功率进行操作。
在一些实施例中,存储器板1200还可以包括控制器到控制器互连1242。类似于在上文所讨论的板400的资源到资源互连624,控制器到控制器互连1242可以被实施为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242被实施为高速点对点互连(例如,比I/O子系统622更快)。例如,控制器到控制器互连1242可以被实施为快速路径互连(QPI)、多路径互连(UPI)、或者专用于处理器到处理器通信的其他高速点对点互连。
现在参考图13,示出了存储板1200的说明性实施例。在说明性实施例中,数据存储装置1250被实施为或者以其他方式包括被配置为容纳一个或多个固态驱动器(SSD)1254的仓储笼1252。为此,仓储笼1252包括多个安装槽1256,其中每个被配置为接收对应的固态驱动器1254。安装槽1256中的每个包括协作以限定对应的安装槽1256的访问开口1260的多个驱动引导1258。仓储笼1252被固定至无托架电路板基底602,以使得访问开口背对无托架电路板基底602(即,面朝其正面)。由此,固态驱动器1254在存储板1200被安装在对应的机架204中时是可访问的。例如,固态驱动器1254可以在存储板1200仍然被安装在对应的机架240中时被换出机架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的方向彼此线性串联。
如在上文中关于板400所讨论的,存储板1200的存储器设备720被安装至无托架电路板基底602的底面750。尽管被安装至底面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中以及从存储器集合1430、1432中读取数据的任何类型的处理器、控制器、或控制电路。在说明性实施例中,每个存储控制器1220被连接至对应的存储器集合1430、1432以写入对应的存储器集合1430、1432内的存储器设备720并且从其读取,以及施加与板400相关联的任何许可(例如,读、写等),其已经向存储器板1400发送了请求以执行存储器存取操作(例如,读或写)。
在一些实施例中,存储器板1400还可以包括控制器到控制器互连1442。类似于在上文所讨论的板400的资源到资源互连624,控制器到控制器互连1442可以被实施为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242被实施为高速点对点互连(例如,比I/O子系统622更快)。例如,控制器到控制器互连1442可以被实施为快速路径互连(QPI)、多路径互连(UPI)、或者专用于处理器到处理器通信的其他高速点对点互连。由此,在一些实施例中,存储器控制器1420可以通过控制器到控制器1442来存取与另一存储器控制器1420相关联的存储器集合1432内的存储器。在一些实施例中,可缩放存储器控制器由存储器板(例如,存储器板1400)上的、在本文中被称为“小芯片(chiplet)”的多个较小的存储器控制器组成。小芯片可以是互连的(例如,使用EMIB(嵌入式多管芯互连桥))。经组合的小芯片存储器控制器可以缩放为相对大数量的存储器控制器和I/O端口(例如,多至16个存储器通道)。在一些实施例中,存储器控制器1420可以实现存储器交错(例如,一个存储器地址被映射至存储器集合1430,下一个存储器地址被映射至存储器集合1432,而第三地址被映射至存储器集合1430,以此类推)。交错可以在存储器控制器1420内管理,或者从(例如,计算板800的)CPU插槽跨网络链路到存储器集合1430、1432,并且可以与存取来自同一存储器设备的连续的存储器地址相比改进与执行存储器存取操作相关联的延迟。
此外,在一些实施例中,存储器板1400可以使用波导连接器1480通过波导连接至一个或多个其他板400(例如,在同一机架240中或相邻的机架240中)。在说明性实施例中,波导是提供16个Rx(即,接收)通道和16个Rt(即,发送)通道的64毫米波导。在说明性实施例中,每个通道是16Ghz或32Ghz。在其他实施中,频率可以是不同的。使用波导可以向另一板(例如,同一机架240或相邻机架240中的板400,如存储器板1400)提供对存储器池(例如,存储器集合1430、1432)的高吞吐量存取,而不增加至光学数据连接器834上的负载。
现在参考图15,用于执行一个或多个工作负载(例如,应用)的系统可以根据数据中心100来实现。在说明性实施例中,系统1510包括编排器服务器1520,其可以被实施为受管理的节点,所述受管理的节点包括执行管理软件(例如,云操作环境,如OpenStack)的计算设备(例如,计算板800),所述计算设备可通信地耦合至多个板400,板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在工作负载被分配至该受管理的节点时或者在任何时候建立、定义、或“旋转(spin-up)”,并且无论任何工作负载当前是否被分配至该受管理的节点都可以存在。在说明性实施例中,编排器服务器1520可以根据与针对工作负载(例如,应用1532)的服务等级协定相关联的服务质量(QoS)目标(例如,与吞吐量、延迟、每秒指令等相关联的性能目标)来选择性地将物理资源620从板400分配和/或取消分配,和/或将一个或多个板400添加至受管理的节点1570或者从受管理的节点1570移除。在这样做时,编排器服务器1520可以在受管理的节点1570的每个板400中接收指示性能条件的遥测数据(例如,吞吐量、延迟、每秒指令等),并且将所述遥测数据与服务质量目标比较以确定是否满足服务质量目标。如果满足,则编排器服务器1520可以额外地确定一个或多个物理资源是否可以在仍然满足QoS目标的情况下从受管理的节点1570取消分配,由此释放那些物理资源以用于在另一受管理的节点中使用(例如,以执行不同的工作负载)。可替代地,如果QoS目标当前不被满足,则编排器服务器1520可以确定动态地分配额外的物理资源以在工作负载(例如,应用1532)执行时协助工作负载的执行。
额外地,在一些实施例中,编排器服务器1520可以例如通过以下方式来识别工作负载(例如,应用1532)的资源利用中的趋势:识别工作负载(例如,应用1532)执行的阶段(例如,执行每个具有不同的资源利用特性的不同的操作的时段),以及预先地识别数据中心100中的可用资源并且将它们分配至受管理的节点1570(例如,在相关联的阶段开始的预先定义的时段内)。在一些实施例中,编排器服务器1520可以基于用于将工作负载置于数据中心100中的计算板和其他资源(例如,加速器板、存储器板、存储板)之间的各种延迟和分布方案来对性能建模。例如,编排器服务器1520可以对考虑到板400上的资源的性能(例如,FPGA性能、存储器存取延迟等)以及通过网络到资源(例如,FPGA)的路径的性能(例如,拥塞、延迟、带宽)的模型进行利用。由此,编排器服务器1520可以基于与在数据中心100中可用的每个潜在资源相关联的总延迟(例如,与资源本身的性能相关联的延迟,加上与通过网络的执行工作负载的计算板与资源位于其上的板400之间的路径相关联的延迟)来确定哪个(些)资源应当与哪些工作负载一起被使用。
在一些实施例中,编排器服务器1520可以使用从板400报告的遥测数据(例如,温度、风扇速度等)来生成数据中心100中的热生成图,并且根据所述热生成图以及与不同的工作负载相关联的经预测的热生成来向受管理的节点分配资源,以维持数据中心100中的目标温度和热分布。额外地或可替代地,在一些实施例中,编排器服务器1520可以将所接收的遥测数据组织成指示受管理的节点之间的关系(例如,空间关系,诸如数据中心100内的受管理的节点的资源的物理位置,和/或功能关系,例如,由受管理的节点为其提供服务的客户对所述受管理的节点的分组,通常由受管理的节点所执行的功能的类型,通常在彼此间共享或交换工作负载的受管理的节点)的层级模型。基于受管理的节点中的物理位置和资源的差异,给定的工作负载可以展示跨不同的受管理的节点的资源的不同的资源利用(例如,引起不同的内部温度、使用处理器或存储器容量的不同百分比)。编排器服务器1520可以基于存储在层级模型中的遥测数据来确定所述差异,并且在工作负载从一个受管理的节点被重新分配至另一个受管理的节点的情况下将所述差异归纳成对该工作负载的未来资源利用的预测,从而精确地平衡数据中心100中的资源利用。
在一些实施例中,为了降低编排器服务器1520上的计算负载以及网络上的数据转移负载,编排器服务器1520可以向板400发送自检测信息,以使得每个板400能够本地地(例如,在板400上)确定由板400所生成的遥测数据是否满足一个或多个条件(例如,满足预先定义的阈值的可用容量、满足预先定义的阈值的温度等)。每个板400可以接着将简化结果(例如,是或者否)报告回编排器服务器1520,其中编排器1520可以在确定资源向受管理的节点的分配时利用所述简化结果。
现在参考图16,可以根据在上文中参考图1所描述的数据中心100来实现用于在加速器设备中提供(例如,内核的)高效供应的系统1610。在说明性实施例中,系统1610包括可通信地耦合至包括计算板1630和加速器板1640在内的多个板的编排器1620。板1630、1640中的一个或多个可以例如由编排器服务器1620分组成受管理的节点,以共同执行工作负载(例如,应用1632)。受管理的节点可以被实施为来自相同或不同的板或机架的资源的组合,所述资源诸如计算资源、存储器资源、存储资源、或其他资源。此外,受管理的节点可以由编排器服务器1620在工作负载被分配至该受管理的节点时或者在任何时候建立、定义、或“旋转(spun-up)”,并且无论任何工作负载当前是否被分配至该受管理的节点都可以存在。系统1610可以位于数据中心中,并且向通过网络1612与系统1610进行通信的客户端设备1614提供存储和计算服务(例如,云服务)。编排服务器1620可以支持诸如OpenStack之类的云操作环境,并且由编排器服务器1620所建立的受管理的节点可以代表客户端设备1614的用户来执行一个或多个应用或过程(即,工作负载),例如在虚拟机或容器中。
在说明性实施例中,计算板1630类似于图2的板205-4,并且在操作中,计算板1630执行应用1632(例如,工作负载)。加速器1640包括耦合至存储器1644(例如,随机存取存储器(RAM))的一个或多个加速器设备1642,存储器1644可以暂时地存储一个或多个比特流1646和参数数据1648。每个比特流1646可以被实施为定义能够由加速器设备1642可执行以执行一个或多个功能(例如,工作负载的部分)的内核的任何数据。例如,每个比特流1646可以被实施为一组指令以用于执行密码功能、算术功能、散列功能、和/或能够由加速器设备1642执行的其他功能。在说明性实施例中,比特流1646包括定义一个内核(例如,内核A)的比特流1650以及定义不同的内核(例如,内核B)的另一比特流1652。此外,在说明性实施例中,内核A和内核B要作为同一工作负载(例如,应用1632)的随后部分而被顺序执行。参数数据1648可以被实施为能够由内核在相关联的功能的执行时使用的任何数据(例如,输入数据)。如在下文中详细描述的,在操作中,加速器板1640可以利用一个比特流(例如,比特流1650)来配置加速器设备1642以在加速器设备1642上建立内核A,关于参数数据1648中的输入数据执行内核A,将从内核A的执行所得出的输出数据集写入参数数据1648,利用比特流1652来重新配置加速器设备1642以建立内核B,以及使用先前写入存储器1644的输出数据作为对内核B的输入数据。通过暂时地将内核A的输出留存在存储器中并且将其重新使用作为对内核B的输入,而不是通过网络1612将输出数据发送至计算板1630,计算板1630接着通过网络将输出数据发送回加速器设备(例如,相同的加速器设备或不同的加速器设备)以执行随后的内核(例如,内核B),加速器板1640可以显著地降低在加速负载的部分的序列时所引起的整体延迟,其中在负载的部分之间具有数据依赖性(例如,使用一个内核的输出数据作为针对随后的内核的输入数据)。
现在参考图17,加速器板1640可以被实施为能够执行在本文中所描述的功能的任何类型的计算设备,所述功能包括利用比特流来配置加速器设备以建立内核,执行所述内核以产生输出数据,将输出数据写入板载存储器(例如,位于加速器板1640上的存储器),利用第二比特流来配置加速器设备以建立第二内核,以及通过将存储器中的输出数据作为输入数据来执行第二内核。如在图17中所示出的,说明性加速器板1640包括计算引擎1702、输入/输出(I/O)子系统1706、通信电路1708、以及一个或多个加速器设备1642。当然,在一些实施例中,加速器板1640可以包括其他或额外的组件,例如通常在计算机中发现的那些组件(例如,显示器、外围设备等)。额外地,在一些实施例中,说明性组件中的一个或多个可以被包含在另一组件中或者以其他方式形成另一组件的一部分。
计算引擎1702可以被实施为能够执行在下文中所描述的各种计算功能的任何类型的设备或设备的集合。在一些实施例中,计算引擎1702可以被实施为单个设备,例如集成电路、嵌入式系统、现场可编程门阵列(FPGA)、片上系统(SOC)、或者其他集成系统或设备。在说明性实施例中,计算引擎1702包括或者被实施为处理器1704和存储器1644。处理器1704可以被实施为能够执行在本文中所描述的功能的任何类型的设备或电路。例如,处理器1704可以被实施为微控制器、单核或多核处理器、或者其他处理器或处理/控制电路。在一些实施例中,处理器1704可以被实施为包括或者被耦合至FPGA、专用集成电路(ASIC)、可重配置的硬件或硬件电路、或者用于促进在本文中所描述的功能的性能的其他专用硬件。
存储器设备1644可以被实施为能够执行在本文中所描述的功能的任何类型的易失性(例如,动态随机存取存储器(DRAM)等)或非易失性存储器或数据存储装置。易失性存储器可以是需要电力来维持由介质所存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(RAM),例如动态随机存取存储器(DRAM)或者静态随机存取存储器(SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在特定的实施例中,存储器组件的DRAM可以遵从由JEDEC发布的标准,例如针对DDR SDRAM的JESD79F、针对DDR2SDRAM的JESD79、针对DDR3SDRAM的JESD79-3F、针对DDR4SDRAM的JESD79-4A、针对低功率DDR(LPDDR)的JESD209、针对LPDDR2的JESD209-2、针对LPDDR3的JESD209-3、以及针对LPDDR4的JESD209-4(这些标准在www.jedec.org可获得)。这样的标准(以及类似标准)可以被称为基于DDR的标准,而实现这样的标准的存储设备的通信接口可以被称为基于DDR的接口。
在一个实施例中,存储器设备是块可寻址存储器设备,例如基于NAND或NOR技术的那些设备。存储器设备还可以包括下一代非易失性设备,例如三维交叉点存储器设备(例如,Intel 3D XPointTM存储器)或者其他字节可寻址位写入非易失性存储器设备。在一个实施例中,存储器设备可以是或者可以包括使用硫属化合物玻璃的存储器设备、多阈值水平NAND闪速存储器、NOR闪速存储器、单或多级相变存储器(PCM)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、包含忆阻器技术的磁阻随机存取存储器、包括金属氧化物基底、氧空位基底、和导电桥随机存取存储器(CB-RAM)的电阻存储器、或者自旋转移矩(STT)-MRAM、基于自旋电子磁节存储器的设备、基于磁隧道节(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备、或以上中的任何的组合、或者其他存储器。存储器设备可以指的是管芯本身和/或经封装的存储器产品。
在一些实施例中,3D交叉点存储器(例如,Intel 3D XPointTM存储器)可以包括无晶体管可堆叠交叉点架构,其中,存储器单元位于字线和位线的交叉处并且个体可寻址,并且其中,位存储是基于体电阻的改变的。在一些实施例中,存储器1644可以并入到处理器1704。在操作中,存储器1644可以存储在操作期间使用的各种软件和数据,例如顺序数据、比特流数据、参数数据、应用、程序、和库。
计算引擎1702经由I/O子系统1706可通信地耦合至加速器板1640的其他组件,I/O子系统1706可以被实施为用于促进与计算引擎1702(例如,具有处理器1704和/或存储器1644)和加速器板1640的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统1706可以被实施为或者以其他方式包括存储器控制器集线器、输入/输出控制集线器、集成传感器集线器、固件设备、通信链路(例如,点对点链路、总线链路、线路、线缆、光导、印刷电路板迹线等)、和/或用于促进输入/输出操作的其他组件和子系统。在说明性实施例中,I/O子系统1706可以形成片上系统(SoC)的一部分,并且可以与处理器1704、存储器1644、以及加速器板1640的其他组件中的一个或多个一起被包括到计算引擎1702中。
通信电路1708可以被实施为能够使能在加速器板1640与另一计算设备(例如,计算板1630、编排器服务器1620)之间通过网络1612的通信的任何通信电路、设备、或其集合。通信电路1708可以被配置为使用任何一个或多个通信技术(例如,有线或无线通信)以及相关联的协议(例如,以太网、WiMAX等)来实现这样的通信。
通信电路1708可以包括网络接口控制器(NIC)1710,其还可以被称为主机结构接口(HFI)。NIC 1710可以被实施为一个或多个内插板、子卡、网络接口卡、控制器芯片、芯片组、或者能够由加速器板1640使用以与另一计算设备(例如,计算板1630、编排器服务器1620等)连接的其他设备。在一些实施例中,NIC 1710可以被实施为包括一个或多个处理器的片上系统的(SoC)的一部分,或者被包括在同样包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 1710可以包括都在NIC 1710本地的本地处理器(未示出)和/或本地存储器。在这样的实施例中,NIC 1710的本地处理器能够执行在本文中所描述的计算引擎1702的功能中的一个或多个。额外地或可替代地,在这样的实施例中,NIC 1710的本地存储器可以在板等级、插槽等级、芯片等级、和/或其他等级被集成到加速器板1640的一个或多个组件中。
加速器设备1642可以包括FPGA 1712。在说明性实施例中,FPGA 1712包括一个或多个槽1714,其中每个可以被实施为在FPGA 1712上存在的逻辑或电路(例如,逻辑门)的一部分,并且其可以利用比特流编程以提供能够加速特定功能的内核。尽管示出了一个FPGA1712,但应当意识到的是,在其他实施例中,多个FPGA可以被包括在加速器板1640中。此外,加速器板1640可以包括一个或多个其他加速器设备1716,其可以被实施为能够比通用处理器更快地执行一个或多个功能的任何电路或设备(例如,协处理器、图形处理单元(GPU)等)。
加速器板1640还可以包括一个或多个数据存储设备1718,其可以被实施为配置用于数据的短期或长期存储的任何类型的设备,例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、或者其他数据存储设备。每个数据存储设备1718可以包括存储针对数据存储设备1718的数据和固件代码的系统分区。每个数据存储设备1718还可以包括存储针对操作系统的数据文件和可执行文件的一个或多个操作系统分区。
编排器服务器1620、计算板1630、以及客户端设备1614可以具有与在图17中所描述的那些类似的组件,其中期望是,在一些实施例中,编排器服务器1620、计算板1630、和/或客户端设备1614可以不包括加速器1642。对加速器板1640的那些组件的描述能够等同地应用于对那些设备的组件的描述,并且为了描述的清楚起见不在本文中重复。此外,应当意识到的是,加速器板1640、计算板1630、编排器服务器1620、或者客户端设备1614中的任何一个可以包括通常在计算设备中找到的其他组件、子组件、以及设备,所述其他组件、子组件、以及设备出于描述的清楚起见没有参考加速器板1640在上文中讨论并且没有在本文中讨论。
如在上文中所描述的,编排器服务器1620、板1630、1640、以及客户端设备1614经由网络1612说明性地进行通信,网络1612可以被实施为任何类型的有线或无线通信网络,包括全球网络(例如,互联网)、局域网(LAN)或广域网(WAN)、蜂窝网络(例如,全球移动通信系统(GSM)、3G、长期演进(LTE)、全球微波互联接入(WiMAX)等)、数字用户线路(DSL)网络、有线网络(例如,同轴网络、光纤网络等)、或其任何组合。
现在参考图18,加速器板1640可以在操作期间建立环境1800。说明性环境1800包括网络通信器1820以及内核执行管理器1830。环境1800的组件中的每个可以被实施为硬件、固件、软件、或其组合。由此,在一些实施例中,环境1800的组件中的一个或多个可以被实施为电路或电气设备(例如,网络通信器电路1820、内核执行管理器电路1830等)的集合。应当意识到的是,在这样的实施例中,网络通信器电路1820或者内核执行管理器电路1830中的一个或多个可以形成计算引擎1702、加速器设备1642、I/O子系统1706、通信电路1708、和/或加速器板1640的其他组件中的一个或多个的一部分。在说明性实施例中,环境1800包括序列数据1802,其可以被实施为指示内核要被执行以加速工作负载(例如,应用1632)的执行的序列的任何数据。加速器板1640可以通过网络1612从远程计算设备(例如,计算板1630)接收序列数据1802(例如,作为用于执行内核的请求的部分)。此外,说明性实施例包括比特流数据1804,其可以被实施为一个或多个比特流(例如,比特流1646)。在说明性实施例中,加速器板1640还可以通过网络1612从远程计算设备(例如,计算板1630)接收比特流数据。额外地,说明性环境1800包括参数数据1806,其与在上文中参考图16所描述的参数数据1648是类似的。
在说明性环境1800中,可以被实施为在上文中所讨论的硬件、固件、软件、虚拟化硬件、仿真架构、和/或其组合的网络通信器1820被配置为分别促进来自以及去往加速器板1640的入站和出站网络通信(例如,网络业务、网络分组、网络流等)。为此,网络通信器1820被配置为从一个系统或计算设备(例如,计算板1630、编排器服务器1620等)接收数据分组并进行处理,以及准备并将数据分组发送至计算设备或系统(例如,计算板1630、编排器服务器1620等)。由此,在一些实施例中,网络通信器1820的功能的一部分可以由通信电路1708执行,并且在说明性实施例中由NIC1710执行。
可以被实施为硬件、固件、软件、虚拟化硬件、仿真架构、和/或其组合的内核执行管理器1830用于利用与在内核的序列中所定义的内核相关联的(例如,序列数据1802中的)比特流来配置加速器板1640的加速器设备,执行所述内核以产生输出数据,将输出数据存储在存储器中(例如,作为参数数据1806),利用与序列中的第二内核相关联的第二比特流来配置加速器设备,以及使用从第一内核产生的输出数据作为对第二内核的输入的来执行第二内核(例如,通过从存储器读取参数数据1806)。为此,在说明性实施例中,内核执行管理器1830包括序列控制器1832、加速器设备配置器1834、以及参数管理器1836。
在说明性实施例中,序列管理器1832被配置为(例如,从诸如计算板1630之类的远程计算设备)获得顺序数据1802,并且根据序列数据1802以及在任何给定时间在顺序数据1802中的当前位置来确定哪个内核应当由加速器设备(例如,FPGA 1712)执行。在说明性实施例中,加速器设备配置器1834被配置为从比特流数据1804中读取比特流,并且利用所读取的比特流来配置加速器设备(例如,FPGA 1712),例如通过对加速器设备(例如,FPGA1712)的槽(例如,槽1714)中的逻辑门进行编程来建立对应的内核。在说明性实施例中,加速器设备配置器1834响应于序列控制器1832这样做而配置加速器设备,例如当序列数据1802中的一个内核已经完成并且在序列数据1802中所指示的下一内核要被执行。在说明性实施例中,参数管理器1836被配置为向内核提供输入参数(例如,输入数据集)以用于在其上执行(例如,压缩输入数据集、加密输入数据集等)并且存储(在存储器1644中的参数数据1806中)由所该内核所产生的输出数据以用作对随后执行的内核的输入数据。
应当意识到的是,序列控制器1832、加速器设备配置器1834、以及参数管理器1836中的每个可以单独被实施为硬件、固件、软件、虚拟化硬件、仿真架构、和/或其组合。例如,序列控制器1832可以被实施为硬件组件,而加速器设备配置器1834和参数管理器1836被实施为虚拟化硬件组件或者硬件、固件、软件、虚拟化硬件、仿真架构、和/或其组合的某一其他组合。
现在参考图19,加速器板1640在操作中可以执行用于提供内核的高效供应的方法1900。方法1900开始于框1902,其中,加速器板1640确定是否执行内核。在这样做时,加速器板1640可以获得用于执行一个或多个内核的请求,如在框1904中所指示的。加速器板1640可以获得用于以预先定义的序列(例如,序列数据1802)执行一批内核的请求,如在框1906中所指示的。例如,预先定义的序列可以用于执行内核A,后跟着内核B。在一些实施例中,预先定义的序列可以包括一个或多个条件,其中,一个内核(例如,内核B)在先前的内核(例如,内核A)之后被执行,以及其他条件,其中,可替代的内核(例如,内核C)要在先前的内核(例如,内核A)之后被执行,例如当输出数据中的值满足预先定义的阈值时。如在框1908中指示的,无论如何,加速器板都可以从诸如计算板1630或编排器服务器1620之类的远程计算设备获得请求。如在框1910中指示的,加速器板1640可以获得与要被执行的内核相关联的一个或多个比特流(例如,比特流数据1804)以及参数数据(例如,参数数据1806)。例如,来自远程计算设备(例如,计算板1630、编排器服务器1620)的请求可以包括比特流以及参数数据(例如,输入数据)。如在框1912中所指示的,在说明性实施例中,加速器板1640将与内核相关联的比特流和参数数据写入存储器1644。额外地,加速器板1640可以将预先定义的序列(例如,来自框1906)写入存储器1644,如在框1914中所指示的。在框1902的之后的迭代中,加速器板1640可以确定是否执行预先定义的序列中的随后的内核(例如,在内核A已经完成了执行之后),如在框1916中所指示的。在框1918中,加速器板1640基于加速器板1640是否已经确定是否执行内核(例如,在来自框1904的请求中所标识的内核或者在来自框1906的预先定义的序列中所标识的随后的内核)来确定动作的过程。响应于执行内核的确定,方法1900前进至图20的框1920,其中加速器板1640利用加速器板1640的加速器设备1642(例如,FPGA 1712)来执行内核。否则,方法1900循环回框1902,其中加速器板1640再一次确定是否执行内核。
现在参考图20,在说明性实施例中,在利用加速器设备1642执行内核时,加速器板1640从存储器1644中读取与当前内核相关联的比特流,如在框1922中所指示的。额外地,在说明性实施例中,加速器板1640配置加速器设备1642利用与内核相对应的比特流来配置加速器设备(例如,对逻辑门进行编程),以建立内核(例如,使得加速器设备1642能够执行与内核相关联的功能),如在框1924中所指示的。在配置加速器设备1642时,加速器板1640可以配置FPGA的槽(例如,FPGA 1712的槽1714)以建立内核,如在框1926中所指示的。在说明性实施例中,加速器板1640利用加速器设备1642来对在存储器1644中呈现的输入数据(例如,参数数据1806中的输入数据集)执行内核,如在框1928中所指示的。在说明性实施例中,在这样做时,加速器板1640关于在请求(例如,来自框1904的请求)中所接收的输入数据执行内核,如在框1930中所指示的。在方法1900的之后的迭代中,加速器设备1642可以使用由先前执行的内核写入存储器1644的输出数据作为输入数据(例如,对由先前的内核解压缩的数据进行解密)来执行内核,如在框1932中指示的。此后,在框1934中,加速器板1640将从对内核的执行所得出的输出数据写入存储器1644(例如,写入由当前内核解压缩的数据集的经解压缩的版本)。此外,并且如在框1936中所指示的,加速器板1640将输出数据发送至远程计算设备(例如,计算板1630),如在框1936中指示的。此后,方法1900循环回图19的框1902以再一次确定是否执行内核。
示例
在下文中提供了在本文中所公开的技术的说明性示例。所述技术的实施例可以包括在下文中所描述的示例中的任何一个或多个以及任何组合。
示例1包括一种加速器板,包括:存储器;耦合至所述存储器的加速器设备,其中,所述加速器设备用于:(i)利用第一比特流来配置所述加速器设备以建立第一内核;(ii)执行所述第一内核以产生输出数据;(iii)将所述输出数据写入所述存储器;(iv)利用第二比特流来配置所述加速器设备以建立第二内核;以及(v)执行所述第二内核,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
示例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包括一种方法,其包括:由加速器板利用第一比特流来配置所述加速器板的加速器设备以建立第一内核;由所述加速器板来执行所述第一内核以产生输出数据;由所述加速器板将所述输出数据写入所述加速器板的存储器;由所述加速器板利用第二比特流来配置所述加速器设备以建立第二内核;以及由所述加速器板执行所述第二内核,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
示例14包括示例13的主题,并且还包括由所述加速器板获得用于以在预先定义的序列来执行一批内核的请求,并且其中,利用第一比特流来配置所述加速器设备包括响应于用于以预先定义的序列执行一批内核的所述请求,利用所述第一比特流来配置所述加速器设备。
示例15包括示例13和14中的任何一个的主题,并且其中,利用所述第二比特流来配置所述加速器设备包括:确定是否执行所述预先定义的序列中的随后的内核;以及响应于确定执行所述预先定义的序列中的随后的内核,利用所述第二比特流来配置所述加速器设备。
示例16包括示例13-15中的任何一个的主题,并且还包括由所述加速器板将所述预先定义的序列写入所述存储器。
示例17包括示例13-16中的任何一个的主题,并且其中,所述加速器设备是具有槽的现场可编程门阵列,并且其中,利用所述第一比特流来配置所述加速器设备包括利用所述第一比特流来配置所述槽。
示例18包括示例13-17中的任何一个的主题,并且还包括由所述加速器板接收用于执行所述第一内核的请求,其中,所述请求包括输入数据,并且其中,执行所述第一内核包括关于在所述请求中所包括的所述输入数据执行所述第一内核。
示例19包括示例13-18中的任何一个的主题,并且还包括由所述加速器板并且向所述存储器写入从所述请求接收的所述输入数据。
示例20包括示例13-19中的任何一个的主题,并且还包括由所述加速器板接收包括所述第一比特流和所述第二比特流的请求;以及由所述加速器板将所述第一比特流和所述第二比特流写入所述存储器。
示例21包括示例13-20中的任何一个的主题,并且其中,利用所述第一比特流来配置所述加速器设备包括从所述存储器读取所述第一比特流。
示例22包括示例13-21中的任何一个的主题,并且其中,所述输出数据是第一输出数据,并且执行所述第二内核包括产生第二输出数据,所述方法还包括由所述加速器板将所述第二输出数据发送至远程计算设备。
示例23包括示例13-22中的任何一个的主题,并且还包括由所述加速器板将所述第一输出数据发送至所述远程计算设备。
示例24包括示例13-23中的任何一个的主题,并且其中,将第二输出数据发送至远程计算设备包括将所述第二输出数据发送至计算板。
示例25包括一种加速器板,其包括用于执行示例13-24中的任何一个的方法的单元。
示例26包括一个或多个机器可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行,使得加速器板执行示例13-24中的任何一个的方法。
示例27包括一种加速器板,其包括用于执行示例13-24中的任何一个的方法的计算引擎。
示例28包括一种加速器板,其包括:存储器;耦合至所述存储器的加速器设备;以及内核执行管理器电路,其用于:(i)利用第一比特流来配置所述加速器设备以建立第一内核;(ii)利用所述加速器设备来执行所述第一内核以产生输出数据;(iii)将所述输出数据写入所述存储器;(iv)利用第二比特流来配置所述加速器设备以建立第二内核;以及(v)利用所述加速器设备来执行所述第二内核,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
示例29包括示例28的主题,并且还包括网络通信器电路,其用于获得用于以预先定义的序列来执行一批内核的请求;并且其中,利用第一比特流来配置所述加速器设备包括响应于用于以预先定义的序列来执行一批内核的请求,利用所述第一比特流来配置所述加速器设备。
示例30包括示例28和29中的任何一个的主题,并且其中,利用所述第二比特流来配置所述加速器设备包括:确定是否执行所述预先定义的序列中的随后的内核;以及响应于确定执行所述预先定义的序列中的随后的内核,利用所述第二比特流来配置所述加速器设备。
示例31包括示例28-30中的任何一个的主题,并且其中,所述内核执行管理器电路还用于将预先定义的序列写入所述存储器。
示例32包括示例28-31中的任何一个的主题,并且其中,所述加速器设备是具有槽的现场可编程门阵列,并且其中,利用所述第一比特流来配置所述加速器设备包括利用所述第一比特流来配置所述槽。
示例33包括示例28-32中的任何一个的主题,并且还包括用于接收用于执行所述第一内核的网络通信器电路,其中,所述请求包括输入数据,并且其中,执行所述第一内核包括关于包括在所述请求中的输入数据执行第一内核。
示例34包括示例28-33中的任何一个的主题,并且其中,所述内核执行管理器电路用于将从所述请求接收的输入数据写入所述存储器。
示例35包括示例28-34中的任何一个的主题,并且还包括用于接收包括所述第一比特流和所述第二比特流的请求的网络通信器电路;其中,所述内核执行管理器电路还用于将所述第一比特流和所述第二比特流写入所述存储器。
示例36包括示例28-35中的任何一个的主题,并且其中,利用所述第一比特流来配置所述加速器设备包括从所述存储器读取所述第一比特流。
示例37包括示例28-36中的任何一个的主题,并且其中,所述输出数据是第一输出数据,其中,执行所述第二内核包括产生第二输出数据,并且所述内核执行管理器电路还用于将所述第二输出数据发送至远程计算设备。
示例38包括示例28-37中的任何一个的主题,并且其中,所述内核执行管理器电路还用于将所述第一输出数据发送至所述远程计算设备。
示例39包括示例28-38中的任何一个的主题,并且其中,将第二输出数据发送至远程计算设备包括将所述第二输出数据发送至计算板。
示例40包括一种加速器板,其包括:用于由加速器板利用第一比特流来配置所述加速器板的加速器设备以建立第一内核的电路;用于由所述加速器板执行所述第一内核以产生输出数据的电路;用于由所述加速器板将所述输出数据写入所述加速器板的存储器的电路;用于由所述加速器板利用第二比特流来配置所述加速器设备以建立第二内核的电路;以及用于由所述加速器板执行所述第二内核的单元,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
示例41包括示例40的主题,并且还包括用于获得用于以预先定义的序列来执行一批内核的请求的电路,并且其中,用于利用第一比特流来配置所述加速器设备的电路包括用于响应于以预先定义的序列来执行一批内核的所述请求,利用所述第一比特流来配置所述加速器设备的电路。
示例42包括示例40和41中的任何一个的主题,并且其中,用于利用所述第二比特流来配置所述加速器设备的电路包括:用于确定是否执行所述预先定义的序列中的随后的内核的电路;以及用于响应于确定执行所述预先定义的序列中的随后的内核,利用所述第二比特流来配置所述加速器设备的电路。
示例43包括示例40-42中的任何一个的主题,并且还包括用于将所述预先定义的序列写入所述存储器的电路。
示例44包括示例40-43中的任何一个的主题,并且其中,所述加速器设备是具有槽的现场可编程门阵列,并且其中,用于利用所述第一比特流来配置所述加速器设备的电路包括用于利用所述第一比特流来配置所述槽的电路。
示例45包括示例40-44中的任何一个的主题,并且还包括用于接收用于执行所述第一内核的请求的电路,其中,所述请求包括输入数据,并且其中,用于执行所述第一内核的电路包括用于关于在所述请求中所包括的所述输入数据执行所述第一内核的电路。
示例46包括示例40-45中的任何一个的主题,并且还包括用于将从所述请求所接收的所述输入数据写入所述存储器的电路。
示例47包括示例40-46中的任何一个的主题,并且还包括:用于接收包括所述第一比特流和所述第二比特流的请求的电路;以及用于将所述第一比特流和所述第二比特流写入所述存储器的电路。
示例48包括示例40-47中的任何一个的主题,并且其中,用于利用所述第一比特流来配置所述加速器设备的电路包括用于从所述存储器读取所述第一比特流的电路。
示例49包括示例40-48中的任何一个的主题,并且其中,所述输出数据是第一输出数据,并且用于执行所述第二内核的单元包括用于产生第二输出数据的电路,所述加速器设备还包括用于将所述第二输出数据发送至远程计算设备的电路。
示例50包括示例40-49中的任何一个的主题,并且还包括用于将所述第一输出数据发送至所述远程计算设备的电路。
示例51包括示例40-50中的任何一个的主题,并且其中,用于将所述第二输出数据发送至远程计算设备的电路包括用于将所述第二输出数据发送至计算板的电路。

Claims (25)

1.一种加速器板,包括:
存储器;
耦合至所述存储器的加速器设备,其中,所述加速器设备用于:
(i)利用第一比特流来配置所述加速器设备以建立第一内核;(ii)执行所述第一内核以产生输出数据;(iii)将所述输出数据写入所述存储器;(iv)利用第二比特流来配置所述加速器设备以建立第二内核;以及(v)执行所述第二内核,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
2.根据权利要求1所述的加速器板,其中,所述加速器设备还用于获得用于以预先定义的序列来执行一批内核的请求,并且其中,利用第一比特流来配置所述加速器设备包括响应于用于以预先定义的序列来执行一批内核的所述请求,利用所述第一比特流来配置所述加速器设备。
3.根据权利要求2所述的加速器板,其中,利用所述第二比特流来配置所述加速器设备包括:
确定是否执行所述预先定义的序列中的随后的内核;以及
响应于确定执行所述预先定义的序列中的随后的内核,利用所述第二比特流来配置所述加速器设备。
4.根据权利要求2所述的加速器板,其中,所述加速器设备用于将所述预先定义的序列写入所述存储器。
5.根据权利要求1所述的加速器板,其中,所述加速器设备是具有槽的现场可编程门阵列,并且其中,利用所述第一比特流来配置所述加速器设备包括利用所述第一比特流来配置所述槽。
6.根据权利要求1所述的加速器板,其中,所述加速器设备还用于接收用于执行所述第一内核的请求,其中,所述请求包括输入数据,并且
其中,执行所述第一内核包括关于在所述请求中所包括的所述输入数据来执行所述第一内核。
7.根据权利要求6所述的加速器板,其中,所述加速器设备用于将从所述请求接收的所述输入数据写入所述存储器。
8.根据权利要求1所述的加速器板,其中,所述加速器设备还用于:
接收包括所述第一比特流和所述第二比特流的请求;以及
将所述第一比特流和所述第二比特流写入所述存储器。
9.根据权利要求8所述的加速器板,其中,利用所述第一比特流来配置所述加速器设备包括从所述存储器读取所述第一比特流。
10.根据权利要求1所述的加速器板,其中,所述输出数据是第一输出数据,其中,执行所述第二内核包括产生第二输出数据,并且所述加速器设备还用于将所述第二输出数据发送至远程计算设备。
11.根据权利要求10所述的加速器板,其中,所述加速器设备还用于将所述第一输出数据发送至所述远程计算设备。
12.根据权利要求10所述的加速器板,其中,将第二输出数据发送至远程计算设备包括将所述第二输出数据发送至计算板。
13.一种加速器板,包括:
用于由加速器板利用第一比特流来配置所述加速器板的加速器设备以建立第一内核的电路;
用于由所述加速器板执行所述第一内核以产生输出数据的电路;
用于由所述加速器板将所述输出数据写入所述加速器板的存储器的电路;
用于由所述加速器板利用第二比特流来配置所述加速器设备以建立第二内核的电路;以及
用于由所述加速器板执行所述第二内核的单元,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
14.根据权利要求13所述的加速器板,还包括用于获得用于以预先定义的序列来执行一批内核的请求的电路,并且其中,用于利用第一比特流来配置所述加速器设备的所述电路包括用于响应于用于以预先定义的序列来执行一批内核的所述请求,利用所述第一比特流来配置所述加速器设备的电路。
15.根据权利要求14所述的加速器板,其中,用于利用所述第二比特流来配置所述加速器设备的所述电路包括:
用于确定是否执行所述预先定义的序列中的随后的内核的电路;以及
用于响应于确定执行所述预先定义的序列中的随后的内核,利用所述第二比特流来配置所述加速器设备的电路。
16.根据权利要求14所述的加速器板,还包括用于将所述预先定义的序列写入所述存储器的电路。
17.根据权利要求13所述的加速器板,其中,所述加速器设备是具有槽的现场可编程门阵列,并且其中,用于利用所述第一比特流来配置所述加速器设备的所述电路包括用于利用所述第一比特流来配置所述槽的电路。
18.根据权利要求13所述的加速器板,还包括用于接收用于执行所述第一内核的请求的电路,其中,所述请求包括输入数据,并且
其中,用于执行所述第一内核的所述电路包括用于关于在所述请求中所包括的所述输入数据来执行所述第一内核的电路。
19.根据权利要求18所述的加速器板,还包括用于将从所述请求接收的所述输入数据写入所述存储器的电路。
20.根据权利要求13所述的加速器板,还包括:
用于接收包括所述第一比特流和所述第二比特流的请求的电路;以及
用于将所述第一比特流和所述第二比特流写入所述存储器的电路。
21.根据权利要求20所述的加速器板,其中,用于利用所述第一比特流来配置所述加速器设备的所述电路包括用于从所述存储器读取所述第一比特流的电路。
22.根据权利要求13所述的加速器板,其中,所述输出数据是第一输出数据,并且用于执行所述第二内核的单元包括用于产生第二输出数据的电路,所述加速器板还包括用于将所述第二输出数据发送至远程计算设备的电路。
23.根据权利要求22所述的加速器板,还包括用于将所述第一输出数据发送至所述远程计算设备的电路。
24.根据权利要求22所述的计数器板,其中,用于将所述第二输出数据发送至远程计算设备的所述电路包括用于将所述第二输出数据发送至计算板的电路。
25.一种方法,包括:
由加速器板利用第一比特流来配置所述加速器板的加速器设备以建立第一内核;
由所述加速器板来执行所述第一内核以产生输出数据;
由所述加速器板将所述输出数据写入所述加速器板的存储器;
由所述加速器板利用第二比特流来配置所述加速器设备以建立第二内核;以及
由所述加速器板执行所述第二内核,其中,所述存储器中的所述输出数据被用作对所述第二内核的输入数据。
CN201810846889.3A 2017-08-30 2018-07-27 用于在加速器设备中提供高效内核供应的技术 Pending CN109426452A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
IN201741030632 2017-08-30
IN201741030632 2017-08-30
US201762584401P 2017-11-10 2017-11-10
US62/584,401 2017-11-10
US15/859,365 2017-12-30
US15/859,365 US11119835B2 (en) 2017-08-30 2017-12-30 Technologies for providing efficient reprovisioning in an accelerator device

Publications (1)

Publication Number Publication Date
CN109426452A true CN109426452A (zh) 2019-03-05

Family

ID=65513714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810846889.3A Pending CN109426452A (zh) 2017-08-30 2018-07-27 用于在加速器设备中提供高效内核供应的技术

Country Status (1)

Country Link
CN (1) CN109426452A (zh)

Similar Documents

Publication Publication Date Title
CN109428841A (zh) 针对自动化网络拥塞管理的技术
US11522682B2 (en) Technologies for providing streamlined provisioning of accelerated functions in a disaggregated architecture
US11861424B2 (en) Technologies for providing efficient reprovisioning in an accelerator device
US11228539B2 (en) Technologies for managing disaggregated accelerator networks based on remote direct memory access
EP3731063B1 (en) Technologies for providing adaptive power management in an accelerator sled
EP3731091A1 (en) Technologies for providing an accelerator device discovery service
CN115136565A (zh) 用于在分解环境中提供先进资源管理的技术
EP3451632A1 (en) Technologies for pre-configuring accelerators by predicting bit-streams
EP3739448B1 (en) Technologies for compressing communication for accelerator devices
EP3716088B1 (en) Technologies for flexible protocol acceleration
EP3757785A1 (en) Technologies for facilitating remote memory requests in accelerator devices
CN109426452A (zh) 用于在加速器设备中提供高效内核供应的技术
EP3757786A1 (en) Technologies for providing inter-kernel application programming interfaces for an accelerated architecture
US20230418686A1 (en) Technologies for providing efficient pooling for a hyper converged infrastructure
CN109426629A (zh) 用于通过预测位流来预配置加速器的技术
EP3731095A1 (en) Technologies for providing inter-kernel communication abstraction to support scale-up and scale-out

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