CN112041817B - 用于管理借助于加速器装置的硬件加速的请求的方法和节点 - Google Patents
用于管理借助于加速器装置的硬件加速的请求的方法和节点 Download PDFInfo
- Publication number
- CN112041817B CN112041817B CN201880093252.XA CN201880093252A CN112041817B CN 112041817 B CN112041817 B CN 112041817B CN 201880093252 A CN201880093252 A CN 201880093252A CN 112041817 B CN112041817 B CN 112041817B
- Authority
- CN
- China
- Prior art keywords
- hardware acceleration
- management node
- node
- memory location
- indication
- 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.)
- Active
Links
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/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
- G06F9/5044—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 considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
公开了用于管理借助于由硬件加速管理节点(110)管理的至少一个硬件加速装置(120、121、122)的硬件加速“HA”的请求的方法和硬件加速管理节点(110)。硬件加速管理节点(110)从HA接口连接节点(130)接收(A020)处理源数据的硬件加速的请求。硬件加速管理节点(110)发送用于存储源数据的(一个或多个)源存储器位置的指示。硬件加速管理节点(110)选择一个或多个硬件加速装置(120、121、122)。硬件加速管理节点(110)接收要被加速的代码块。硬件加速管理节点(110)向所述一个硬件加速装置(120、121、122)发送源存储器位置的指示和代码块有关的加速指令的集合。硬件加速管理节点(110)接收指示结果数据的结果存储器位置的指示。硬件加速管理节点(110)向HA接口连接节点(130)发送完成的硬件加速的指示。还公开了对应的计算机程序(303)和计算机程序载体(305)。
Description
技术领域
本文中的实施例涉及计算机系统,诸如计算机资源的网络、云系统等。特定地,公开了用于管理借助于由硬件加速管理节点管理的至少一个加速器装置的硬件加速的请求的方法和硬件加速管理节点。还公开了对应的计算机程序和计算机程序载体。
背景技术
几十年来,例如随着图形处理单元(GPU)的出现,硬件加速是已知的。GPU在加速诸如静态图片和/或视频的图像处理的专门化任务方面是有用的。
此外,已经引入了更多通用GPU,这些GPU帮助中央处理单元(CPU)更高效地应对繁重的计算工作负载,包括视频处理以及与例如大数据分析有关的其它处理。
作为硬件加速开发的下一步,已经引入了现场可编程门阵列(FPGA)。例如由于它们加速计算任务的高效能方式,所以FPGA吸引了大量关注。FPGA借助于软件是可配置的,诸如以使FPGA的硬件适应不同的计算任务。
近年来,已经使用“硬件加速器”或“硬件加速装置”的术语来指任何硬件加速提供实体,诸如GPU、FPGA等。与最初引入的GPU类似,可使用硬件加速装置作为协处理器、作为CPU处理器的完全替代或作为一个或多个CPU中的指令集架构(ISA)扩展。
在过去几年中,已经针对使用FPGA的数据中心中的云计算应用的加速提出了若干种可重新配置的架构,并且兴趣正在增加(ramp up)。
最近,在试图启用加速装置的远程使用(有时称为加速即服务(AaaS))方面做了大量工作。用于启用加速装置的灵活且可重新配置的使用的一些可用解决方案是分解式FPGA(Disaggregated FPGA),到2018年4月为止(as of April 2018)例如参见http:// ieeexplore.ieee.org/document/7830659/、https://sec.ch9.ms/sessions/c1f9c808- 82bc-480a-a930-b340097f6cc1/build/2017/B8063.pptx和http:// ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7783710以及远程计算统一装置架构(rCUDA)http://www.rcuda.net/pub/SC12_SLC.pdf,其中CUDA是应用可调用(call)其以利用加速的应用编程接口(API)。
使用远程加速装置的这些解决方案使得传统的计算单元能够远程访问一个或多个加速装置。
在进一步的示例中,US8250578公开了如何使计算系统的硬件加速器流水线化(pipeline)。硬件地址与计算系统的至少一个处理单元(PU)或至少一个逻辑分区(LPAR)相关联。接收相关联的硬件加速器地址的工作请求。然后,将使用相关联的硬件加速器地址的硬件加速器的工作请求排队。
发明内容
鉴于上文,注意,使用一个或多个远程加速装置的现有解决方案使得计算装置能够远程访问加速装置。这些现有解决方案的缺点是,为了使用(一个或多个)加速装置,要求预先配置计算单元,即,具有将计算单元与一个或多个特定的远程加速装置静态关联的正确的驱动器配置、这些装置的预先分配、寻址等。
因此,一目的可能是要能够实现以更灵活的方式访问远程加速装置。
根据一方面,该目的通过一种由硬件加速管理节点执行的用于管理借助于由硬件加速管理节点管理的多个硬件加速装置内的至少一个硬件加速装置的硬件加速“HA”的请求的方法来实现。
硬件加速管理节点从HA接口连接节点(interfacing node)接收处理源数据的硬件加速的请求。由调用HA接口连接节点以发起处理源数据的硬件加速的应用来管理源数据。硬件加速管理节点向HA接口连接节点发送用于存储源数据的源存储器位置的指示。
此外,硬件加速管理节点从所述多个硬件加速装置中选择至少一个硬件加速装置。硬件加速管理节点从HA接口连接节点接收要被加速的代码块(chunk ofcode)。
硬件加速管理节点向所述一个硬件加速装置发送源存储器位置的指示和代码块有关的加速指令的集合。硬件加速管理节点从所述硬件加速装置接收指示由处理源数据产生的结果数据的结果存储器位置的指示。
然后,硬件加速管理节点向HA接口连接节点发送完成的硬件加速的指示。
根据另一个方面,该目的通过一种硬件加速管理节点实现,该硬件加速管理节点被配置用于管理借助于由硬件加速管理节点管理的多个硬件加速装置内的至少一个硬件加速装置的硬件加速“HA”的请求。
硬件加速管理节点被配置用于从HA接口连接节点接收处理源数据的硬件加速的请求。由调用HA接口连接节点以发起处理源数据的硬件加速的应用来管理源数据。
此外,硬件加速管理节点被配置用于向HA接口连接节点发送用于存储源数据的源存储器位置的指示。硬件加速管理节点被配置用于从所述多个硬件加速装置中选择至少一个硬件加速装置。硬件加速管理节点被配置用于从HA接口连接节点接收要被加速的代码块。硬件加速管理节点被配置用于向所述一个硬件加速装置发送源存储器位置的指示和代码块有关的加速指令的集合。
此外,硬件加速管理节点被配置用于从所述硬件加速装置接收指示由处理源数据产生的结果数据的结果存储器位置的指示。硬件加速管理节点被配置用于向HA接口连接节点发送完成的硬件加速的指示。
根据进一步方面,该目的通过与以上方面对应的计算机程序和计算机程序载体来实现。
硬件加速管理节点可被说成作为代理功能进行操作。这可意味着,硬件加速管理节点将来自HA接口连接节点的请求调解(mediate)到所述至少一个选择的硬件加速装置,由此硬件加速管理节点使得HA接口连接节点能够动态且透明地访问选择的(一个或多个)硬件加速装置。因此,HA接口连接节点在不知道哪个(或哪些)硬件加速装置将执行加速的情况下请求加速。
这与现有的解决方案形成对比,现有的解决方案将HA接口连接节点静态地链接到适当硬件加速装置,由此请求加速的实体例如借助于到适当硬件加速装置的地址而直接请求要由静态链接的适当硬件加速装置执行的加速。
因此,本文中的实施例使得HA接口连接节点能够经由硬件加速管理节点灵活地访问硬件加速装置。
因此,优点是,可在多个HA接口连接节点(例如,应用、服务器、操作系统等)之间共享多个硬件加速装置。在哪个特定硬件加速装置用于提供加速对应用/计算单元完全透明的同时,实现该优点。
附图说明
从以下详细描述和下面简要描述的附图,将容易地理解本文中公开的实施例的各个方面,包括其特定特征和优点。
图1是可在其中实现本文中的实施例的示例性系统的示意性概览。
图2是示出本文中的方法的组合信令和流程图。
图3是示出硬件加速管理节点的实施例的框图。
具体实施方式
贯穿以下描述,在适用时,已经使用类似的参考数字来表示类似的特征,诸如节点、动作、模块、电路、部分、项、元件、单元等。在图中,由虚线指示在一些实施例中出现的特征。
图1描绘了可在其中实现本文中的实施例的示例性硬件系统100。硬件系统100可以是所谓的分解式硬件系统、云系统、数据中心、计算机的网络等。
硬件系统100可包括硬件加速(HA)管理节点110。HA管理节点110可被配置成静态地或动态地管理一个或多个硬件加速装置(HA装置)120-122,诸如GPU、FPGA、加速器装置等。如前所述,可由在一个或多个CPU上执行的一个或多个ISA扩展来举例说明加速器装置。加速器装置的进一步实现在本领域中是已知的。
HA管理节点110可充当朝向计算单元140的HA接口连接节点130的接口。HA接口连接节点130可处置在计算单元140上执行的应用150和HA管理节点110之间的通信。HA接口连接节点130可以是模拟物理硬件加速器装置的所谓的模拟器,或者HA接口连接节点130可包括所谓的加速器库,该所谓的加速器库包括本文中的实施例的特征。
一般来说,硬件系统100可依赖于硬件资源分解的原理。硬件分解的原理将中央处理单元(CPU)、存储器和网络资源视为是独立的和模块化的组件。通常用诸如刀片(blade)、滑板(sled)等的池来组织资源。即,存在CPU单元的池和存储器单元的池。资源可包括许多其它不同种类的池,诸如存储池、网络接口的池等,但是贯穿本公开,由于相关性的原因,论述CPU的池和存储器单元的池。本文中将使用术语“CPU池”、“存储器池”等来指CPU的池和存储器单元的池。当利用硬件系统时,主机可由一个或多个池内的单元/资源的子集组成。可通过在一个或多个池内选择资源的子集来组装主机。每个主机通常包括至少一个计算单元140。以此方式,将多个资源分配给主机。在相关文献中,可用术语“逻辑硬件机”、“虚拟硬件机”等来指主机。
此外,系统100包括存储器160,它可由HA装置120-122以及应用150和/或计算单元140可访问。存储器160可以是任何种类的数据存储介质,诸如硬盘驱动器(HDD)、固态驱动器、易失性或非易失性存储器单元、随机存取存储器(RAM)等。存储器160可用于存储要由一个或多个HA装置120-122处理的信息和/或用于存储由一个或多个HA装置120-122的处理产生的信息。
另外,系统100可包括二进制存储库(binary repository)170,诸如数据库等。二进制存储库170可包括期望被加速的过程的一个或多个不同的表示。以此方式,可在多个不同类型的加速器装置上执行要被加速的过程,由此可能要求用于执行的不同的格式。例如,可编译开放计算语言(OpenCL)中的代码以适应不同类型的加速器装置。应用150可向二进制存储库170提供不同的表示。
图1的实体可至少如图1中所示例如经由应用编程接口(API)彼此通信180。
既然已经描述了图1中示出的实体,那么下面提供根据图2的流程的示例性概述。HA管理节点110可负责根据应用的请求使用例如cudaMalloc()将存储器区域指派给应用。此外,HA管理节点110可从应用150接收触发器以运行加速任务。在该触发器中,应用150也可告诉HA管理节点110谁将使用(consume)该工作的结果,例如它可以是触发工作开始的应用150本身,或者它可以是另一个应用(未示出)。此外,如果需要,HA管理节点可从二进制存储库中选择对应的代码二进制并将它加载到装置,或者转发来自计算单元140的指令并触发工作的开始。HA管理节点110还可将工作的结束通知将使用所加速的工作的结果的应用150(或所述另一个应用),并参考(refer to)存储结果数据的存储器范围。
图2示出了当在图1的系统100中实现时的根据本文中的实施例的示例性方法。
HA管理节点110执行用于管理借助于由HA管理节点110管理的多个硬件加速装置120-122内的至少一个HA装置120、121、122的硬件加速的请求的方法。分解式硬件系统100可包括多个HA装置120-122。
可按任何合适的顺序执行以下一个或多个动作。
动作A010
最初,应用150可调用HA接口连接节点130以便获得用于处理源数据的代码块的加速。该调用可通过应用150向HA接口连接节点130发送一个或多个指令等来举例说明。然而,这是根据已知的方式同时例如利用在背景部分中提到的从CUDA API中已知的命令(像cudaMalloc等)而执行的。
在一些示例中,应用150可进一步指定要存储源数据的处理结果的结果存储器位置。这可意味着,指令可进一步指定结果存储器位置。结果存储器位置可指向存储器160内的一个或多个位置。
响应于来自应用150的调用,HA接口连接节点130向硬件加速管理节点110发送处理源数据的硬件加速的请求。
如上所述,可由应用150指定结果存储器位置。因此,发送到HA管理节点110的请求可包括结果存储器位置的指示。以此方式,请求可以例如根据使用者(consumer)的身份、使用者可从中检索结果的结果存储器位置等来提供关于结果的使用者的信息。
动作A020
继动作A010之后,HA管理节点110从HA接口连接节点130接收处理源数据的硬件加速的请求。由调用HA接口连接节点130以发起处理源数据的硬件加速的应用来管理源数据。
动作A030
为了使HA接口连接节点130知道将由要在下面动作A040中选择的HA装置处理的源数据存储在哪里,HA管理节点110向HA接口连接节点130发送用于存储源数据的源存储器位置的指示。源存储器位置可指向存储器160内的一个或多个位置。
有时,例如当尚未指定使用者时,可例如由HA管理节点110从源存储器位置导出结果存储器位置。作为一示例,结果存储器位置可与源存储器位置相同,直接在源存储器位置之后,或者在发现适合于任何特定用例的类似位置。在进一步的示例中,HA管理节点110例如在不考虑源存储器位置的情况下确定结果存储器位置。通常,HA管理节点110找到可用的存储器区域,并确定例如找到的存储器区域的起点就是结果存储器位置。
当已经指定了使用者时,可能的是,应用150和/或HA接口连接节点130已经以与上文直接提到的方式类似的方式从源存储器位置导出结果存储器位置。
动作A040
由于HA管理节点110已经在动作A020中接收到请求,所以HA管理节点110从多个HA装置120-122中选择至少一个HA装置120、121、122。以此方式,HA管理节点110可从多个HA装置120-122中挑选至少一个可用的HA装置。在本上下文中,可用的可指的是,当前所选择的HA装置120、121、122没有被指派执行加速的任务。
动作A050
继动作A030之后,HA接口连接节点130可接收源存储器位置的指示。一旦接收到源存储器位置的指示,HA接口连接节点130便可将源存储器位置告知应用150。响应于此,应用150可将源数据存储在由源存储器位置的指示所指示的源存储器位置处。作为一示例,应用150可使用从CUDAAPI中已知的cudaMemcpy()。
源存储器位置的指示可以是物理或虚拟地址。
动作A060
在动作A050中,将源存储器位置告知了应用150。为了执行要被加速的代码块,应用150可将代码块提供给HA接口连接节点130。
响应于此,HA接口连接节点130可将代码块发送到HA管理节点110。
此外,可能的是,代码块伴有一些元数据,诸如:
binary_type=OpenCL、开放式加速器(openACC)、CUDA,
调用(invocation)=同步或异步
优先级=高、中、……
版本=<函数(func)的版本>,
等。
binary_type可指定二进制的格式,它可以是OpenCL、openACC、CUDA等。
调用可指定是同步还是异步地调用加速,其中同步和异步具有它们在计算机编程领域内的常规含义,即,同步意味着计算单元的处理可在继续执行其它代码之前等待代码的加速完成,并且异步执行虑及(allow for)在加速执行的同时处理其它代码。
优先级可由HA管理节点110用来在不同的代码块之间划分优先顺序。
版本可以是指示代码块的版本以便使HA管理节点110例如从二进制存储库170中找到合适的二进制的数字。
动作A070
继动作A060之后,HA管理节点110从HA接口连接节点130接收要被加速的代码块。
代码块可以是代码的中间表示或最终表示。作为一示例,当代码块是最终表示时,HA装置120、121、122可直接使用代码块。作为备选示例,可能要求HA装置120、121、122变换(诸如翻译、编译、重新编译等)代码块以便能够将它变成由HA装置120、121、122可执行的格式。
在一些示例中,代码块可以是对存储在二进制存储库170中的函数之一的请求。考虑到结合图1对二进制存储库170的描述,可能注意到,代码块可表示期望加速的过程。
动作A080
HA管理节点110向所述一个HA装置120、121、122发送(一个或多个)源存储器位置的指示和代码块有关的加速指令的集合。
以此方式,HA管理节点110可能够实现由所述一个HA装置120、121、122根据加速指令的集合处理存储在源存储器位置处的源数据。
在一些情况下,加速指令的集合可包括代码块(即,不要求翻译或编译),以便可能够实现由所述一个HA装置120、121、122执行代码块。因此,在一些示例中,加速指令的集合可以是代码块。在此类示例中,术语“加速指令的集合”和“代码块”可以是可互换的。
动作A090
继动作A080之后,HA装置120可接收加速指令的集合或者如图中那样简称为“acc.instr.”。
加速指令的集合可伴有(一个或多个)源存储器位置的指示。这可意味着,HA管理节点110可向选择的HA装置120、121、122发送源存储器位置的指示。因此,使HA装置120知道要执行的代码块以及在执行代码块时要处理的源数据两者。
在该阶段,HA装置120可通过执行加速指令的集合来处理源数据。当完成时,执行如下动作A100。
动作A100
因此,当HA装置120通过执行加速指令的集合已经完成对源数据的处理时,HA装置120可发送指示结果数据的(一个或多个)结果存储器位置的指示。因此,结果数据由对源数据的所述处理产生。
动作A110
继动作A100之后,HA管理节点110从所述HA装置120、121、122接收结果存储器位置的指示。结果存储器位置的指示可以是物理或虚拟存储器地址。
动作A120
为了使HA接口连接节点130以及还可能的应用150知道源数据的处理已经完成,HA管理节点110向HA接口连接节点130发送完成的硬件加速的指示。
在一些示例中,完成的硬件加速的指示可包括消息。
当已经由HA管理节点110确定或导出结果存储器位置时,消息可进一步包括结果存储器位置的指示。结果存储器位置的指示也可以与完成的硬件加速的指示分开发送。以此方式,可使HA接口连接节点130知道在哪里找到处理的结果。最终,也可由HA接口连接节点130将结果存储器位置告知应用150。
以此方式,HA管理节点110以对应用150和/或计算单元140真正透明的方式启用远程硬件加速即服务(即,AaaS)。换句话说,在请求加速的应用150和HA装置120-122之间没有“硬接线”。
从应用150的角度来看,应用150可与HA接口连接节点130交互,同时不知道HA接口连接节点通过使用提供AaaS的HA管理节点110来实现加速。这意味着,计算单元140和/或应用150不知道哪个特定的HA装置120、121、122提供加速。
此外,例如因为可在许多应用/服务器/操作系统之间共享HA装置120-122,所以HA管理节点110可能够实现更高效的资源利用。
如在背景部分中提到的US8250578借助于特定加速器装置的物理地址直接将处理器指派给加速器场内的特定加速器装置。因此,处理器直接与指派的加速器通信。当特定加速器被占用,处理器试图访问它时,它将被放在队列中。
参考图3,示出了图1的HA管理节点110的实施例的示意性框图。
HA管理节点110可包括处理单元301,诸如用于执行本文中描述的方法的部件。该部件可以用一个或多个硬件单元和/或一个或多个软件单元的形式来体现。因此,根据如下所述的各种实施例,术语“单元”可指电路、软件块等。
HA管理节点110可进一步包括存储器302。存储器可包括(诸如包含或存储)指令(例如采用计算机程序303的形式),这些指令可包括计算机可读代码单元。
根据本文中的一些实施例,HA管理节点110和/或处理单元301包括作为示例性硬件单元的处理电路304,处理电路304可包括一个或多个处理器。因此,处理单元301可用处理电路304的形式体现或者可由处理电路304‘实现’。指令可由处理电路304可执行,由此HA管理节点110可操作以执行图2的方法。作为另一个示例,指令在由HA管理节点110和/或处理电路304执行时可使HA管理节点110执行根据图2的方法。
鉴于上文,在一个示例中,可提供有一种HA管理节点110,所述HA管理节点110被配置用于管理借助于由HA管理节点110管理的多个硬件加速装置120-122内的至少一个HA装置120、121、122的硬件加速的请求。如上所述,分解式硬件系统100可包括多个HA装置120-122。再次,存储器302包含由所述处理电路304可执行的指令,由此HA管理节点110可操作用于:
从HA接口连接节点130接收处理源数据的硬件加速的请求,其中由调用HA接口连接节点130以发起处理源数据的硬件加速的应用来管理源数据,
向HA接口连接节点130发送用于存储源数据的源存储器位置的指示,
从所述多个HA装置120-122中选择一个HA装置120、121、122,
从HA接口连接节点130接收要被加速的代码块,
向所述一个HA装置120、121、122发送源存储器位置的指示和代码块有关的加速指令的集合,
从所述HA装置120、121、122接收指示由处理源数据产生的结果数据的结果存储器位置的指示,以及
向HA接口连接节点130发送完成的硬件加速的指示。
图3进一步示出提供(诸如包括、调解、供应等)如在上文直接描述的计算机程序303的载体305或程序载体。载体305可以是电子信号、光信号、无线电信号和计算机可读介质之一。
在一些实施例中,HA管理节点110和/或处理单元301可包括作为示例性硬件单元的接收单元310、发送单元320和选择单元330中的一个或多个。当术语“单元”指硬件单元时,术语“单元”可指电路。在其它示例中,上述示例性硬件单元中的一个或多个硬件单元可作为一个或多个软件单元实现。
此外,HA管理节点110和/或处理电路301可包括在适用时可由接收单元和/或发送单元举例说明的输入/输出(I/O)电路306。
因此,HA管理节点110被配置用于管理借助于由HA管理节点110管理的多个硬件加速装置120-122内的至少一个HA装置120、121、122的硬件加速“HA”的请求。分解式硬件系统100可包括多个HA装置120-122。
因此,根据上文描述的各种实施例,HA管理节点110和/或处理电路304和/或处理单元301和/或接收单元310被配置用于从HA接口连接节点130接收处理源数据的硬件加速的请求。由调用HA接口连接节点130以发起处理源数据的硬件加速的应用来管理源数据。请求可包括结果存储器位置的指示。可从源存储器位置导出结果存储器位置。
HA管理节点110和/或处理电路304和/或处理单元301和/或发送单元320被配置用于向HA接口连接节点130发送用于存储源数据的源存储器位置的指示。
HA管理节点110和/或处理电路304和/或处理单元301和/或选择单元330被配置用于从多个HA装置120-122中选择至少一个HA装置120、121、122。
HA管理节点110和/或处理电路304和/或处理单元301和/或接收单元310被配置用于从HA接口连接节点130接收要被加速的代码块。
HA管理节点110和/或处理电路304和/或处理单元301和/或发送单元320被配置用于向所述一个HA装置120、121、122发送源存储器位置的指示和代码块有关的加速指令的集合。
HA管理节点110和/或处理电路304和/或处理单元301和/或接收单元310被配置用于从所述HA装置120、121、122接收指示由处理源数据产生的结果数据的结果存储器位置的指示。
HA管理节点110和/或处理电路304和/或处理单元301和/或发送单元320被配置用于向HA接口连接节点130发送完成的硬件加速的指示。
如本文中所使用的,术语“节点”或“网络节点”可指一个或多个物理实体,诸如装置、设备、计算机、服务器等。这可意味着,本文中的实施例可在一个物理实体中实现。备选地,本文中的实施例可在多个物理实体(诸如包括所述一个或多个物理实体的布置)中实现,即,实施例可用分布式方式实现,诸如在可包括服务器机器的集合的云系统上实现。在云系统的情况下,术语“节点”可指虚拟机,诸如容器(container)、虚拟运行时环境(virtual runtime environment)等。可由可驻留在不同的物理机中(例如,在不同的计算机中)的诸如存储器、处理、网络和存储资源的硬件资源组装虚拟机。
如本文中所使用的,术语“单元”可指一个或多个功能单元,每个功能单元可作为节点中的一个或多个硬件单元和/或一个或多个软件单元和/或组合的软件/硬件单元实现。在一些示例中,单元可表示作为节点的软件和/或硬件实现的功能单元。
如本文中所使用的,术语“计算机程序载体”、“程序载体”或“载体”可指电子信号、光信号、无线电信号和计算机可读介质之一。在一些示例中,计算机程序载体可排除暂时性的传播信号,诸如电子、光和/或无线电信号。因此,在这些示例中,计算机程序载体可以是非暂时性载体,诸如非暂时性计算机可读介质。
如本文中所使用的,术语“处理单元”可包括一个或多个硬件单元、一个或多个软件单元或其组合。任何此类单元,无论是硬件、软件还是组合的硬件-软件单元,都可以是如本文中所公开的确定部件、估计部件、捕获部件、关联部件、比较部件、标识部件、选择部件、接收部件、发送部件等。作为一示例,表述“部件”可以是与上文结合图列出的单元对应的单元。
如本文中所使用的,术语“软件单元”可指软件应用、动态链接库(DLL)、软件组件、软件对象、根据组件对象模型(COM)的对象、软件功能、软件引擎、可执行二进制软件文件等。
术语“处理单元”或“处理电路”在本文中可涵盖包含例如一个或多个处理器的处理单元、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理电路等可包括一个或多个处理器内核。
如本文中所使用的,表述“被配置成/用于”可表示,处理电路借助于软件配置和/或硬件配置而被配置成(诸如适于或可操作以)执行本文中描述的一个或多个动作。
如本文中所使用的,术语“动作”可指动作、步骤、操作、响应、反应、活动等。应注意,如果适用的话,本文中的动作可拆分成两个或更多个子动作。此外,同样如果适用的话,应注意,本文中描述的两个或更多个动作可合并成单个动作。
如本文中所使用的,术语“存储器”可指硬盘、磁存储介质、便携式计算机软盘或盘、闪速存储器、随机存取存储器(RAM)等。此外,术语“存储器”可指处理器的内部寄存器存储器等。
如本文中所使用的,术语“计算机可读介质”可以是通用串行总线(USB)存储器、数字多功能盘(DVD)、蓝光盘、作为数据流接收的软件单元、闪速存储器、硬盘驱动器、存储器卡(诸如MemoryStick)、多媒体卡(MMC)、安全数字(SD)卡等。计算机可读介质的上述示例中的一个或多个示例可作为一个或多个计算机程序产品被提供。
如本文中所使用的,术语“计算机可读代码单元”可以是计算机程序的文本、以编译格式表示计算机程序的整个二进制文件或其部分或它们之间的任何事物。
如本文中所使用的,表述“传送”和“发送”被认为是可互换的。这些表述包括通过广播、单播、组播等的传输。在本上下文中,通过广播的传输可由范围内的任何被授权的装置接收和解码。在单播的情况下,一个特定寻址的装置可接收和解码传输。在组播的情况下,一组特定寻址的装置可接收和解码传输。
如本文中所使用的,术语“数量”和/或“值”可以是任何种类的数字,诸如二进制、实数、虚数或有理数等。此外,“数量”和/或“值”可以是一个或多个字符,诸如字母或字母串。“数量”和/或“值”也可以由位串(即,0和/或1)表示。
如本文中所使用的,除非另外从上下文显而易见,否则术语“第一”、“第二”、“第三”等可能仅用于彼此区分特征、设备、元件、单元等。
如本文中所使用的,术语“后续动作”可指一个动作在前一个动作之后执行,而附加的动作可以或者或可以不在所述一个动作之前执行,但是在前一个操作之后执行。
如本文中所使用的,术语“……的集合”可指某物的一个或多个。例如,根据本文中的实施例,装置的集合可指一个或多个装置,参数的集合可指一个或多个参数等。
如本文中所使用的,表述“在一些实施例中”已经用于指示,描述的实施例的特征可与本文中公开的任何其它实施例组合。
尽管已经描述了各个方面的实施例,但是许多不同的变更、修改及其类似变化将对于本领域技术人员而言变得显而易见。因此,描述的实施例不旨在限制本公开的范围。
Claims (8)
1.一种由硬件加速管理节点(110)执行的用于管理借助于由所述硬件加速管理节点(110)管理的多个硬件加速装置(120-122)内的至少一个硬件加速装置(120、121、122)的硬件加速“HA”的请求的方法,其中所述方法包括:
从HA接口连接节点(130)接收(A020)处理源数据的硬件加速的请求,其中由调用所述HA接口连接节点(130)以发起处理所述源数据的所述硬件加速的应用来管理所述源数据,
向所述HA接口连接节点(130)发送(A030)用于存储所述源数据的源存储器位置的指示,
从所述多个硬件加速装置(120-122)中选择(A040)至少一个硬件加速装置(120、121、122),
从所述HA接口连接节点(130)接收(A070)要被加速的代码块,
向所述至少一个硬件加速装置(120、121、122)发送(A080)所述源存储器位置的所述指示和所述代码块有关的加速指令的集合,
从所述至少一个硬件加速装置(120、121、122)接收(A110)指示由处理所述源数据产生的结果数据的结果存储器位置的指示,以及
向所述HA接口连接节点(130)发送(A120)完成的硬件加速的指示,
其中至少一个选择的硬件加速装置对所述应用是透明的。
2.根据权利要求1所述的方法,其中所述请求包括所述结果存储器位置的所述指示。
3.根据前述权利要求中任一权利要求所述的方法,其中从所述源存储器位置导出所述结果存储器位置。
4.一种硬件加速管理节点(110),被配置用于管理借助于由所述硬件加速管理节点(110)管理的多个硬件加速装置(120-122)内的至少一个硬件加速装置(120、121、122)的硬件加速“HA”的请求,其中所述硬件加速管理节点(110)被配置用于:
从HA接口连接节点(130)接收处理源数据的硬件加速的请求,其中由调用所述HA接口连接节点(130)以发起处理所述源数据的所述硬件加速的应用来管理所述源数据,
向所述HA接口连接节点(130)发送用于存储所述源数据的源存储器位置的指示,
从所述多个硬件加速装置(120-122)中选择至少一个硬件加速装置(120、121、122),
从所述HA接口连接节点(130)接收要被加速的代码块,
向所述至少一个硬件加速装置(120、121、122)发送所述源存储器位置的所述指示和所述代码块有关的加速指令的集合,
从所述至少一个硬件加速装置(120、121、122)接收指示由处理所述源数据产生的结果数据的结果存储器位置的指示,以及
向所述HA接口连接节点(130)发送完成的硬件加速的指示,
其中至少一个选择的硬件加速装置对所述应用是透明的。
5.根据权利要求4所述的硬件加速管理节点(110),其中所述请求包括所述结果存储器位置的所述指示。
6.根据权利要求4-5中任一权利要求所述的硬件加速管理节点(110),其中从所述源存储器位置导出所述结果存储器位置。
7.一种计算机可读介质,在所述计算机可读介质上存储有包括计算机可读代码单元的计算机程序(303),所述计算机可读代码单元在网络节点(110)上执行时使所述网络节点(110)执行根据权利要求1-3中任一权利要求所述的方法。
8.一种计算机程序产品,在所述计算机程序产品上存储有包括计算机可读代码单元的计算机程序(303),所述计算机可读代码单元在网络节点(110)上执行时使所述网络节点(110)执行根据权利要求1-3中任一权利要求所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2018/050477 WO2019216797A1 (en) | 2018-05-08 | 2018-05-08 | Method and node for managing a request for hardware acceleration by means of an accelerator device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112041817A CN112041817A (zh) | 2020-12-04 |
CN112041817B true CN112041817B (zh) | 2024-11-08 |
Family
ID=62196671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093252.XA Active CN112041817B (zh) | 2018-05-08 | 2018-05-08 | 用于管理借助于加速器装置的硬件加速的请求的方法和节点 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11340949B2 (zh) |
EP (1) | EP3791274B1 (zh) |
CN (1) | CN112041817B (zh) |
WO (1) | WO2019216797A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116821204A (zh) * | 2022-03-21 | 2023-09-29 | 华为技术有限公司 | 一种数据处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357258A (zh) * | 2015-09-28 | 2016-02-24 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7714870B2 (en) * | 2003-06-23 | 2010-05-11 | Intel Corporation | Apparatus and method for selectable hardware accelerators in a data driven architecture |
EP1978761A1 (en) | 2007-04-02 | 2008-10-08 | Nokia Siemens Networks Oy | Method, network and device for information provision by using paging and cell broadcast services |
US8250578B2 (en) | 2008-02-22 | 2012-08-21 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US8434087B2 (en) * | 2008-08-29 | 2013-04-30 | International Business Machines Corporation | Distributed acceleration devices management for streams processing |
US8880544B2 (en) | 2009-06-26 | 2014-11-04 | Simplivity Corporation | Method of adapting a uniform access indexing process to a non-uniform access memory, and computer system |
US20120096445A1 (en) * | 2010-10-18 | 2012-04-19 | Nokia Corporation | Method and apparatus for providing portability of partially accelerated signal processing applications |
US9405550B2 (en) * | 2011-03-31 | 2016-08-02 | International Business Machines Corporation | Methods for the transmission of accelerator commands and corresponding command structure to remote hardware accelerator engines over an interconnect link |
US9703723B2 (en) | 2011-08-29 | 2017-07-11 | International Business Machines Corporation | Method and apparatus for performing mapping within a data processing system having virtual machines |
KR101861742B1 (ko) * | 2011-08-30 | 2018-05-30 | 삼성전자주식회사 | 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법 |
CN105579959B (zh) * | 2013-09-24 | 2019-06-07 | 渥太华大学 | 硬件加速器虚拟化 |
US9428332B2 (en) | 2014-07-20 | 2016-08-30 | Audrey A. SUPPLE | Outdoor trash container with bag holder |
KR102459716B1 (ko) | 2014-07-30 | 2022-10-28 | 모비디어스 리미티드 | 저전력 컴퓨테이셔널 이미징 |
US9792154B2 (en) * | 2015-04-17 | 2017-10-17 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
US20160379109A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Convolutional neural networks on hardware accelerators |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
CN112260848B (zh) | 2015-11-30 | 2023-12-08 | 华为技术有限公司 | 虚拟网络功能的配置方法和装置 |
CN112099940B (zh) * | 2016-08-26 | 2024-11-05 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
CN110770710B (zh) * | 2017-05-03 | 2023-09-05 | 艾德蒂克通信公司 | 用于控制数据加速的装置和方法 |
-
2018
- 2018-05-08 US US17/052,172 patent/US11340949B2/en active Active
- 2018-05-08 CN CN201880093252.XA patent/CN112041817B/zh active Active
- 2018-05-08 EP EP18725673.0A patent/EP3791274B1/en active Active
- 2018-05-08 WO PCT/SE2018/050477 patent/WO2019216797A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357258A (zh) * | 2015-09-28 | 2016-02-24 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019216797A1 (en) | 2019-11-14 |
US20210055971A1 (en) | 2021-02-25 |
US11340949B2 (en) | 2022-05-24 |
EP3791274A1 (en) | 2021-03-17 |
CN112041817A (zh) | 2020-12-04 |
EP3791274B1 (en) | 2024-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709705B2 (en) | Event proxies for functions-as-a-service (FaaS) infrastructures | |
CN108182111B (zh) | 任务调度系统、方法和装置 | |
US7730183B2 (en) | System and method for generating virtual networks | |
US8676848B2 (en) | Configuring cloud resources | |
WO2022007638A1 (zh) | 一种数据处理方法、装置、设备及系统 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN111258565B (zh) | 小程序的生成方法、系统、服务器及存储介质 | |
CN104657408B (zh) | 具有多个正交主题树的发布订阅代理器 | |
US8938522B2 (en) | Tiered XML services in a content management system | |
CN112041817B (zh) | 用于管理借助于加速器装置的硬件加速的请求的方法和节点 | |
US11861425B2 (en) | Runtime mapping of asynchronous application programming interface messaging topics and schemas | |
CN110781159A (zh) | Ceph目录文件信息读取方法、装置、服务器及存储介质 | |
CN113672671B (zh) | 一种实现数据加工的方法和装置 | |
CN115373869A (zh) | 基于aar的进程处理方法、装置及电子设备 | |
US10616317B2 (en) | Method and system for affinity load balancing | |
US12001458B2 (en) | Multi-cloud object store access | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
WO2018074479A1 (ja) | データ処理装置およびデータ処理方法 | |
CN114443253A (zh) | 磁盘资源调度方法、装置、电子设备、介质及程序产品 | |
US11797342B2 (en) | Method and supporting node for supporting process scheduling in a cloud system | |
US11392433B1 (en) | Generation of asynchronous application programming interface specifications for messaging topics | |
CN115600567B (zh) | 一种报表导出方法及装置 | |
KR102642396B1 (ko) | 제한된 gpu리소스를 사용한 딥러닝 추론 모델을 위한 배치 스케줄링 장치 | |
CN115114890A (zh) | 数据解析方法及装置、电子设备及可读介质 | |
CN118152131A (zh) | 一种gpu集群以及基于gpu集群的数据预处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |