CN114253899A - 用于缩放用于加速器设备内核的内核间技术的技术 - Google Patents
用于缩放用于加速器设备内核的内核间技术的技术 Download PDFInfo
- Publication number
- CN114253899A CN114253899A CN202110980607.0A CN202110980607A CN114253899A CN 114253899 A CN114253899 A CN 114253899A CN 202110980607 A CN202110980607 A CN 202110980607A CN 114253899 A CN114253899 A CN 114253899A
- Authority
- CN
- China
- Prior art keywords
- programmable logic
- data
- inter
- core
- activation function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Cooling Or The Like Of Electrical Apparatus (AREA)
Abstract
使用一个或多个半导体设备进行内核间通信的系统和方法。半导体设备包括内核。除非执行操作,否则内核处于非活动状态。第一设备的一个内核可以监控事件的数据。一旦事件已发生,内核就向第一内核间通信电路发送指示。内核间通信电路:确定要生成多个激活函数中的一个激活函数,生成该激活函数,并使用点对点连接将该激活函数传输到第二设备的第二内核,以进行唤醒并执行功能。
Description
背景技术
诸如现场可编程门阵列(FPGA)之类的加速器设备可以被配置(例如,通过定义FPGA的门的配置的位流)来执行功能集合,这里称为内核。内核可以通过内核开发者方面的耗时工作来配置为建立与另一加速器设备内核(例如,同一FPGA中的另一内核、另一FPGA中的内核或诸如图形处理单元(GPU)之类的另一类型的加速器设备的内核,等等)的连接,并与该另一内核共享数据以促进工作负载的完成(例如,要执行的操作集合)。通常,通信协议的细节必须由内核开发者在内核中设置,并且由于内核的主要目的是尽可能高效地执行操作集合(例如,工作负载),因此如果加速器设备内核恰好在某种类型的通信路径(例如,PCIe总线)上可用,则可以将内核的通信方面限制为与单一类型的加速器设备内核进行通信。虽然一些数据中心可以利用通过各种类型的通信路径(也称为I/O通道或通信通道)可用的解聚资源(例如,加速器设备)的池,但给定的加速器设备内核可能由于用于以点对点(peer-to-peer)方式进行通信的加速器设备内核的有限通信能力,而无法访问(例如,与其协同地执行工作负载)很大比例的这些其它加速器设备。
附图说明
在附图中通过示例而非限制的方式来说明本文描述的概念。为了图示的简单和清楚起见,图中所示的元件不一定按比例绘制。在认为合适的情况下,在图中重复了附图标记以指示对应或类似的元件。
图1是根据本公开的实施例的用于以解聚的资源执行工作负载的数据中心的至少一个实施例的简化图;
图2是根据本公开的实施例可以包含于图1的数据中心中的pod的至少一个实施例的简化图;
图3是根据本公开的实施例可以包含于图2的pod中的机架的至少一个实施例的透视图;
图4是根据本公开的实施例的图3的机架的侧视图;
图5是根据本公开的实施例的具有安装于其中的托架(sled)的图3的机架的透视图;
图6是根据本公开的实施例的图5的托架的顶侧的至少一个实施例的简化框图;
图7是根据本公开的实施例的图6的托架的底侧的至少一个实施例的简化框图;
图8是根据本公开的实施例的可在图1的数据中心中使用的计算托架的至少一个实施例的简化框图;
图9是根据本公开的实施例的图8的计算托架的至少一个实施例的顶部透视图;
图10是根据本公开的实施例的可在图1的数据中心中使用的加速器托架的至少一个实施例的简化框图;
图11是根据本公开的实施例的图10的加速器托架的至少一个实施例的顶部透视图;
图12是根据本公开的实施例的可在图1的数据中心中使用的存储托架的至少一个实施例的简化框图;
图13是根据本公开的实施例的图12的存储托架的至少一个实施例的顶部透视图;
图14是根据本公开的实施例的可在图1的数据中心中使用的存储器托架的至少一个实施例的简化框图;
图15是根据本公开的实施例的可以在图1的数据中心内建立的系统的简化框图,以用由解聚的资源组成的受管节点来执行工作负载;
图16是根据本公开的实施例的用于为加速器设备内核提供I/O通道的系统的至少一个实施例的简化图;
图17-20是根据本公开的实施例的可以由包含于图16的系统中的加速器设备执行的用于为加速器设备内核提供I/O通道的方法的至少一个实施例的简化框图;
图21是根据本公开的实施例的详述具有扩展内核间通信的FPGA间通信的系统的框图;
图22是根据本公开的实施例的详述扩展内核间通信的架构的框图;
图23是根据本公开的实施例的用于对集成电路进行编程的系统的框图;
图24是根据本公开的实施例的图23的集成电路的框图;
图25是根据本公开的实施例的具有扩展内核间通信的FPGA的高级系统的框图;以及
图26是根据本公开的实施例的可以利用内核间通信的数据处理系统。
具体实施方式
虽然本公开的概念易于进行各种修改和替代形式,但是其特定实施例已经通过示例的方式在附图中示出并且将在本文中详细描述。然而,应当理解,无意将本公开的概念限制于所公开的特定形式,而是相反,其意图是涵盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。在介绍本公开的各种实施例的元素时,冠词“一(a)”、“一个(an)”和“该(the)”旨在表示存在一个或多个元素。术语“包括”、“包含”和“具有”旨在是包含性的,并且表示除了所列元素之外可能还存在附加元素。此外,应当理解,对本公开的“一个实施例”或“实施例”的引用并不旨在被解释为排除也包括了所记载特征的附加实施例的存在。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用表明所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或不包括该特定特征、结构或特性。而且,这样的短语不一定指的是同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其它实施例(无论是否进行了明确描述)实现这种特征、结构或特性在本领域技术人员的知识范围内。此外,应当理解,包含于“A、B和C中的至少一个”、“A、B或C中的至少一个”或“A或B”形式的列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质(其由一个或多个处理器读取和执行)承载或存储于其上的指令。机器可读存储介质可以体现为用于以机器可读的形式存储或传输信息的任何存储设备、机构或其它物理结构(例如,易失性或非易失性存储器、媒体盘或其它介质设备)。
在附图中,一些结构或方法特征可以以特定布置和/或次序示出。然而,应当理解,可能不需要这样的特定布置和/或次序。而是,在一些实施例中,这些特征可以以不同于说明性图中所示的方式和/或次序布置。此外,在特定图中包括结构或方法特征并不意味着在所有实施例中都需要这样的特征,并且在一些实施例中,这样的特征可以不被包括或可以与其它特征组合。
在许多场景中,来自连接客户端的有条件的、实时的、低延时的响应可能是有用的。“有条件”表示仅在达到特定动作或阈值(例如,温度大于40℃)时才会生成响应。例如,无人机可能会持续捕捉监控录像,但只有在一些情况下,无人机才会在标示警报之前请求来自街道监视器/相机的确认。要确认的环境可以包括无人机的相机检测到潜在异常或使用牌照/颜色/汽车品牌的特定汽车(例如,通缉的)。
在这样的场景中,无人机上的可编程逻辑设备(PLD)(例如,现场可编程门阵列(FPGA))可以将信息(例如,激活函数)传输到街道上一个或多个连接的相机中的PLD,以高精度和准确度执行特定任务,例如,可能使用算法来确认或识别汽车。PLD可能还需要尽可能快地执行确认(以子响应时间),因为汽车正在快速移动,并且如果找到匹配,将快速标记警报。
在某个其它场景中,无人机可以用连接到本地相机、传感器、其它无人机和/或其它处理资源上的FPGA/PLD/其它电路的无人机的FPGA/PLD来标记某个其它事件。使用这些情况或其它实现方式,PLD可以针对任务利用超低延时计算和点对点“激活函数”来激活并与其它计算资源共享操作。例如,激活函数可以是特定的图像匹配算法,以通过本地相机仔细检查(double-check)汽车/驾驶员的某个方面。另一示例可以是基于无人机观察到的汽车所采取的轨迹,将相同的激活函数多播到多个资源(例如,本地相机)。为了实现激活函数的投射(casting),PLD可以利用从一个PLD到另一PLD的函数的点对点激活,同时在不使用辅助服务器的情况下以超低延时响应时间执行功能。在一些实施例中,内核间通信可以是可从OpenCL和/或寄存器传输级(RTL)调用的。
现在参考图1,其中解聚的资源可以协同执行一个或多个工作负载(例如,代表客户的应用)的数据中心100包括多个pod 110、120、130、140,这些pod中的每一个包括一行或多行机架。当然,虽然数据中心100被示出为具有多个pod,但在一些实施例中,数据中心100可以体现为单个pod。如本文更详细描述的,每个机架容纳多个托架,每个托架可以主要配备有特定类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器),即,可以是逻辑地耦合以形成组合节点的资源,该节点可以充当例如服务器。在图示实施例中,每个pod 110、120、130、140中的托架连接到多个pod交换机(例如,路由去往和来自pod内的托架的数据通信的交换机)。pod交换机进而与在数据中心100中的pod(例如,pod 110、120、130、140)之间交换通信的主干交换机150连接。在一些实施例中,托架可以使用Intel全路径技术(Omni-Path technology)与结构连接。在其它实施例中,托架可以与其它结构(例如,InfiniBand或以太网)连接。如本文更详细描述的,数据中心100中的托架内的资源可以被分配给包含来自一个或多个托架的资源的组(本文中称为“受管节点”)以在工作负载的执行中被共同利用。工作负载可以就像属于受管节点的资源位于同一托架上一样执行。在受管节点中的资源可以属于托架,这些托架可以属于不同机架,并且甚至属于不同的pod110、120、130、140。因此,单个托架的一些资源可能会分配给一个受管节点,而同一托架的其它资源被分配给不同的受管节点(例如,一个处理器被指派给一个受管节点,而同一托架的另一处理器被指派给不同的受管节点)。
包括解聚资源的数据中心(例如,数据中心100)可以:用于各种各样的上下文中,例如企业、政府、云服务提供商和通信服务提供商(例如,Telco’s);以及以各种大小使用,从云服务提供商的消耗超过100,000平方英尺的大型数据中心到用于基站的单机架或多机架安装。
将资源解聚到包括单一类型资源的托架(例如,主要包括计算资源的计算托架,主要包含存储器资源的存储器托架),以及解聚的资源的选择性分配和解除分配以形成被指派以执行工作负载的受管节点,相对于包括超融合服务器(hyper converged server)(其在单个机箱中包含计算、存储器、存储和可能的附加资源)的典型数据中心改进了数据中心100的操作和资源使用。例如,由于托架主要包含特定类型的资源,因此可以独立于其它资源升级给定类型的资源。此外,由于不同的资源类型(处理器、存储、加速器等)通常具有不同的刷新率,因此可以实现更高的资源利用率和更低的总拥有成本。例如,数据中心操作者可以通过只换出计算托架来升级整个设施中的处理器。在这种情况下,加速器和存储资源可能不会同时升级,而是可以被允许继续操作,直到这些资源被调度用于它们自己的刷新。资源利用率也可能增加。例如,如果受管节点是基于将在其上运行的工作负载的要求来组成的,则节点内的资源更有可能得到充分利用。这种利用可以允许更多受管节点在具有给定资源集的数据中心中运行,或者允许使用更少资源来构建被预期运行给定工作负载集的数据中心。
现在参考图2,在说明性实施例中,pod 110包括机架240行200、210、220、230的集合。每个机架240可以容纳多个托架(例如,十六个托架),并且向被容纳的托架提供电力和数据连接,如本文更详细描述的。在说明性实施例中,每行200、210、220、230中的机架连接到多个pod交换机250、260。pod交换机250包括:端口252的集合,其连接到pod 110的机架的托架;以及端口254的另一集合,其将pod 110连接到主干交换机150以提供到数据中心100中的其它pod的连接性。类似地,pod交换机260包括:pod 110的机架的托架所连接的端口262的集合;以及将pod 110连接到主干交换机150的端口264的另一集合。这样,交换机对250、260的使用向pod 110提供了一定量的冗余。例如,如果交换机250、260中的任一个发生故障,则pod 110中的托架仍可以通过另一交换机250、260与数据中心100的其余部分(例如,其它pod的托架)保持数据通信。此外,在说明性实施例中,交换机150、250、260可以体现为双模光学交换机,能够路由以下二者:承载互联网协议(IP)分组的以太网协议通信,以及根据第二高性能链路层协议(例如,Intel的全路径架构、InfiniBand、PCI Express)经由光学结构的光学信令介质的通信。
应当理解,其它pod 120、130、140(以及数据中心100的任何附加pod)中的每一个可以与在图2中示出和关于图2描述的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还包括一个或多个水平对310的细长支撑臂312(在图3中经由虚线椭圆标识),其被配置为支撑数据中心100的托架,如下所述。一对细长支撑臂312中的一个细长支撑臂312从细长支撑柱302向外延伸,而另一细长支撑臂312从细长支撑柱304向外延伸。
在说明性实施例中,数据中心100的每个托架被体现为无机箱托架。也就是说,每个托架具有无机箱电路板衬底,物理资源(例如,处理器、存储器、加速器、存储设备等)安装在该衬底上,如下文更详细讨论的。这样,机架240被配置为接收无机箱托架。例如,每对310细长支撑臂312限定机架240的托架槽320,其被配置为接收对应的无机箱托架。为此,每个说明性的细长支撑臂312包括电路板引导件330,其被配置为接收托架的无机箱电路板衬底。每个电路板引导件330被固定到或以其它方式安装到对应的细长支撑臂312的顶侧332。例如,在说明性实施例中,每个电路板引导件330相对于对应的细长支撑柱302、304安装在对应的细长支撑臂312的远端。为了附图清楚起见,并非每个电路板引导件330都在每幅图中被引用。
每个电路板引导件330包括限定电路板槽380的内壁,该电路板槽380被配置为当托架400被接收于支架240的对应托架槽320中时接收托架400的无机箱电路板衬底。为此,如图4所示,用户(或机器人)将说明性的无机箱托架400的无机箱电路板衬底与托架槽320对齐。然后,用户或机器人可将无机箱电路板衬底向前滑动到托架槽320中,使得无机箱电路板衬底的每个侧边414被接收于限定对应托架槽320的一对310细长支撑臂312的电路板引导件330的对应电路板槽380中,如图4中所示。通过使机器人可访问和机器人可操纵托架包括解聚资源,每种类型的资源都可以彼此独立地升级,并以它们自己优化的刷新率进行升级。此外,托架被配置为使得能够与每个机架240中的电力和数据通信电缆盲配合,以增强它们被快速移除、升级、重新安装和/或更换的能力。这样,在一些实施例中,数据中心100可以在没有人为参与数据中心楼层的情况下操作(例如,执行工作负载、进行维护和/或升级等)。在其它实施例中,人可以促进数据中心100中的一个或多个维护或升级操作。
应当理解,每个电路板引导件330可以是双面的。也就是说,每个电路板引导件330包括内壁,该内壁在电路板引导件330的每一侧上限定电路板槽380。以这种方式,每个电路板引导件330可以在任一侧支撑无机箱电路板衬底。这样,单个附加的细长支撑柱可以被添加到机架240以将机架240转变为双机架解决方案,其可以容纳数量两倍于图3所示的托架槽320。说明性机架240包括七对310细长支撑臂312,其限定了对应的七个托架槽320,每个都被配置为接收和支撑如上所述的对应托架400。当然,在其它实施例中,机架240可以包括附加或更少对310的细长支撑臂312(即,附加的或更少的托架槽320)。应当理解,因为托架400是无机箱的,所以托架400可以具有不同于典型服务器的总高度。因此,在一些实施例中,每个托架槽320的高度可以比典型服务器的高度更短(例如,比单个等级(rank)单元“1U”更短)。也就是说,在每对310细长支撑臂312之间的垂直距离可以小于标准机架单元“1U”。另外,由于托架槽320的高度相对减小,因此在一些实施例中机架240的总高度可能比传统机架外壳的高度更短。例如,在一些实施例中,细长支撑柱302、304中的每一个可以具有六英尺或更短的长度。同样,在其它实施例中,机架240可以具有不同的尺寸。例如,在一些实施例中,每对310细长支撑臂312之间的垂直距离可以大于标准机架单元“1U”。在这样的实施例中,在托架之间增加的垂直距离允许将更大的散热器(heat sink)附接到物理资源,并且允许使用更大的风扇(例如,在下面描述的风扇阵列370中)来冷却每个托架,这转而可以允许物理资源以增加的功率水平操作。此外,应当理解,机架240不包括任何壁、外壳等。相反,机架240是对本地环境开放的无外壳机架。当然,在一些情况下,在机架240形成数据中心100中的行尾机架的那些情况下,端板可以附接到细长支撑柱302、304之一。
在一些实施例中,各种互连可以向上或向下路由通过细长支撑柱302、304。为了促进这种路由,每个细长支撑柱302、304包括限定互连位于其中的内室的内壁。通过细长支撑柱302、304路由的互连可以体现为任何类型的互连,包括但不限于:数据或通信互连,用于向每个托架槽320提供通信连接;电力互连,用于向每个托架槽320提供电力;和/或其它类型的互连。
在说明性实施例中,机架240包括支撑平台,对应的光学数据连接器(未示出)安装在该支撑平台上。每个光学数据连接器与对应的托架槽320相关联,并且被配置为在托架400被接收于对应的托架槽320中时与对应的托架400的光学数据连接器配合。在一些实施例中,数据中心100中的组件(例如,托架、机架和交换机)之间的光学连接用盲配光学连接进行。例如,每条光缆上的门(door)可以防止灰尘污染电缆内的光纤。在连接到盲配光学连接器机构的过程中,当电缆末端接近或进入连接器机构时,门被推开。随后,电缆内部的光纤可以进入连接器机构内的凝胶,并且一根电缆的光纤与连接器机构内部凝胶内的另一根电缆的光纤接触。
说明性机架240还包括耦合到机架240的交叉支撑臂的风扇阵列370。风扇阵列370包括一行或多行冷却风扇372,它们在细长支撑柱302、304之间的水平线上对齐。在说明性实施例中,风扇阵列370包括用于机架240的每个托架槽320的一行冷却风扇372。如上所述,在说明性实施例中,每个托架400不包括任何机载冷却系统,并因此风扇阵列370为被接收于机架240中的每个托架400提供冷却。在说明性实施例中,每个机架240还包括与每个托架槽320相关联的电源。每个电源被固定到限定对应托架槽320的一对310细长支撑臂312中的细长支撑臂312之一。例如,机架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、或者作为被优化或以其它方式配置以执行其它专门任务的托架,例如下面关于图14讨论的存储器托架1400。
如上所述,说明性托架400包括无机箱电路板衬底602,其支持安装在其上的各种物理资源(例如,电气组件)。应当理解,无机箱电路板衬底602是“无机箱”的,因为托架400不包括壳体或外壳。确切地说,无机箱电路板衬底602对本地环境是开放的。无机箱电路板衬底602可以由能够支撑安装在其上的各种电气组件的任何材料形成。例如,在说明性实施例中,无机箱电路板衬底602由FR-4玻璃增强环氧树脂层压材料形成。当然,在其它实施例中,可以使用其它材料来形成无机箱电路板衬底602。
如下文更详细讨论的,无机箱电路板衬底602包括改进安装在无机箱电路板衬底602上的各种电气组件的热冷却特性的多个特征。如所讨论的,无机箱电路板衬底602不包括壳体或外壳,这可以通过减少可能抑制空气流动的那些结构来改善托架400的电气组件上方的气流。例如,因为无机箱电路板衬底602没有定位在个体的壳体或外壳中,所以没有附接到无机箱电路板衬底602的垂直布置的背板(例如,机箱的背板),这可能会阻止空气流过电气组件。另外,无机箱电路板衬底602具有被配置为减小穿过安装到无机箱电路板衬底602的电气组件的气流路径的长度的几何形状。例如,说明性的无机箱电路板衬底602的宽度604大于无机箱电路板衬底602的深度606。在一个特定实施例中,例如,与宽度为约17英寸且深度为约39英寸的典型服务器相比,无机箱电路板衬底602的宽度为约21英寸且深度为约9英寸。这样,从无机箱电路板衬底602的前边缘610向后边缘612延伸的气流路径608相对于典型服务器具有更短的距离,这可以改善托架400的热冷却特性。此外,虽然没有在图6中示出,但安装到无机箱电路板衬底602的各种物理资源被安装在对应的位置,使得没有任何两个实质上发热的电气组件相互遮蔽,如下文更详细讨论的。也就是说,没有在操作期间产生可感知热量(即,其大于足以对另一电气组件的冷却产生不利影响的标称热量)的两个电气组件沿着气流路径608的方向(即,沿着从无机箱电路板衬底602的前边缘610向后边缘612延伸的方向)彼此线性直排(in-line)安装到无机箱电路板衬底602。
如上所述,说明性托架400包括一个或多个物理资源620,其安装到无机箱电路板衬底602的顶侧650。虽然图6中示出了两个物理资源620,但应当理解,在其它实施例中,托架400可以包括一个、两个或更多个物理资源620。物理资源620可以体现为任何类型的处理器、控制器或其它计算电路,其能够执行各种任务,例如计算功能和/或控制托架400的功能(取决于例如托架400的类型或预期功能)。例如,如下文更详细讨论的,物理资源620可以:在托架400体现为计算托架的实施例中,体现为高性能处理器;在托架400体现为加速器托架的实施例中,体现为加速器协处理器或电路;在托架400体现为存储托架的实施例中,体现为存储控制器;或者在托架400体现为存储器托架的实施例中,体现为存储器设备集合。
托架400还包括一个或多个附加物理资源630,其安装到无机箱电路板衬底602的顶侧650。在说明性实施例中,附加物理资源包括如下文更详细讨论的网络接口控制器(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可以体现为快速路径(QuickPath)互连(QPI)、UltraPath互连(UPI)或专用于资源到资源通信的其它高速点对点互连。
托架400还包括电源连接器640,该电源连接器640被配置为当托架400安装在对应的机架240中时与机架240的对应电源连接器配合。托架400从机架240的电源经由电源连接器640接收电力以向托架400的各种电气组件供电。也就是说,托架400不包括任何本地电源(即,机载电源)来为托架400的电气组件提供电力。排除本地或机载电源促进减少无机箱电路板衬底602的总占地面积,这可以增加安装在无机箱电路板衬底602上的各种电气组件的热冷却特性,如上所述。在一些实施例中,电压调节器被放置在与处理器820(见图8)直接相对的无机箱电路板衬底602的底侧750(见图7)上,并且电力从电压调节器通过延伸穿过无机箱电路板衬底602的通孔路由到处理器820。相对于其中处理器电力从电压调节器部分地通过印刷电路迹线输送的典型的印刷电路板,这种配置提供了增加的热预算、附加的电流和/或电压、以及更好的电压控制。
在一些实施例中,托架400还可以包括安装特征642,其被配置为与机器人的安装臂或其它结构配合,以促进机器人将托架600放置在机架240中。安装特征642可以体现为允许机器人抓住托架400而不损坏无机箱电路板衬底602或安装到其上的电气组件的任何类型的物理结构。例如,在一些实施例中,安装特征642可以体现为附接到无机箱电路板衬底602的非导电焊盘。在其它实施例中,安装特征可以体现为附接到无机箱电路板衬底602的支架(bracket)、吊带架(brace)或其它类似结构。安装特征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技术的那些。存储器设备还可以包括下一代非易失性设备,例如Intel3D 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以高于典型处理器(其以大约155-230W操作)的额定功率操作时生成附加的热量,但上文讨论的无机箱电路板衬底602的增强的热冷却特性促进了更高功率操作。例如,在说明性实施例中,处理器820被配置为以至少250W的额定功率操作。在一些实施例中,处理器820可以被配置为以至少350W的额定功率操作。
在一些实施例中,计算托架800还可以包括处理器到处理器互连842。类似于上面讨论的托架400的资源到资源互连624,处理器到处理器互连842可以体现为能够促进处理器到处理器互连842通信的任何类型的通信互连。在说明性实施例中,处理器到处理器互连842体现为高速点对点互连(例如,比I/O子系统622快)。例如,处理器到处理器互连842可以体现为快速路径互连(QPI)、UltraPath互连(UPI)或专用于处理器到处理器通信的其它高速点对点互连。
计算托架800还包括通信电路830。说明性通信电路830包括网络接口控制器(NIC)832,其也可以被称为主机结构接口(HFI)。NIC 832可以体现为或以其它方式包括任何类型的集成电路、分立电路、控制器芯片、芯片组、插件板、子卡、网络接口卡或可以由计算托架800用于与另一计算设备(例如,与其它托架400)连接的其它设备。在一些实施例中,NIC832可以体现为包括一个或多个处理器的片上系统(SoC)的一部分,或者被包括在还包含一个或多个处理器的多芯片封装中。在一些实施例中,NIC832可以包括本地处理器(未示出)和/或本地存储器(未示出),二者都位于NIC 832的本地。在这样的实施例中,NIC 832的本地处理器能够执行处理器820的一项或多项功能。另外或替代地,在此类实施例中,NIC 832的本地存储器可以以板级、插口级、芯片级和/或其它级别集成到计算托架的一个或多个组件中。
通信电路830通信地耦合到光学数据连接器834。当计算托架800安装在机架240中时,光学数据连接器834被配置为与机架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。例如,各种物理资源可以安装在对应的插口(例如,处理器插口)、保持器(holder)或支架中。在一些情况下,一些电气组件可以经由焊接或类似技术直接安装到无机箱电路板衬底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的底侧上的一个或多个存储器夹层(memory mezzanine),并且可以通过球栅阵列与对应的处理器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)、UltraPath互连(UPI)或专用于处理器到处理器通信的其它高速点对点互连。在一些实施例中,加速器电路1020可以与以下各项进行菊花链:主加速器电路1020,其通过I/O子系统622连接到NIC 832和存储器设备720;以及辅助加速器电路1020,其通过主加速器电路1020连接到NIC 832和存储器设备720。
现在参考图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可以比传统散热器更大,这是因为由位于无机箱电路板衬底602的底侧750上而不是位于顶侧650上的存储器设备720提供的“自由”区域。
现在参考图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中的存储和取回。在说明性实施例中,存储控制器1220体现为相对低功率的处理器或控制器。例如,在一些实施例中,存储控制器1220可以被配置为在大约75瓦的额定功率下操作。
在一些实施例中,存储托架1200还可以包括控制器到控制器互连1242。类似于上面讨论的托架400的资源到资源互连624,控制器到控制器互连1242可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242体现为高速点对点互连(例如,比I/O子系统622快)。例如,控制器到控制器互连1242可以体现为快速路径互连(QPI)、UltraPath互连(UPI)或专用于处理器到处理器通信的其它高速点对点互连。
现在参考图13,示出了存储托架1200的说明性实施例。在说明性实施例中,数据存储设备1250体现为或以其它方式包括存储笼(storage cage)1252,其被配置为容纳一个或多个固态驱动器(SSD)1254。为此,存储笼1252包括多个安装槽1256,每个安装槽1256都被配置为接收对应的固态驱动器1254。每个安装槽1256包括多个驱动器引导件1258,它们协作以限定对应安装槽1256的接入开口1260。存储笼1252固定到无机箱电路板衬底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发送请求以执行存储器访问操作(例如,读取或写入)相关联的任何权限(例如,读取、写入等)。
在一些实施例中,存储器托架1400还可以包括控制器到控制器互连1442。类似于上面讨论的托架400的资源到资源互连624,控制器到控制器互连1442可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1442体现为高速点对点互连(例如,比I/O子系统622快)。例如,控制器到控制器互连1442可以体现为快速路径互连(QPI)、UltraPath互连(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(即,接收)通路(lane)和16个Tx(即,发射)通路的64毫米波导。在说明性实施例中,每个通路是16GHz或32GHz。在其它实施例中,频率可以不同。使用波导可以向另一托架(例如,与存储器托架1400在相同的机架240或与相邻的机架240中的托架400)提供对存储器池(例如,存储器集1430、1432)的高吞吐量访问,而不增加光学数据连接器834上的负载。
现在参考图15,可以根据数据中心100来实现用于执行一个或多个工作负载(例如,应用)的系统。在说明性实施例中,系统1510包括协调器服务器1520,其可以体现为包括计算设备(例如,在计算托架800上的处理器820)的受管节点,所述计算设备执行管理软件(例如,云操作环境,例如OpenStack),该管理软件通信地耦合到多个托架400,包括大量计算托架1530(例如,均类似于计算托架800)、存储器托架1540(例如,均类似于存储器托架1400)、加速器托架1550(例如,均类似于加速器托架1000)和存储托架1560(例如,均类似于存储托架1200)。托架1530、1540、1550、1560中的一个或多个可以例如由协调器服务器1520分组到受管节点1570中,以共同执行工作负载(例如,在虚拟机或容器中执行的应用1532)。受管节点1570可以体现为来自相同或不同托架400的物理资源620的组装件,例如处理器820、存储器设备720、加速器电路1020或数据存储设备1250。此外,可以由协调器服务器1520在将工作负载指派给受管节点时或在任何其它时间创建、定义或“自旋向上(spinup)”受管节点,并且无论当前是否有任何工作负载被指派给受管节点,受管节点都可以存在。在说明性实施例中,协调器服务器1520可以根据与工作负载(例如,应用1532)的服务水平协议相关联的服务质量(QoS)目标(例如,与吞吐量、延时、每秒指令等相关联的性能目标),选择性地从托架400分配和/或解除分配物理资源620和/或从受管节点1570添加或移除一个或多个托架400。这样做时,协调器服务器1520可以接收指示受管节点1570的每个托架400中的性能条件(例如,吞吐量、延时、每秒指令等)的遥测数据,并将遥测数据与服务质量目标进行比较以确定是否满足服务质量目标。协调器服务器1520可以另外确定一个或多个物理资源是否可以从受管节点1570解除分配,同时仍然满足QoS目标,由此释放那些物理资源以供在另一受管节点中使用(例如,执行不同的工作负载)。替代地,如果当前不满足QoS目标,则协调器服务器1520可以确定在工作负载正在执行的同时动态分配附加的物理资源以协助工作负载(例如,应用1532)的执行。类似地,如果协调器服务器1520确定解除分配物理资源将造成仍然满足QoS目标,则协调器服务器1520可以确定从受管节点动态地解除分配物理资源。
另外,在一些实施例中,协调器服务器1520可以识别工作负载(例如,应用1532)的资源利用率的趋势,例如通过识别工作负载(例如,应用1532)的执行阶段(例如,其中执行不同操作的时间段,每个操作具有不同的资源利用率特性),并抢占地识别数据中心100中的可用资源并将它们分配给受管节点1570(例如,在相关联阶段开始的预先定义时间段内)。在一些实施例中,协调器服务器1520可以基于各种延时和分布方案对性能进行建模,以在数据中心100中的计算托架和其它资源(例如,加速器托架、存储器托架、存储托架)之间放置工作负载。例如,协调器服务器1520可以利用考虑到托架400上的资源的性能(例如,FPGA性能、存储器访问延时等)和通过网络到资源(例如,FPGA)的路径的性能(例如,拥塞、延时、带宽)的模型。这样,协调器服务器1520可以基于与数据中心100中可用的每个潜在资源相关联的总延时(例如,附加于与通过网络(其在执行工作负载的计算托架和资源所在的托架400之间)的路径相关联的延时之外,与资源本身的性能相关联的延时),来确定哪个(哪些)资源应该与哪些工作负载一起使用。
在一些实施例中,协调器服务器1520可以使用从托架400报告的遥测数据(例如,温度、风扇速度等)来生成数据中心100中的热量生成图,并且根据与不同工作负载相关联的热量生成和预测热量生成的图,将资源分配给受管节点,以维持数据中心100中的目标温度和热量分布。另外或替代地,在一些实施例中,协调器服务器1520可以将接收到的遥测数据组织成层级模型(hierarchical model),该模型指示受管节点之间的关系(例如,空间关系,例如数据中心100内受管节点的资源的位置,和/或功能关系,例如按照受管节点提供服务的客户对受管节点的分组、通常由受管节点执行的功能类型、通常在彼此之间共享或交换工作负载的受管节点等)。基于受管节点中位置和资源的差异,给定的工作负载可能跨不同受管节点的资源展现出不同的资源利用率(例如,造成不同的内部温度、使用不同百分比的处理器或存储器容量)。协调器服务器1520可以基于存储在层级模型中的遥测数据来确定差异,并且如果工作负载从一个受管节点重新指派到另一受管节点,则将该差异作为对工作负载的未来资源利用率的预测的因素,以准确地平衡数据中心100中资源的利用率。
为了减少协调器服务器1520上的计算负载和网络上的数据传输负载,在一些实施例中,协调器服务器1520可以向托架400发送自测试信息,以使每个托架400能够在本地(例如,在托架400上)确定由托架400生成的遥测数据是否满足一个或多个条件(例如,满足预先定义阈值的可用容量、满足预先定义阈值的温度等)。每个托架400然后可以向协调器服务器1520报告回简化的结果(例如,是或否),协调器服务器1520可以利用该结果来确定对受管节点的资源分配。
现在参考图16,用于为加速器设备内核提供I/O通道的系统1600包括多个加速器托架1610、1612以及计算托架1614,它们彼此通信并与协调器服务器1616通信,该协调器服务器1616也可称为遥测服务设备。每个加速器托架1610、1612类似于图10的加速器托架1000。虽然为清楚起见示出了两个加速器托架1610、1612,但应理解,系统1600可以具有不同数量的加速器托架(例如,数十、数百或数千个),并且可以包括其它类型的托架(存储器、存储设备等)。在说明性实施例中,加速器托架1610包括两个加速器设备1620、1622,类似于图10的加速器托架1000的加速器电路1020。在说明性实施例中,每个加速器设备1620、1622是FPGA。然而,加速器设备1620、1622可以包括任何其它合适的可编程逻辑设备。FPGA1620的门被分成两个插槽1630、1632(例如,每个插槽是FPGA 1620中存在的门的子集)。每个插槽1630、1632实现对应的内核1660、1662,其中的每一个内核都可以体现为门的集合,其被配置为执行功能集合(例如,从诸如计算托架1614之类的计算托架卸载的操作,以增加代表客户(本文也称为租户)执行工作负载(例如,由处理器1680执行的应用1682)的速度)。另外,在说明性实施例中,每个插槽1630、1632包括通信单元1640、1642,其可以体现为任何设备或电路(例如,对应插槽1630、1632的门的子集、处理器、控制器等),其被配置为:识别系统1600中可用的其它加速器设备和加速器设备内核,识别在对应内核1660、1662与系统1600中识别出的加速器设备和内核之间的通信路径,并选择性地建立与加速器设备及其相关联的内核中的一个或多个的逻辑通信路径(例如,在对应内核1660、1662的请求下)。通信路径体现为:加速器设备内的底层总线和联网连接(例如,PCIe、以太网、光纤、波导等),在同一托架上的加速器设备之间,或在托架与逻辑通信连接之间,该逻辑通信连接是由通信单元1640、1642暴露给对应内核1660、1662的一个或多个通信路径中的一个。在建立逻辑通信路径时,在说明性实施例中,通信单元1640、1642确定通信容量的量(例如,吞吐量、延时等)以基于与内核相关联的服务质量(QoS)参数(例如,在与内核1660、1662相关联的租户与系统1600的操作员(operator)之间的服务水平协议(SLA)中定义的QoS参数,包含于来自内核1660、1662的请求中的QoS参数,等)来提供给对应的内核1660、1662。此外,通信单元1640、1642持续监控可用性数据(例如,由系统1600中的其它通信单元提供给通信单元1640和/或基于由协调器服务器1616收集到的遥测数据),其指示加速器设备和系统1600中可用的内核、通信路径上的延时(例如,发送和接收数据的时间延迟)和拥塞(例如,业务量(amount of traffic))和/或其它因素。此外,通信单元1640、1642可以通过可用的通信路径不断地修改(例如,重新路由)逻辑通信路径,而不会使内核1660、1662承担管理通信细节的负担。
加速器设备1622包括插槽1634、1636,类似于上述插槽1630、1632。此外,每个插槽1634、1636包括对应的内核1664、1666和通信单元1644、1646,类似于上述通信单元1640、1642。另外,加速器托架1612包括加速器设备1624和1626。在说明性实施例中,加速器设备1624是图形处理单元(GPU),其可以体现为被配置为执行与图形相关的计算(例如,矩阵乘法、向量运算等)的任何设备或电路(例如,可编程逻辑芯片、处理器等),并且在说明性实施例中,加速器设备1626是视觉处理单元(VPU),其可以体现为被配置为执行与机器视觉、机器学习和人工智能相关的操作的任何设备或电路(例如,可编程逻辑芯片、处理器等)。在说明性实施例中,每个加速器设备1624、1626包括对应的内核1668、1670和通信单元1648、1650(类似于上述通信单元1640、1642)。虽然在说明性实施例中,加速器设备1620、1622(FPGA)的每个插槽包括对应的通信单元,但在其它实施例中,每个加速器设备可以有一个通信单元,或者每个托架一个单元。
现在参考图17,在操作中,加速器设备1620可以执行用于为加速器设备内核(例如,内核1660)提供I/O通道(例如,内核间通信)的方法。虽然方法1700被描述为由加速器设备1620执行,但应当理解,任何其它加速器设备1622、1624、1626也可以执行方法1700。方法1700开始于框1702,其中加速器设备1620(例如,通信单元1640)确定是否启用内核间通信(例如,I/O通道)。在说明性实施例中,加速器设备1620(例如,通信单元1640)可以响应于确定加速器设备1620配备有通信单元(例如,通信单元1640)而确定启用内核间通信。在其它实施例中,加速器设备1620(例如,通信单元1640)可以基于其它因素来确定启用内核间通信。无论如何,响应于确定启用内核间通信,方法1700前进到框1704,其中加速器设备1620(例如,通信单元1640)获得指示系统1600中加速器设备内核(例如,加速器设备和在加速器设备上实现的内核)的可用性的可用性数据。这样做时,加速器设备1620(例如,通信单元1640)获得指示系统1600中可用的加速器设备和内核的类型的数据。例如,加速器设备1620(例如,通信单元1640)可以接收这样的数据,其指示:加速器托架1610包括两个都是FPGA的加速器设备1620、1622,并且每个FPGA 1620、1622包括具有对应内核的两个插槽1630、1632、1634、1636。此外,在框1706中,在说明性实施例中,可用性数据指示每个FPGA的每个插槽中的内核能够执行的函数集。例如,在说明性实施例中,可用性数据指示:加速器托架1612包括GPU 1624并且对应的内核1668支持对应的函数集(例如,矩阵乘法运算),并且加速器托架1612包括VPU 1626,并且对应的内核1670支持对应的函数集(例如,对象识别操作、神经网络训练操作等)。另外,如框1708中所指示的,加速器设备1620(例如,通信单元1640)可以获得指示系统1600中的每个加速器设备1620、1622、1624、1626的当前容量的数据。例如,并且如框1710中所示,加速器设备1620(例如,通信单元1640)可以获得指示每个加速器设备上的当前负载的数据(例如,正在使用的总计算吞吐量的百分比,当前正执行的每秒操作的数量,等等)。如框1712中所指示的,加速器设备1620(例如,通信单元1640)可以获得指示系统1600中停用的加速器设备(例如,没有容量的加速器设备)的数据。
在说明性实施例中,加速器设备1620(例如,通信单元1640)获得指示在系统1600中每个加速器设备内核(例如,内核1662、1664、1666、1668、1670)中的位置的可用性数据,如框1714所指示的。该位置可以包括URL、MAC地址、IP地址或用于定位加速器设备内核1662、1664、1668、1670的其它标识符。这样做时,加速器设备1620(例如,通信单元1640)可以获得指示到每个加速器设备内核的通信路径的数据,如框1716中所指示的。例如,并且如框1718中所指示的,加速器设备1620(例如,通信单元1640)获得指示在加速器托架1610、1612之间(例如,以太网连接、光纤连接、波导连接、无线连接等,包括任何开关或其它中间设备)或在数据中心10的外部的设备之间通信路径的数据。加速器设备1620(例如,通信单元1640)可以获得指示在相同托架上(例如,在加速器托架1610上)的加速器设备之间(例如,在加速器设备1620、1622之间)的通信路径的数据,通信路径例如外围组件互连快速(PCIe)总线、串行互连、无线连接或其它本地总线,如框1720所指示的。如框1722所指示的,加速器设备1620(例如,通信单元1640)可以获得指示在相同加速器设备的部分之间(例如,相同FPGA 1620的插槽1630、1632之间)的通信路径的数据。加速器设备1620(例如,通信单元1640)可以另外获得指示每个通信路径上的拥塞的数据(例如,延时、每秒发送的分组量、每秒发送的数据量、被使用的通信路径的总带宽的百分比等),如框1724所指示的。如框1726所指示的,加速器设备1620(例如,通信单元1640)从其它加速器设备(例如,从通信单元1642、1644、1646、1648、1650)接收可用性数据。另外或替代地,加速器设备1620(例如,通信单元1640)可以从遥测服务设备(例如,协调器服务器1616)接收可用性数据,如框1728所指示的。随后,方法1700前进到图18的框1730,其中加速器设备1620(例如,通信单元1640)向系统1600中的其它设备发送可用性数据。
现在参考图18,加速器设备1620(例如,通信单元1640)在发送可用性数据时,可以将与当前加速器设备1620有关的可用性数据发送到一个或多个设备,如框1732所指示的。如框1734所指示的,加速器设备1620(例如,通信单元1640)可以将与另一加速器设备有关的可用性数据发送到一个或多个设备。例如,加速器设备1620(例如,通信单元1640)可以将可用性数据发送到系统1600中的其它加速器设备,如框1736中所指示的。如框1738中所指示的,加速器设备1620(例如,通信单元1640)可以将可用性数据发送到遥测服务设备(例如,协调器服务器1616)。
仍然参考图18,加速器设备1620(例如,通信单元1640)可以接收用于与另一加速器设备内核(例如,内核1662、1666、1668、1670中的一个或多个)建立逻辑通信路径(例如,映射到一个或多个通信路径的通信路径的表示)的请求,如框1740所指示的。这样做时,加速器设备1620(例如,通信单元1640)可以接收来自在当前加速器托架上执行的内核(例如,加速器托架1610的FPGA 1620上的内核1660)的请求,如框1742所指示的。如框1744所指示的,加速器设备1620(例如,通信单元1640)可以接收识别将与其通信的内核类型的请求(例如,包括系统1600中内核的名称或其它识别符的数据、指示将与其通信的内核所支持的一个或多个功能的数据等)。请求还可以包括指示托管要与其通信的内核的加速器设备的类型(例如,FPGA、GPU、VPU等)的数据,如框1746中所指示的。如框1748中所指示的,加速器设备1620(例如,通信单元1640)可以接收为所请求的与其它内核的通信识别一个或多个目标服务质量参数。例如,并且如框1750所指示的,加速器设备1620(例如,通信单元1640)可以接收指定目标延时(例如,将分组传送到其它内核可能经过的最大时间量)的请求。如框1752所指示的,加速器设备1620(例如,通信单元1640)可以接收指定目标带宽的请求。另外或替代地,加速器设备1620(例如,通信单元1640)可以接收引用服务水平协议(SLA)的请求,该SLA为与其它内核的逻辑通信路径定义一个或多个服务质量参数,如框1754所指示的。如框1756所指示的,加速器设备1620(例如,通信单元1640)可以替代地根据与请求内核相关联的租户(例如,客户)的身份和与租户相关联的SLA来确定目标服务质量参数。随后,方法1700前进到图19的框1758,其中加速器设备1620(例如,通信单元1640)基于用于建立逻辑通信路径的请求是否活跃(例如,在框1740中)来确定随后的动作过程。
现在参考图19,如果没有接收到用于建立逻辑通信路径的请求或者加速器设备1620没有在发起请求,则方法1700循环回到图17的框1704,其中加速器设备1620继续获得可用性数据(例如,来自其它加速器设备和/或来自协调器服务器1616)。否则,如果接收到用于建立逻辑通信路径的请求,则方法1700前进到框1760,其中加速器设备1620(例如,通信单元1640)使用可用性数据(例如,在图17的框1704中获得的可用性数据)与其它加速器设备内核建立逻辑通信路径。这样做时,并且如框1762中所指示的,加速器设备1620(例如,通信单元1640)基于所请求的类型(例如,来自框1744、1746的加速器设备类型和内核类型)选择目标加速器设备(例如,用于与其通信的加速器设备)和对应的内核。在框1764中,加速器设备1620(例如,通信单元1640)确定到目标加速器设备内核的路径。这样做时,并且如框1766中所指示的,加速器设备1620(例如,通信单元1640)可以根据可用性数据确定到加速器设备内核的最短路径。如框1768所指示的,加速器设备1620(例如,通信单元1640)可以确定具有最低延时的路径。另外或替代地,加速器设备1620(例如,通信单元1640)可以确定具有最少数量的中间设备(例如,交换机、目标加速器设备通过其连接到加速器设备1620的其它加速器设备等)的路径,如框1770所指示的。另外或替代地,加速器设备1620(例如,通信单元1640)可以确定具有最少拥塞量的路径,如框1772所指示的。在框1774中,加速器设备1620(例如,通信单元1640)可以基于目标服务质量参数(例如,组合多个通信路径以获得目标带宽)将多个通信路径分配给单个逻辑通信路径。如框1776所指示的,基于目标服务质量参数(例如,目标带宽小于给定通信路径的总可用带宽),加速器设备1620(例如,通信单元1640)可以向逻辑通信路径分配小于给定通信路径的通信容量总量。如框1778所指示的,加速器设备1620(例如,通信单元1640)可以重新路由现有的逻辑通信路径(例如,利用不同的通信路径,利用通信路径的更多可用容量等),以维持目标服务质量(例如,目标带宽、目标延时等)。在说明性实施例中,加速器设备1620(例如,通信单元1640)将指示所建立的逻辑通信路径(例如,所选择的通信路径和要分配给给定通信路径通信路径的容量)的数据发送给目标内核(例如,到与目标内核相关联的通信单元1642、1646、1648、1650),如框1780中所指示的。随后,方法1700前进到图20的框1782,其中加速器设备1620(例如,通信单元1640)使用建立的逻辑通信路径在加速器设备内核之间传送数据。
现在参考图20,在传送数据时,加速器设备1620(例如,通信单元1640)通过对应的通信路径传送数据,如框1784所指示的。这样做时,加速器设备1620(例如,通信单元1640)可以向与所建立的逻辑通信路径相关联的分组添加一个或多个报头(例如,路由数据以使分组能够通过对应通信路径传播到目标内核),如框1786所指示的。另外,在说明性实施例中,加速器设备1620(例如,通信单元1640)可以从传入分组中去除报头,如框1788所指示的。如框1790所指示的,加速器设备1620(例如,通信单元1640)可以将多个通信路径用于单个逻辑通信路径。例如,加速器设备1620(例如,通信单元1640)可以利用多个I/O端口,如框1792所指示的,和/或可以利用多个网络接口控制器(NIC),如框1794所指示的。在框1796中,加速器设备1620(例如,通信单元1640)可以利用少于通信路径的所有可用容量来与目标内核传送数据。在说明性实施例中,方法1700随后循环回到图17的框1704,继续获得可用性数据。虽然被示为以特定序列执行,但应当理解,参考方法1700描述的操作可以以不同的次序和/或同时执行(例如,加速器设备1620可以连续获得可用性数据,同时加速器设备1620同时在内核和重新路由逻辑通信路径之间通过可用通信路径发送和接收数据)。
内核间通信可以完全在数据中心10内执行,或者可以使用一个或多个可编程逻辑设备在数据中心10外部使用一个或多个加速器来应用。图21详述了用在两个FPGA 1802之间的扩展内核间通信来实现内核间通信的系统1800的框图。监控设备1804可以被配置为向下游发送数据到FPGA1802A的内核1806A。这种监控设备1804可以包括监控一个或多个参数并将数据发送到FPGA 1802A的一个或多个相机、光学传感器、雷达、声纳等。监控设备1804可以在FPGA 1802A的外部或不在其外部。在某些实施例中,内核1806A可以具有存储在存储托架1200内的指令以对由监控设备1804提供的数据执行分析。这些指令可以利用分析来生成事件。例如,监控设备1804可以包含街道的视频数据。指令可以利用连续或间歇分析来分析视频数据以确定在视频数据中是否正在捕获移动的车辆。如果检测到移动的车辆,则FPGA 1802A可以使用存储的分析来确定视频数据中对象(例如,汽车)的参数(例如,速度),并生成对应的事件(例如,CAR_SPEED_DETECTED)。其它激活函数也可以基于其它参数被激活,例如温度感测可以在超过阈值温度时导致函数被激活。在各种其它实施例中,指令可以由所有者或具有所需凭证的用户修改以根据来自监控设备1804的视频数据或其它监控数据生成各种其它事件,例如路面异常、车祸、检测非法车辆(例如,踏板车(scooter))等。
在生成事件之后,内核间通信单元1808A可以基于生成的事件来识别要创建什么激活函数。内核间通信单元1808A可以利用技术(例如但不限于负载平衡方案或条件激活函数)来创建适当的激活函数。例如,内核间通信单元1808A可以利用先前讨论的可用性数据来平衡在系统1800中各种内核1806之间的负载。内核间通信单元1808A可以具有用于执行存储在存储器托架1400中的这些过程的指令。各种其它实施例可以具有用于特定目的的各种其它生成的激活函数。例如,一个实施例可以使内核间通信单元1808A生成和/或传输激活函数,该激活函数包括特定图像匹配技术以通过监控设备1804对汽车/驾驶员的某些方面进行仔细检查。内核间通信单元1808A可以确定由相应的I/O通道激活哪个内核1806B或1806C。
内核间通信单元1808A然后可以在生成激活函数之后将激活函数和关于激活函数的元数据发送到一个或多个不同的FPGA 1802B或1802C。可以使用如上所述的方法1700的任何步骤或任何其它合适的技术来执行通信。在从FPGA 1802A接收到激活函数时,接收方FPGA 1802B的内核间通信单元1808B或1808C可以唤醒或注册被映射到接收到的激活函数的内核1806B或1806C。一旦内核1806B或1806C被激活,它们就可以开始处理从FPGA 1802A接收的对应数据流。因此,内核1806B或1806C可以至少部分地基于根据存储在它们相应的FPGA 1802B或1802C上的指令接收的数据开始生成对应的事件。
图22是详述内核间通信单元1808(例如,1808A、1808B或1808C)的架构的实施例的框图。如前所述,每个内核间通信单元1808与对应的内核1806耦合,该内核1806可以向内核间通信单元1808提供生成的事件。此外,内核间通信单元1808还可以与负责在机架240内和/或数据中心10内执行内核间通信的内核间逻辑1810耦合。内核间逻辑1810可以包括通信单元1640、1644、1648和/或1650。通过使用经由内核间逻辑1810不可用的一个或更多其它通信机制实现与数据中心10外部的至少一个设备的通信,内核间通信单元1808可以用于将内核间通信扩展到点对点连接和/或超出由内核间逻辑1810提供的功能的其它连接(例如,在数据中心10中相同/相邻机架240中的两个设备之间和/或在数据中心10中的设备之间的通信)。
为了实现这种扩展通信,内核间通信单元1808具有接口1812集合,其实现对包括内核间通信单元1808的各种元件的配置。接口1812中的至少一个接口实现:在激活另一设备(例如,加速器、可编程逻辑设备等)中的对应函数时,注册特定激活函数规则1814。该一个或多个接口1812可由基础设施所有者或具有适当凭证的任何其他授权用户访问。该接口1812使所有者能够指定存储在内核间通信单元1808的存储器中的一个或多个激活规则1814的参数,包括但不限于ID、ID的规则、事件类型、与要激活的激活函数相关联的阈值或规则定义、激活函数本身、和/或当规则被断言时激活函数要被传播到的对等点集合(a setof peers)。ID的规则可用于更新或移除函数。如前所述,事件类型可以由内核1806生成。阈值或规则定义可以是使用数据作为内核1806正在执行的函数的输入的布尔规则。
内核间通信单元1808还包括可以耦合到接口1812和/或包含于其中的对等接口(peer interface)1815。对等接口1815可以用于与“对等物”通信,对等物可以是用于处理的其它设备(例如,FPGA 1802B)。另外或替代地,对等物可以包括其它设备,例如使用蜂窝V2X的汽车、边缘服务器、其它处理资源或其组合。此外,对等接口1815可以用于针对内核间通信单元1808可以向其发送激活函数的对等物列表,在内核间通信单元1808的存储器中注册一组非对称(例如,公共或私有)密钥1820。像接口1812一样,对等接口1815可以具有针对接口门控的访问,仅使得所有者或具有批准凭证的其他授权用户能够访问对等接口1815。该对等接口1815使所有者能够访问该对等物的ID和用于保护传输数据的非对称密钥1820。
点对点(P2P)接口(peer-to-peer interface)1816可以用于耦合到对等物的客户端。P2P接口1816可以类似于对等接口(peer interface)1815和/或包含于其中。P2P接口1816可以用于向特定客户端发送激活函数。P2P接口1816可以实现访问激活函数ID以及与激活函数相关联的参数或数据的集合。P2P接口1816耦合到对等通信逻辑1818,该对等通信逻辑1818可以用于规定适于与相应对等物通信的分组中的数据的格式。使用接口1812,接口1812可以负责处理来自内核1806的事件并激活内核间通信单元1808。该激活函数可以使用对等通信逻辑1818来生成消息(例如,要处理的激活函数和数据)以发送给对等物。
如前所述,内核间通信技术可以至少部分地使用一个或多个FPGA或其它可编程逻辑设备(PLD)来实现。图23示出了可以用于配置FPGA或PLD的系统1830的框图。设计者可能希望在集成电路设备1832(例如,可编程逻辑设备,例如现场可编程门阵列(FPGA)1802或专用集成电路(ASIC))上实现诸如本公开的算法操作之类的功能。在一些情况下,设计者可以指定要实现的高级程序,例如OpenCL程序,这可以使设计者能够在不具有对低级硬件描述语言(如Verilog或VHDL)的具体知识的情况下,更高效和更容易地提供编程指令来配置集成电路12的一组可编程逻辑单元。例如,由于OpenCL与诸如C++之类的其它高级编程语言非常相似,因此与需要学习不熟悉的低级硬件描述语言以在集成电路设备1832中实现新功能的设计者相比,熟悉此类编程语言的可编程逻辑设计者可能具有更短的学习曲线。
设计者可以使用设计软件1834来实现高级设计,例如INTEL公司的的版本。设计软件1834可以使用编译器1846将高级程序转换为低级描述。编译器1846可以向主机1838和集成电路设备1832提供代表高级程序的机器可读指令。主机1838可以接收主机程序1842,该主机程序1842可以由相应内核1806中的内核程序1840实现。为了实现主机程序1842,主机1838可以经由安全通信链路1844将指令从主机程序1842传送到集成电路设备1832,该安全通信链路1844可以是例如直接存储器访问(DMA)通信或外围组件互连快速(PCIe)通信。在一些实施例中,内核程序1840和主机1838可以实现对集成电路设备1832上的逻辑块1842的配置。逻辑块1842可以包括电路和/或其它逻辑元件,并且可以被配置为实现算术运算,例如加法和乘法。
设计者可以使用设计软件1834来生成和/或指定低级程序,例如上述低级硬件描述语言。此外,在一些实施例中,可以在没有单独的主机程序1842的情况下实现系统1830。此外,在一些实施例中,本文描述的技术可以以电路实现为不可编程电路设计。因此,本文描述的实施例旨在说明而非限制。
现在转向集成电路设备1832的更详细讨论,图24是作为可编程逻辑设备(例如,现场可编程门阵列(FPGA)1802)的集成电路设备1832的示例的框图。此外,应当理解,集成电路设备1832可以是任何其它合适类型的可编程逻辑设备(例如,ASIC和/或专用标准产品)。如图所示,集成电路设备1832可以具有输入/输出电路1852,用于驱动信号离开设备并经由输入/输出引脚1854从其它设备接收信号。互连资源1856(例如,全局和局部垂直和水平导线和总线)可以用于在集成电路设备1832上路由信号。另外,互连资源1856可以包括固定互连(导线)和可编程互连(即,在相应固定互连之间的可编程连接)。可编程逻辑1858可以包括组合和顺序逻辑电路。例如,可编程逻辑1858可以包括查找表、寄存器和复用器。在各种实施例中,可编程逻辑1858可以被配置为执行定制逻辑功能。与互连资源相关联的可编程互连可以被认为是可编程逻辑1858的一部分。
可编程逻辑设备(例如,集成电路设备1832)可以包括具有可编程逻辑1858的可编程元件50。例如,如上所述,设计者(例如,客户)可以(重新)编程(例如,(重新)配置)可编程逻辑1858以执行一个或多个期望的功能。举例来说,一些可编程逻辑设备可以通过使用掩模编程布置配置可编程元件1860来编程或重新编程,这在半导体制造期间执行。其它可编程逻辑设备在已经完成半导体制造操作之后进行配置,例如通过使用电编程或激光编程来对可编程元件1860进行编程。通常,可编程元件1860可以基于任何合适的可编程技术,例如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储器单元、掩模编程元件等。
许多可编程逻辑设备是电编程的。在电编程布置的情况下,可编程元件1860可以由一个或多个存储器单元形成。例如,在编程期间,使用引脚44和输入/输出电路1852将配置数据加载到存储器单元中。在一个实施例中,存储器单元可以实现为随机存取存储器(RAM)单元。本文描述的基于RAM技术的存储器单元的使用旨在仅作为一个示例。此外,由于这些RAM单元在编程期间加载有配置数据,因此它们有时被称为配置RAM单元(CRAM)。这些存储器单元均可以提供对应的静态控制输出信号,该信号控制可编程逻辑1858中相关联逻辑组件的状态。例如,在一些实施例中,输出信号可以被施加到可编程逻辑1858内的金属氧化物半导体(MOS)晶体管的门。
牢记对图23和图24的讨论,用户(例如,设计者)可以利用设计软件1834在集成电路设备1832的可编程逻辑1858上实现逻辑块26。特别地,设计者可以在高级程序中指定执行数学运算,例如加法和乘法。编译器1846可以将高级程序转换为用于编程可编程逻辑1858以执行加法的低级描述。
继续,图25是使用上述结构的扩展内核间通信的高级系统的框图。该示意图代表其中可以使用内核间通信单元1808的场景,但是内核间通信可以在用于执行不同设备的内核之间的通信的任何数量的实施例中实现。在这种场景中,包括一个或多个FPGA 1802的FPGA设备1861可以连接到监控设备1804A。FPGA设备1861的内核1806可以生成事件,例如CAR_SPEED_DETECTED,其指示检测到的汽车1862速度。FPGA设备1861向内核间通信单元1808发送对事件的指示。内核间通信单元1808可以具有这样的规则,其定义:当汽车速度在速度A和B之间时,生成激活函数以发送到一个或多个边缘节点1864中的其它FPGA 1802,从而引起相应FPGA 1802的激活,以执行对来自FGPA设备1861的数据执行相应函数。该激活函数经由内核间通道1866被发送到一个或多个边缘节点1864的FPGA 1802。
一旦激活函数被发送到边缘节点1864,边缘节点1864就可以开始执行与激活函数相关联的函数。例如,在这种场景中,边缘节点1864可以开始执行道路分割。这种道路分割包括监控道路的不同分段以具有更大的监视区域。边缘节点1864中的一个或多个FPGA1802可以负责识别道路上的对象或行人。这些FPGA 1802可以具有同时定义两个识别出的事件都将生成激活函数的规则。然而,激活函数可以经由无线通信通道1868传送到汽车1862。例如,这样的无线通信通道1868可以包括V2X通信、其它无线通信(例如,蓝牙通信)等。
回到集成电路设备1832,集成电路设备1832可以是数据处理系统或包含于数据处理系统(例如,在数据中心10内)中的组件。例如,集成电路设备1832可以是图26所示的数据处理系统1870的组件。数据处理系统1870可以包括主机处理器1872(例如,中央处理单元(CPU))、存储器和/或存储电路1874、以及网络接口1876。数据处理系统1870可以包括更多或更少组件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主机处理器1872可以包括任何合适的处理器,例如处理器或精简指令处理器(例如,精简指令集计算机(RISC)、高级RISC机器(ARM)处理器),其可以管理数据数据处理系统1870的处理请求(例如,执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航等)。存储器和/或存储电路1874可以包括随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪存等。存储器和/或存储电路1874可以保存要由数据处理系统处理的数据。在一些情况下,存储器和/或存储电路1874还可以存储用于对集成电路设备1832进行编程的配置程序(比特流)。网络接口1876可以允许数据处理系统1870与其它电子设备进行通信。数据处理系统1870可以包括若干不同的封装或者可以包含在单个封装衬底上的单个封装内。
在一个示例中,数据处理系统1870可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统1870可以经由网络接口1876接收数据处理请求以执行加密、解密、机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航、数字信号处理或某个其它专门任务。数据处理系统1870的一些或全部组件可以是在电路上运行的虚拟机组件(例如,由一个或多个管理程序或虚拟机管理器管理)。无论是组件还是虚拟机组件,数据处理系统1870的各种组件可以位于相同位置或不同位置(例如,在不同的板上、在不同的房间中、在不同的地理位置处)。实际上,数据处理系统1870可以经由计算服务提供商(CSP)访问,该CSP可以向客户提供接口以使用云计算环境中的数据处理系统1870(例如,以运行程序和/或执行加速任务)。
虽然本公开中阐述的实施例可以易于进行各种修改和替代形式,但具体实施例已经通过示例的方式在附图中示出并且已经在本文中进行了详细描述。然而,应当理解,本公开并不旨在限于所公开的特定形式。本公开将涵盖落入由随附权利要求限定的本公开的精神和范围内的所有修改、等同和替代。此外,本文提出和要求保护的技术被引用并应用于实际性质的实物和具体示例,它们明显改善了当前技术领域,并且因此不是抽象的、无形的或纯理论的。此外,如果附加到本说明书的任何权利要求包含被指定为“用于[执行][功能]…的单元”或“用于[执行][功能]…的步骤”的一个或多个元件,则旨在此类元件应根据美国专利法第112条(f)款进行解释。然而,对于包含以任何其它方式指定的元件的任何权利要求,不应根据专利法第112条(f)款进行解释。
示例性实施例1、一种半导体设备,包括:
内核,其被配置为:
监控数据流;
确定事件已经发生;以及
至少部分地基于确定事件已经发生,来传输事件的指示;以及
内核间通信电路,其被配置为:
接收所述指示;
基于所述指示,来确定要生成多个激活函数中的激活函数;
生成所述激活函数;以及
将所述激活函数传输到另一可编程逻辑设备的内核,以使用点对点连接唤醒并执行函数。
示例性实施例2、示例性实施例1的半导体设备,其中,内核间通信电路被配置为至少部分地基于所确定的事件和激活函数从多个可编程逻辑设备中选择另一可编程逻辑设备。
示例性实施例3、示例性实施例1的半导体设备,其中,事件包括被超过的数据流的阈值。
示例性实施例4、示例性实施例1的半导体设备,其中,内核间通信电路被配置为识别通过其传输激活函数的IO通道。
示例性实施例5、示例性实施例4的半导体设备,其中,内核间通信电路通过IO通道将激活函数传输到作为单个目标可编程逻辑设备(single targeted programmable logicdevice)的另一可编程逻辑设备。
示例性实施例6、示例性实施例4的半导体设备,其中,内核间通信电路通过IO通道向包括另一可编程逻辑设备的多个可编程逻辑设备广播激活函数。
示例性实施例7、示例性实施例6的半导体设备,其中,多个可编程逻辑设备位于数据流中指示的行进方向上。
示例性实施例8、示例性实施例1的半导体设备,其中,数据流包括图像数据,并且事件包括确定汽车的速度或将汽车识别为对应于特定汽车参数。
示例性实施例9、示例性实施例8的半导体设备,其中,识别汽车包括将汽车的牌照、颜色或品牌与特定汽车参数相匹配。
示例性实施例10、示例性实施例8的半导体设备,其中,激活函数被配置为使另一可编程逻辑设备确认所述汽车的识别。
示例性实施例11、示例性实施例10的半导体设备,其中,确认汽车的识别包括另一可编程逻辑设备利用辅助监控设备来尝试独立地确定所述汽车的识别。
示例性实施例12、示例性实施例11的半导体设备,其中,辅助监控设备包括图像传感器或相机,其可操作地耦合到所述另一可编程逻辑设备并且用于捕获包括汽车的图像。
示例性实施例13、一种可编程逻辑设备,包括:
内核,其被配置为处于执行对应功能的活动状态或处于功耗降低的睡眠状态;
第一内核间通信电路,其被配置为:
从另一可编程逻辑设备的第二内核间通信电路接收激活函数;
响应于从另一可编程逻辑设备的第二内核间通信电路接收到激活函数,将内核从睡眠状态唤醒为活动状态以执行在激活函数中指定的操作;
使内核在活动状态下处理与激活函数相对应的数据;以及
将数据处理的结果传输到另一可编程逻辑设备。
示例性实施例14、示例性实施例13的可编程逻辑设备,其中,唤醒内核包括将内核注册到激活函数。
示例性实施例15、示例性实施例13的可编程逻辑设备,其中,激活函数作为仅发送到可编程逻辑设备的目标传输(targeted transmission)被接收。
示例性实施例16、示例性实施例13的可编程逻辑设备,其中,激活函数被广播到包括可编程逻辑设备的多个可编程逻辑设备。
示例性实施例17、示例性实施例13的可编程逻辑设备,其中,数据包括图像数据。
示例性实施例18、示例性实施例17的可编程逻辑设备,其中,在具有激活函数的可编程逻辑设备处接收数据。
示例性实施例19、示例性实施例18的可编程逻辑设备,其中,内核间通信电路被配置为响应于激活函数的接收而使相机或图像传感器捕捉数据。
示例性实施例20、一种半导体设备,包括:
内核,其被配置为执行一个或多个操作;以及
内核间通信电路,其被配置为基于已经在内核中执行或将在内核中执行的处理来与其它半导体设备通信,其中所述内核间通信电路包括:
用于存储一个或多个激活规则和一个或多个安全密钥的存储器,其中所述一个或多个激活规则被配置为指示单独处理设备中的哪个外部内核被配置为以激活函数为目标(targeted with an activation function),所述激活函数被配置为激活外部内核以执行对应的函数,以及一个或多个安全密钥被配置为实现对所述外部内核的访问;以及
多个接口,包括:
第一接口,其被配置为实现与内核的通信;以及
对等接口,其被配置为使用与单独处理设备相对应的点对点通道实现与外部内核的通信。
Claims (20)
1.一种半导体设备,包括:
内核,其被配置为:
监控数据流;
确定事件已经发生;以及
至少部分地基于确定所述事件已经发生,传输对所述事件的指示;以及
内核间通信电路,其被配置为:
接收所述指示;
基于所述指示,确定多个激活函数中的激活函数将被生成;
生成所述激活函数;以及
使用点对点连接将所述激活函数传输到另一可编程逻辑设备的内核,以进行唤醒并执行功能。
2.根据权利要求1所述的半导体设备,其中,所述内核间通信电路被配置为:至少部分地基于所确定的事件和所述激活函数,从多个可编程逻辑设备中选择所述另一可编程逻辑设备。
3.根据权利要求1所述的半导体设备,其中,所述事件包括所述数据流的阈值被超过。
4.根据权利要求1所述的半导体设备,其中,所述内核间通信电路被配置为:识别通过其传输所述激活函数的输入输出(IO)通道。
5.根据权利要求4所述的半导体设备,其中,所述内核间通信电路通过所述IO通道将所述激活函数传输到作为单个目标可编程逻辑设备的所述另一可编程逻辑设备。
6.根据权利要求4所述的半导体设备,其中,所述内核间通信电路通过所述IO通道向包括所述另一可编程逻辑设备的多个可编程逻辑设备广播所述激活函数。
7.根据权利要求6所述的半导体设备,其中,所述多个可编程逻辑设备位于所述数据流中指示的行进方向上。
8.根据权利要求1所述的半导体设备,其中,所述数据流包括图像数据,并且所述事件包括确定汽车的速度或者将所述汽车识别为对应于特定汽车参数。
9.根据权利要求8所述的半导体设备,其中,识别所述汽车包括将所述汽车的牌照、颜色或品牌与所述特定汽车参数相匹配。
10.根据权利要求8所述的半导体设备,其中,所述激活函数被配置为使所述另一可编程逻辑设备确认对所述汽车的识别。
11.根据权利要求10所述的半导体设备,其中,确认对所述汽车的识别包括:所述另一可编程逻辑设备利用辅助监控设备来尝试独立地确定对所述汽车的识别。
12.根据权利要求11所述的半导体设备,其中,所述辅助监控设备包括图像传感器或相机,其能够操作地耦合到所述另一可编程逻辑设备并且用于捕获包括所述汽车的图像。
13.一种可编程逻辑设备,包括:
内核,其被配置为处于执行对应功能的活动状态,或者处于功耗降低的睡眠状态;
第一内核间通信电路,其被配置为:
从另一可编程逻辑设备的第二内核间通信电路接收激活函数;
响应于从所述另一可编程逻辑设备的所述第二内核间通信电路接收到所述激活函数,而将所述内核从所述睡眠状态唤醒为所述活动状态以执行在所述激活函数中指定的操作;
使所述内核在所述活动状态下处理与所述激活函数相对应的数据;以及
将数据处理的结果传输到所述另一可编程逻辑设备。
14.根据权利要求13所述的可编程逻辑设备,其中,唤醒所述内核包括将所述内核注册到所述激活函数。
15.根据权利要求13所述的可编程逻辑设备,其中,所述激活函数作为仅发送到所述可编程逻辑设备的目标传输被接收。
16.根据权利要求13所述的可编程逻辑设备,其中,所述激活函数是向包括所述可编程逻辑设备的多个可编程逻辑设备进行广播的。
17.根据权利要求13所述的可编程逻辑设备,其中,所述数据包括图像数据。
18.根据权利要求17所述的可编程逻辑设备,其中,所述数据与所述激活函数一起在所述可编程逻辑设备处被接收。
19.根据权利要求18所述的可编程逻辑设备,其中,所述第一内核间通信电路被配置为:响应于所述激活函数的接收,而使相机或图像传感器捕捉所述数据。
20.一种半导体设备,包括:
内核,其被配置为执行一个或多个操作;以及
内核间通信电路,其被配置为:基于已经在所述内核中执行或将在所述内核中执行的处理来与另一半导体设备通信,其中,所述内核间通信电路包括:
用于存储一个或多个激活规则和一个或多个安全密钥的存储器,其中,所述一个或多个激活规则被配置为指示单独处理设备中的哪个外部内核被配置为是激活函数的目标,所述激活函数被配置为激活所述外部内核以执行对应的功能,并且所述一个或多个安全密钥被配置为实现对所述外部内核的访问;以及
多个接口,其包括:
第一接口,其被配置为实现与所述内核的通信;以及
对等接口,其被配置为使用与所述单独处理设备相对应的点对点通道来实现与所述外部内核的通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/033,303 | 2020-09-25 | ||
US17/033,303 US20210011787A1 (en) | 2020-09-25 | 2020-09-25 | Technologies for scaling inter-kernel technologies for accelerator device kernels |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253899A true CN114253899A (zh) | 2022-03-29 |
Family
ID=74102308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110980607.0A Pending CN114253899A (zh) | 2020-09-25 | 2021-08-25 | 用于缩放用于加速器设备内核的内核间技术的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210011787A1 (zh) |
EP (1) | EP3974984A1 (zh) |
CN (1) | CN114253899A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117189649A (zh) * | 2023-11-08 | 2023-12-08 | 永联科技(常熟)有限公司 | 一种风机矩阵控制方法及相关设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2609650A (en) * | 2021-08-12 | 2023-02-15 | Advanced Risc Mach Ltd | Integrated circuit device, system and method |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873869B2 (en) * | 2008-10-09 | 2011-01-18 | International Business Machines Corporation | Checkpointing a hybrid architecture computing system |
US8739171B2 (en) * | 2010-08-31 | 2014-05-27 | International Business Machines Corporation | High-throughput-computing in a hybrid computing environment |
JP2018528538A (ja) * | 2015-08-20 | 2018-09-27 | アヴェロン ユーエス、インコーポレイテッド | 地理的位置に基づく電子セキュリティ管理方法および装置 |
US10686688B2 (en) * | 2016-07-22 | 2020-06-16 | Intel Corporation | Methods and apparatus to reduce static and dynamic fragmentation impact on software-defined infrastructure architectures |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US11151192B1 (en) * | 2017-06-09 | 2021-10-19 | Waylens, Inc. | Preserving locally stored video data in response to metadata-based search requests on a cloud-based database |
US11856331B1 (en) * | 2017-05-10 | 2023-12-26 | Waylens, Inc. | Extracting and transmitting video analysis metadata for a remote database |
US11416542B1 (en) * | 2017-05-10 | 2022-08-16 | Waylens, Inc. | System and method for uploading still images of matching plates in response to an alert hit list using distributed LPR acquisition |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US11017539B2 (en) * | 2018-04-30 | 2021-05-25 | Intel Corporation | Object tracking and identification using intelligent camera orchestration |
EP3567565A1 (en) * | 2018-05-09 | 2019-11-13 | Volkswagen AG | Apparatus, method, computer program, base station and vehicle for providing information related to an approaching vehicle |
US11334960B2 (en) * | 2018-06-08 | 2022-05-17 | Uatc, Llc | Systems and methods for pipelined processing of sensor data using hardware |
US11651593B2 (en) * | 2018-08-31 | 2023-05-16 | Verizon Patent And Licensing Inc. | Cloud-based road segment vehicle and pedestrian trend analysis |
US10579547B2 (en) * | 2018-12-28 | 2020-03-03 | Intel Corporation | Technologies for providing I/O channel abstraction for accelerator device kernels |
US10853296B2 (en) * | 2018-12-28 | 2020-12-01 | Intel Corporation | Technologies for establishing communication channel between accelerator device kernels |
US11227489B2 (en) * | 2019-03-30 | 2022-01-18 | Intel Corporation | Technologies for managing interoperable high definition maps for autonomous vehicles |
US11716616B2 (en) * | 2019-05-06 | 2023-08-01 | Pointr Limited | Systems and methods for location enabled search and secure authentication |
CN112541988B (zh) * | 2019-09-05 | 2022-09-23 | 华为技术有限公司 | 一种通过车钥匙存储、传输数据的方法及装置 |
CN110706485A (zh) * | 2019-09-30 | 2020-01-17 | 上海商汤临港智能科技有限公司 | 驾驶预警方法、装置、电子设备和计算机存储介质 |
US10992298B1 (en) * | 2019-10-18 | 2021-04-27 | Gowin Semiconductor Corporation | Method and system for providing wireless FPGA programming download via a wireless communication block |
US11599880B2 (en) * | 2020-06-26 | 2023-03-07 | Rovi Guides, Inc. | Systems and methods for providing multi-factor authentication for vehicle transactions |
US11527057B2 (en) * | 2020-09-30 | 2022-12-13 | Realtek Singapore Private Limited | System and method for license plate recognition |
-
2020
- 2020-09-25 US US17/033,303 patent/US20210011787A1/en active Pending
-
2021
- 2021-08-10 EP EP21190572.4A patent/EP3974984A1/en active Pending
- 2021-08-25 CN CN202110980607.0A patent/CN114253899A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117189649A (zh) * | 2023-11-08 | 2023-12-08 | 永联科技(常熟)有限公司 | 一种风机矩阵控制方法及相关设备 |
CN117189649B (zh) * | 2023-11-08 | 2024-01-05 | 永联科技(常熟)有限公司 | 一种风机矩阵控制方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210011787A1 (en) | 2021-01-14 |
EP3974984A1 (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210081312A1 (en) | Shared memory | |
US20200192710A1 (en) | Technologies for enabling and metering the utilization of features on demand | |
US20190042091A1 (en) | Technologies for providing efficient distributed data storage in a disaggregated architecture | |
US11861424B2 (en) | Technologies for providing efficient reprovisioning in an accelerator device | |
US20200241926A1 (en) | Selection and management of disaggregated computing resources | |
US10579547B2 (en) | Technologies for providing I/O channel abstraction for accelerator device kernels | |
CN115136565A (zh) | 用于在分解环境中提供先进资源管理的技术 | |
EP3761177A1 (en) | Technologies for providing latency-aware consensus management in a disaggregated architecture | |
EP3731091A1 (en) | Technologies for providing an accelerator device discovery service | |
EP3974984A1 (en) | Technologies for scaling inter-kernel technologies for accelerator device kernels | |
EP3451632A1 (en) | Technologies for pre-configuring accelerators by predicting bit-streams | |
US20190372914A1 (en) | Technologies for managing disaggregated accelerator networks based on remote direct memory access | |
EP3757785A1 (en) | Technologies for facilitating remote memory requests in accelerator devices | |
EP3739448B1 (en) | Technologies for compressing communication for accelerator devices | |
EP3731094A1 (en) | Technologies for providing inter-kernel flow control for accelerator device kernels | |
US10678737B2 (en) | Technologies for providing dynamic communication path modification for accelerator device kernels | |
US11531635B2 (en) | Technologies for establishing communication channel between accelerator device kernels | |
EP3757786A1 (en) | Technologies for providing inter-kernel application programming interfaces for an accelerated architecture | |
US20190324802A1 (en) | Technologies for providing efficient message polling | |
US20200341904A1 (en) | Technologies for chained memory search with hardware acceleration | |
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 |