CN112269656A - 一种基于多核处理器的应用配置方法、装置和*** - Google Patents
一种基于多核处理器的应用配置方法、装置和*** Download PDFInfo
- Publication number
- CN112269656A CN112269656A CN202011109498.7A CN202011109498A CN112269656A CN 112269656 A CN112269656 A CN 112269656A CN 202011109498 A CN202011109498 A CN 202011109498A CN 112269656 A CN112269656 A CN 112269656A
- Authority
- CN
- China
- Prior art keywords
- cpu
- fpga
- acceleration
- memory
- card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明实施例公开了一种基于多核处理器的应用配置方法、装置和***,CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡。FPGA加速卡对各内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度。CPU应用端依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡和哪个CPU及其内存区域直接连接,从而可以根据性能需求指派加速应用运行在相应的FPGA加速卡上,从而达到优化进程分配的效果。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及一种基于多核处理器的应用配置方法、装置和***。
背景技术
中央处理器(Central Processing Unit,CPU)亲和性(affinity)就是进程要在某个给定的CPU上尽量长时间地运行,而不被迁移到其他处理器的倾向性。一般情况下,亲和性由软件自动控制,以保证整个应用程序的综合性能。但在大数据和高性能计算领域中,对于大量计算、时间敏感的、决定性的进程,CPU亲和性可以手动指派,例如将此进程指派独立CPU运行,对其分配专用内存,提高缓存命中率。其余普通进程可以由其它CPU自由调度,称之为硬亲和性。
云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,通过多部服务器组成的***进行处理和分析这些进程得到结果并返回给用户。典型云计算高性能服务器架构的结构示意图如图1所示,不考虑以太网拓扑。其由多核CPU,内存,若干个现场可编程门阵列(Field Programmable Gate Array,FPGA)加速卡组成。举例说明,FPGA加速卡1、FPGA加速卡2、FPGA加速卡3和CPU1直接通过主机与外设的接口总线(Peripheral Component Interconnect Express,PCIE)相连,FPGA加速卡4、FPGA加速卡5、FPGA加速卡6和CPU2直接通过PCIE总线相连,CPU1和CPU2各有一组内存条,CPU1和CPU2之间通过UPI高速总线互联。
现有技术中,CPU为多块FPGA加速卡分配的内存空间都是随机的,加速应用分配给哪个FPGA加速卡也是随机的。从图1的典型云计算服务器架构可以看到,内存是分布在多个CPU上的,FPGA加速卡也是分布在多个CPU上,多个CPU之间通过UPI总线互联。以FPGA加速卡1为例,其访问内存1的速度肯定高于访问内存2的速度,因为访问内存2还需要通过UPI总线,虽说UPI总线速度很高,但也会带来微秒级的延时。高性能服务器的CPU数量动辄4核8核甚至更多核,一个PCIE槽位访问某段内存甚至需要进行2次以上UPI总线传输,会导致内存访问性能进一步下降。
可见,如何提升内存访问性能,是本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种基于多核处理器的应用配置方法、装置和***,可以提升内存访问性能。
为解决上述技术问题,本发明实施例提供一种基于多核处理器的应用配置方法,适用于CPU应用端,所述方法包括:
从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;
获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;
依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用。
可选地,所述依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用包括:
按照预设的亲和度范围与连接方式的对应关系,对所述FPGA加速卡与各所述CPU的亲和度进行划分,以确定出与目标CPU具有直连关系的第一FPGA加速卡组,以及与所述目标CPU具有跨节点连接关系的第二FPGA加速卡组;其中,所述目标CPU为所有所述CPU中的任意一个CPU;
将目标CPU中性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组;将目标CPU中性能需求量未超过预设阈值的加速应用分配至所述第二FPGA加速卡组。
可选地,所述将目标CPU中性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组包括:
判断性能需求量超过预设阈值的加速应用的个数是否小于预设上限值;
若是,则将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中当前负载量最小的一个FPGA加速卡中;
若否,则依据所述第一FPGA加速卡组中各FPGA加速卡的负载量降序排列的顺序,依次将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中相应的FPGA加速卡中。
可选地,在所述依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用还包括:
接收各所述FPGA加速卡反馈的运行结果,并存储各所述FPGA加速卡所对应的运行结果。
可选地,在所述接收各所述FPGA加速卡反馈的运行结果之后还包括:
判断所述第一FPGA加速卡组反馈的运行结果中包含的耗时时间是否均小于预设时间限值;
若所述第一FPGA加速卡组中存在耗时时间不小于预设时间限值的目标FPGA加速卡,则对所述目标FPGA加速卡设置提示标识。
本发明实施例还提供了一种基于多核处理器的应用配置装置,适用于CPU应用端,所述装置包括选取单元、获取单元和分配单元;
所述选取单元,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;
所述获取单元,用于获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;
所述分配单元,用于依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用。
可选地,所述分配单元包括划分子单元、第一分配子单元和第二分配子单元;
所述划分子单元,用于按照预设的亲和度范围与连接方式的对应关系,对所述FPGA加速卡与各所述CPU的亲和度进行划分,以确定出与目标CPU具有直连关系的第一FPGA加速卡组,以及与所述目标CPU具有跨节点连接关系的第二FPGA加速卡组;其中,所述目标CPU为所有所述CPU中的任意一个CPU;
所述第一分配子单元,用于将目标CPU中性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组;
所述第二分配子单元,用于将目标CPU中性能需求量未超过预设阈值的加速应用分配至所述第二FPGA加速卡组。
可选地,所述第一分配子单元具体用于判断性能需求量超过预设阈值的加速应用的个数是否小于预设上限值;若是,则将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中当前负载量最小的一个FPGA加速卡中;若否,则依据所述第一FPGA加速卡组中各FPGA加速卡的负载量降序排列的顺序,依次将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中相应的FPGA加速卡中。
可选地,在所述依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用还包括存储单元;
所述存储单元,用于接收各所述FPGA加速卡反馈的运行结果,并存储各所述FPGA加速卡所对应的运行结果。
可选地,还包括判断单元和设置单元;
所述判断单元,用于判断所述第一FPGA加速卡组反馈的运行结果中包含的耗时时间是否均小于预设时间限值;
所述设置单元,用于若所述第一FPGA加速卡组中存在耗时时间不小于预设时间限值的目标FPGA加速卡,则对所述目标FPGA加速卡设置提示标识。
本发明实施例还提供了一种基于多核处理器的应用配置方法,适用于FPGA加速卡,所述方法包括:
获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;
对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;
将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端,以便于所述CPU应用端依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA端分配相应级别的加速应用。
可选地,所述对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度包括:
向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对所述目标内存段执行数据操作的读写耗时值;其中,所述目标内存段为所有所述内存段中的任意一个内存段;
若所述读写耗时值小于当前存储的最小耗时值,则将所述读写耗时值作为最小耗时值进行存储;
判断当前的读取测试次数是否达到预设阈值;
若当前的读取测试次数未达到预设阈值,则返回所述向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对所述目标内存段执行数据操作的读写耗时值的步骤;
若当前的读取测试次数达到预设阈值,则将存储的最小耗时值作为所述FPGA加速卡与所述目标内存段的亲和度。
本发明实施例还提供了一种基于多核处理器的应用配置装置,适用于FPGA加速卡,所述装置包括获取单元、测试单元和反馈单元;
所述获取单元,用于获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;
所述测试单元,用于对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;
所述反馈单元,用于将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端,以便于所述CPU应用端依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA端分配相应级别的加速应用。
可选地,所述测试单元包括读写子单元、第一作为子单元、判断子单元和第二作为子单元;
所述读写子单元,用于向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对所述目标内存段执行数据操作的读写耗时值;其中,所述目标内存段为所有所述内存段中的任意一个内存段;
所述第一作为子单元,用于若所述读写耗时值小于当前存储的最小耗时值,则将所述读写耗时值作为最小耗时值进行存储;
所述判断子单元,用于判断当前的读取测试次数是否达到预设阈值;若当前的读取测试次数未达到预设阈值,则返回所述读写子单元;
所述第二作为子单元,用于若当前的读取测试次数达到预设阈值,则将存储的最小耗时值作为所述FPGA加速卡与所述目标内存段的亲和度。
本发明实施例还提供了一种基于多核处理器的应用配置***,包括CPU应用端和FPGA加速卡;
所述CPU应用端,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用;
所述FPGA加速卡,用于获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端。
由上述技术方案可以看出,CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量。FPGA加速卡获取到CPU应用端分配的内存段;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度;将FPGA加速卡与各CPU的亲和度反馈至CPU应用端。亲和度反映了FPGA加速卡访问CPU的内存资源所花费的时间,CPU应用端可以依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。在该技术方案中,CPU应用端将物理上每个CPU外挂的内存都分别分配一段给同一个FPGA加速卡,FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡在物理上和哪个CPU及其内存区域直接连接,从而可以指派性能需求高的加速应用运行在和CPU直连的FPGA加速卡上,性能需求相对低的加速应用运行在和CPU非直连的FPGA加速卡上,从而达到优化进程分配的效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种云计算高性能服务器架构的结构示意图;
图2为本发明实施例提供的一种基于多核处理器的应用配置方法的信令图;
图3为本发明实施例提供的一种适用于CPU应用端的基于多核处理器的应用配置装置的结构示意图;
图4为本发明实施例提供的一种适用于FPGA加速卡的基于多核处理器的应用配置装置的结构示意图;
图5为本发明实施例提供的一种基于多核处理器的应用配置***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于多核处理器的应用配置方法。图2为本发明实施例提供的一种基于多核处理器的应用配置方法的信令图,该方法包括:
S201:CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡。
多核处理器指的是包含多个CPU。其中,每个CPU可以与多个FPGA加速卡连接。
CPU应用端可以实现对多个CPU的统一化管理,在本发明实施例中,为了有效的获取各FPGA加速卡与各CPU之间的连接关系,可以由CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡。
其中,每个内存段有其对应的内存地址和内存容量。
S202:FPGA加速卡获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段。
S203:FPGA加速卡对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度。
亲和度反映了FPGA加速卡与CPU的连接关系。当FPGA加速卡访问CPU的内存所需的时间越短,说明FPGA加速卡与CPU的连接路径越短,此时FPGA加速卡与CPU的亲和度越高。
CPU应用端为FPGA加速卡分配的内存段有多个,FPGA加速卡对每个内存段的延时测试方式相同,为了便于介绍,以所有内存段中的任意一个内存段即目标内存段为例,在具体实现中,可以向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对目标内存段执行数据操作的读写耗时值。若读写耗时值小于当前存储的最小耗时值,则将读写耗时值作为最小耗时值进行存储。
考虑到单次测试的准确性不高,因此,在本发明实施例中,可以对目标内存段进行多次测试,每执行一次读取测试,可以判断当前的读取测试次数是否达到预设阈值。若当前的读取测试次数未达到预设阈值,则返回向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对目标内存段执行数据操作的读写耗时值的步骤。若当前的读取测试次数达到预设阈值,则可以将存储的最小耗时值作为FPGA加速卡与目标内存段的亲和度。FPGA加速卡与CPU的亲和度的取值越小,说明FPGA加速卡访问CPU的内存花费的时间越短。
S204:FPGA加速卡将FPGA加速卡与各CPU的亲和度反馈至CPU应用端。
FPGA加速卡通过对各内存段执行延时测试,可以得到其与各CPU的亲和度,为了便于CPU应用端向其分配加速应用,FPGA加速卡可以将FPGA加速卡与各CPU的亲和度反馈至CPU应用端。
S205:CPU应用端获取各FPGA加速卡传输的FPGA加速卡与各CPU的亲和度,依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。
每个CPU有其对应的调度应用和加速应用。其中,调度应用只运行在CPU上,负责调度其它加速应用的执行。CPU可以对挂载的FPGA加速卡分配内存空间,将加速应用下载到FPGA加速卡。此外,加速应用中也有高优先级的核心加速应用,和普通优先级的普通加速应用之分,可以通过加速应用的性能需求量反映加速应用的优先级。
在具体实现中,可以按照预设的亲和度范围与连接方式的对应关系,对FPGA加速卡与各CPU的亲和度进行划分,以确定出与目标CPU具有直连关系的第一FPGA加速卡组,以及与目标CPU具有跨节点连接关系的第二FPGA加速卡组;其中,目标CPU为所有CPU中的任意一个CPU。
在本发明实施例中,可以根据各加速应用的优先级标识,将高优先级的加速应用分配至第一FPGA加速卡组,将普通优先级的加速应用分配至第二FPGA加速卡组。
当加速应用未设置优先级标识时,可以根据目标CPU中性能需求量与预设阈值的关系,向FPGA加速卡分配加速应用。可以将目标CPU中性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组;将目标CPU中性能需求量未超过预设阈值的加速应用分配至第二FPGA加速卡组。
其中,预设阈值的取值可以根据实际需求设置,在此不做限定。
考虑到第一FPGA加速卡组中包含的FPGA加速卡的个数往往有多个,在将加速应用分配至第一FPGA加速卡组时,可以判断性能需求量超过预设阈值的加速应用的个数是否小于预设上限值。
当性能需求量超过预设阈值的加速应用的个数小于预设上限值,则说明单个FPGA加速卡便可以执行该加速应用,此时可以将性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组中当前负载量最小的一个FPGA加速卡中。
当性能需求量超过预设阈值的加速应用的个数不小于预设上限值,则说明需要多个FPGA加速卡执行加速应用,以保证加速应用的处理效率,此时可以依据第一FPGA加速卡组中各FPGA加速卡的负载量降序排列的顺序,依次将性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组中相应的FPGA加速卡中。
由上述技术方案可以看出,CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量。FPGA加速卡获取到CPU应用端分配的内存段;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度;将FPGA加速卡与各CPU的亲和度反馈至CPU应用端。亲和度反映了FPGA加速卡访问CPU的内存资源所花费的时间,CPU应用端可以依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。在该技术方案中,CPU应用端将物理上每个CPU外挂的内存都分别分配一段给同一个FPGA加速卡,FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡在物理上和哪个CPU及其内存区域直接连接,从而可以指派性能需求高的加速应用运行在和CPU直连的FPGA加速卡上,性能需求相对低的加速应用运行在和CPU非直连的FPGA加速卡上,从而达到优化进程分配的效果。
FPGA加速卡对加速应用执行完毕之后,可以将运行结果反馈值CPU应用端,CPU应用端在接收到各FPGA加速卡反馈的运行结果之后,可以存储各FPGA加速卡所对应的运行结果,以便于后续的查询调用。
运行结果中可以包含FPGA加速卡执行加速应用的耗时时间,CPU应用端在接收各FPGA加速卡反馈的运行结果之后,可以判断第一FPGA加速卡组反馈的运行结果中包含的耗时时间是否均小于预设时间限值。若第一FPGA加速卡组中存在耗时时间不小于预设时间限值的目标FPGA加速卡,则说明当前FPGA加速卡的处理性能不佳,此时可以对目标FPGA加速卡设置提示标识,以便于管理人员可以及时查看修复性能不佳的FPGA加速卡。
图3为本发明实施例提供的一种基于多核处理器的应用配置装置的结构示意图,适用于CPU应用端,装置包括选取单元31、获取单元32和分配单元33;
选取单元31,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;
获取单元32,用于获取各FPGA加速卡传输的FPGA加速卡与各CPU的亲和度;
分配单元33,用于依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。
可选地,分配单元包括划分子单元、第一分配子单元和第二分配子单元;
划分子单元,用于按照预设的亲和度范围与连接方式的对应关系,对FPGA加速卡与各CPU的亲和度进行划分,以确定出与目标CPU具有直连关系的第一FPGA加速卡组,以及与目标CPU具有跨节点连接关系的第二FPGA加速卡组;其中,目标CPU为所有CPU中的任意一个CPU;
第一分配子单元,用于将目标CPU中性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组;
第二分配子单元,用于将目标CPU中性能需求量未超过预设阈值的加速应用分配至第二FPGA加速卡组。
可选地,第一分配子单元具体用于判断性能需求量超过预设阈值的加速应用的个数是否小于预设上限值;若是,则将性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组中当前负载量最小的一个FPGA加速卡中;若否,则依据第一FPGA加速卡组中各FPGA加速卡的负载量降序排列的顺序,依次将性能需求量超过预设阈值的加速应用分配至第一FPGA加速卡组中相应的FPGA加速卡中。
可选地,在依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用还包括存储单元;
存储单元,用于接收各FPGA加速卡反馈的运行结果,并存储各FPGA加速卡所对应的运行结果。
可选地,还包括判断单元和设置单元;
判断单元,用于判断第一FPGA加速卡组反馈的运行结果中包含的耗时时间是否均小于预设时间限值;
设置单元,用于若第一FPGA加速卡组中存在耗时时间不小于预设时间限值的目标FPGA加速卡,则对目标FPGA加速卡设置提示标识。
图3所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量,以便于FPGA加速卡获取到CPU应用端分配的内存段;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度。CPU应用端获取各FPGA加速卡传输的FPGA加速卡与各CPU的亲和度,亲和度反映了FPGA加速卡访问CPU的内存资源所花费的时间,CPU应用端可以依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。在该技术方案中,CPU应用端将物理上每个CPU外挂的内存都分别分配一段给同一个FPGA加速卡,FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡在物理上和哪个CPU及其内存区域直接连接,从而可以指派性能需求高的加速应用运行在和CPU直连的FPGA加速卡上,性能需求相对低的加速应用运行在和CPU非直连的FPGA加速卡上,从而达到优化进程分配的效果。
图4为本发明实施例提供的一种基于多核处理器的应用配置装置的结构示意图,适用于FPGA加速卡,装置包括获取单元41、测试单元42和反馈单元43;
获取单元41,用于获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;
测试单元42,用于对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度;
反馈单元43,用于将FPGA加速卡与各CPU的亲和度反馈至CPU应用端,以便于CPU应用端依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA端分配相应级别的加速应用。
可选地,测试单元包括读写子单元、第一作为子单元、判断子单元和第二作为子单元;
读写子单元,用于向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对目标内存段执行数据操作的读写耗时值;其中,目标内存段为所有内存段中的任意一个内存段;
第一作为子单元,用于若读写耗时值小于当前存储的最小耗时值,则将读写耗时值作为最小耗时值进行存储;
判断子单元,用于判断当前的读取测试次数是否达到预设阈值;若当前的读取测试次数未达到预设阈值,则返回读写子单元;
第二作为子单元,用于若当前的读取测试次数达到预设阈值,则将存储的最小耗时值作为FPGA加速卡与目标内存段的亲和度。
图4所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,FPGA加速卡可以获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度;和度反映了FPGA加速卡访问CPU的内存资源所花费的时间。FPGA加速卡可以将FPGA加速卡与各CPU的亲和度反馈至CPU应用端,以便于CPU应用端依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA端分配相应级别的加速应用。在该技术方案中,CPU应用端将物理上每个CPU外挂的内存都分别分配一段给同一个FPGA加速卡,FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡在物理上和哪个CPU及其内存区域直接连接,从而可以指派性能需求高的加速应用运行在和CPU直连的FPGA加速卡上,性能需求相对低的加速应用运行在和CPU非直连的FPGA加速卡上,从而达到优化进程分配的效果。
图5为本发明实施例提供的一种基于多核处理器的应用配置***的结构示意图,包括CPU应用端51和FPGA加速卡52;
CPU应用端51,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡52;其中,每个内存段有其对应的内存地址和内存容量;获取各FPGA加速卡52传输的FPGA加速卡52与各CPU的亲和度;依据FPGA加速卡52与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡52分配相应级别的加速应用;
FPGA加速卡52,用于获取CPU应用端51从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡52的内存段;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡52与各CPU的亲和度;将FPGA加速卡52与各CPU的亲和度反馈至CPU应用端51。
图5所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,CPU应用端从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量。FPGA加速卡获取到CPU应用端分配的内存段;对各内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各CPU的亲和度;将FPGA加速卡与各CPU的亲和度反馈至CPU应用端。亲和度反映了FPGA加速卡访问CPU的内存资源所花费的时间,CPU应用端可以依据FPGA加速卡与各CPU的亲和度以及各加速应用的性能需求量,向各FPGA加速卡分配相应级别的加速应用。在该技术方案中,CPU应用端将物理上每个CPU外挂的内存都分别分配一段给同一个FPGA加速卡,FPGA对各内存段的读写延时进行测试并告知CPU应用端,以便于CPU应用端可以识别FPGA加速卡在物理上和哪个CPU及其内存区域直接连接,从而可以指派性能需求高的加速应用运行在和CPU直连的FPGA加速卡上,性能需求相对低的加速应用运行在和CPU非直连的FPGA加速卡上,从而达到优化进程分配的效果。
以上对本发明实施例所提供的一种基于多核处理器的应用配置方法、装置和***进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (10)
1.一种基于多核处理器的应用配置方法,其特征在于,适用于CPU应用端,所述方法包括:
从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;
获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;
依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用。
2.根据权利要求1所述的基于多核处理器的应用配置方法,其特征在于,所述依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用包括:
按照预设的亲和度范围与连接方式的对应关系,对所述FPGA加速卡与各所述CPU的亲和度进行划分,以确定出与目标CPU具有直连关系的第一FPGA加速卡组,以及与所述目标CPU具有跨节点连接关系的第二FPGA加速卡组;其中,所述目标CPU为所有所述CPU中的任意一个CPU;
将目标CPU中性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组;将目标CPU中性能需求量未超过预设阈值的加速应用分配至所述第二FPGA加速卡组。
3.根据权利要求2所述的基于多核处理器的应用配置方法,其特征在于,所述将目标CPU中性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组包括:
判断性能需求量超过预设阈值的加速应用的个数是否小于预设上限值;
若是,则将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中当前负载量最小的一个FPGA加速卡中;
若否,则依据所述第一FPGA加速卡组中各FPGA加速卡的负载量降序排列的顺序,依次将所述性能需求量超过预设阈值的加速应用分配至所述第一FPGA加速卡组中相应的FPGA加速卡中。
4.根据权利要求2所述的基于多核处理器的应用配置方法,其特征在于,在所述依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用还包括:
接收各所述FPGA加速卡反馈的运行结果,并存储各所述FPGA加速卡所对应的运行结果。
5.根据权利要求4所述的基于多核处理器的应用配置方法,其特征在于,在所述接收各所述FPGA加速卡反馈的运行结果之后还包括:
判断所述第一FPGA加速卡组反馈的运行结果中包含的耗时时间是否均小于预设时间限值;
若所述第一FPGA加速卡组中存在耗时时间不小于预设时间限值的目标FPGA加速卡,则对所述目标FPGA加速卡设置提示标识。
6.一种基于多核处理器的应用配置装置,其特征在于,适用于CPU应用端,所述装置包括选取单元、获取单元和分配单元;
所述选取单元,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;
所述获取单元,用于获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;
所述分配单元,用于依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用。
7.一种基于多核处理器的应用配置方法,其特征在于,适用于FPGA加速卡,所述方法包括:
获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;
对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;
将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端,以便于所述CPU应用端依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA端分配相应级别的加速应用。
8.根据权利要求7所述的基于多核处理器的应用配置方法,其特征在于,所述对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度包括:
向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对所述目标内存段执行数据操作的读写耗时值;其中,所述目标内存段为所有所述内存段中的任意一个内存段;
若所述读写耗时值小于当前存储的最小耗时值,则将所述读写耗时值作为最小耗时值进行存储;
判断当前的读取测试次数是否达到预设阈值;
若当前的读取测试次数未达到预设阈值,则返回所述向目标内存段写入数据后进行读取测试,以获取FPGA加速卡对所述目标内存段执行数据操作的读写耗时值的步骤;
若当前的读取测试次数达到预设阈值,则将存储的最小耗时值作为所述FPGA加速卡与所述目标内存段的亲和度。
9.一种基于多核处理器的应用配置装置,其特征在于,适用于FPGA加速卡,所述装置包括获取单元、测试单元和反馈单元;
所述获取单元,用于获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;其中,每个内存段有其对应的内存地址和内存容量;
所述测试单元,用于对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;
所述反馈单元,用于将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端,以便于所述CPU应用端依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA端分配相应级别的加速应用。
10.一种基于多核处理器的应用配置***,其特征在于,包括CPU应用端和FPGA加速卡;
所述CPU应用端,用于从所有CPU外挂的内存空间中依次选取内存段分配给FPGA加速卡;其中,每个内存段有其对应的内存地址和内存容量;获取各所述FPGA加速卡传输的所述FPGA加速卡与各所述CPU的亲和度;依据所述FPGA加速卡与各所述CPU的亲和度以及各加速应用的性能需求量,向各所述FPGA加速卡分配相应级别的加速应用;
所述FPGA加速卡,用于获取CPU应用端从所有CPU外挂的内存空间中依次选取的分配给FPGA加速卡的内存段;对各所述内存地址所指向的内存段进行延时测试,以得到FPGA加速卡与各所述CPU的亲和度;将所述FPGA加速卡与各所述CPU的亲和度反馈至所述CPU应用端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109498.7A CN112269656B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多核处理器的应用配置方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011109498.7A CN112269656B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多核处理器的应用配置方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269656A true CN112269656A (zh) | 2021-01-26 |
CN112269656B CN112269656B (zh) | 2022-12-02 |
Family
ID=74338653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011109498.7A Active CN112269656B (zh) | 2020-10-16 | 2020-10-16 | 一种基于多核处理器的应用配置方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269656B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948124A (zh) * | 2021-03-26 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
CN113190346A (zh) * | 2021-03-30 | 2021-07-30 | 联想(北京)有限公司 | 一种内存管理方法、装置及电子设备 |
CN113905097A (zh) * | 2021-09-26 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种数据传输方法和装置 |
US11989420B2 (en) | 2022-02-24 | 2024-05-21 | Changxin Memory Technologies, Inc. | Memory allocation method and apparatus, electronic device, and storage medium |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019324A (zh) * | 2012-12-26 | 2013-04-03 | 无锡江南计算技术研究所 | 内存能力增强的可重构微服务器 |
CN107122243A (zh) * | 2017-04-12 | 2017-09-01 | 杭州远算云计算有限公司 | 用于cfd仿真计算的异构集群***及cfd计算方法 |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和*** |
US20190108145A1 (en) * | 2018-08-20 | 2019-04-11 | Intel Corporation | Dual in-line memory module (dimm) programmable accelerator card |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***及fpga加速卡 |
CN110618871A (zh) * | 2019-09-21 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与*** |
CN110647999A (zh) * | 2019-08-23 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 一种基于拓扑结构提高深度学习训练速度的方法及装置 |
CN111107061A (zh) * | 2019-11-30 | 2020-05-05 | 浪潮(北京)电子信息产业有限公司 | 一种智能网卡及其通讯方法 |
US10719366B1 (en) * | 2017-07-24 | 2020-07-21 | Amazon Technologies, Inc. | Dynamic and selective hardware acceleration |
-
2020
- 2020-10-16 CN CN202011109498.7A patent/CN112269656B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019324A (zh) * | 2012-12-26 | 2013-04-03 | 无锡江南计算技术研究所 | 内存能力增强的可重构微服务器 |
CN107122243A (zh) * | 2017-04-12 | 2017-09-01 | 杭州远算云计算有限公司 | 用于cfd仿真计算的异构集群***及cfd计算方法 |
US10719366B1 (en) * | 2017-07-24 | 2020-07-21 | Amazon Technologies, Inc. | Dynamic and selective hardware acceleration |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和*** |
US20190108145A1 (en) * | 2018-08-20 | 2019-04-11 | Intel Corporation | Dual in-line memory module (dimm) programmable accelerator card |
CN110851378A (zh) * | 2018-08-20 | 2020-02-28 | 英特尔公司 | 双列直插式存储器模块(dimm)可编程加速卡 |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***及fpga加速卡 |
CN110647999A (zh) * | 2019-08-23 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 一种基于拓扑结构提高深度学习训练速度的方法及装置 |
CN110618871A (zh) * | 2019-09-21 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与*** |
CN111107061A (zh) * | 2019-11-30 | 2020-05-05 | 浪潮(北京)电子信息产业有限公司 | 一种智能网卡及其通讯方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948124A (zh) * | 2021-03-26 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
CN112948124B (zh) * | 2021-03-26 | 2023-09-22 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
CN113190346A (zh) * | 2021-03-30 | 2021-07-30 | 联想(北京)有限公司 | 一种内存管理方法、装置及电子设备 |
CN113905097A (zh) * | 2021-09-26 | 2022-01-07 | 威讯柏睿数据科技(北京)有限公司 | 一种数据传输方法和装置 |
US11989420B2 (en) | 2022-02-24 | 2024-05-21 | Changxin Memory Technologies, Inc. | Memory allocation method and apparatus, electronic device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN112269656B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269656B (zh) | 一种基于多核处理器的应用配置方法、装置和*** | |
US11625322B2 (en) | Performance counters for computer memory | |
US9898338B2 (en) | Network computer system and method for dynamically changing execution sequence of application programs | |
CN111913955A (zh) | 数据的排序处理装置、方法和存储介质 | |
US9098406B2 (en) | Managing addressable memory in heterogeneous multicore processors | |
US20200371696A1 (en) | Method, Apparatus, Device and Storage Medium for Managing Access Request | |
US20230195310A1 (en) | Fpga board memory data reading method and apparatus, and medium | |
US9619288B2 (en) | Deploying software in a multi-instance node | |
CN113722248B (zh) | 命令处理方法及命令处理装置 | |
US11474710B2 (en) | Application-specific memory scaling in multi-device systems | |
JP2020194523A (ja) | アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 | |
CN108132834B (zh) | 多级共享高速缓冲存储器架构下的任务分配方法和*** | |
KR101848450B1 (ko) | 도커 기반의 매니코어 관리 방법 및 이를 수행하는 도커 기반의 매니코어 관리 장치 | |
CN112463356A (zh) | Gpu堆管理器内存地址分配方法、***、终端及存储介质 | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods | |
CN116400982B (zh) | 配置中继寄存器模块的方法和装置、计算设备和可读介质 | |
CN112948113A (zh) | 一种集群资源管理调度方法、装置、设备及可读存储介质 | |
US8245229B2 (en) | Temporal batching of I/O jobs | |
WO2017146618A1 (en) | Methods and modules relating to allocation of host machines | |
CN114924848A (zh) | Io调度方法、装置及设备 | |
CN112130977B (zh) | 一种任务调度方法、装置、设备及介质 | |
CN111581041A (zh) | 一种磁盘性能测试的方法和设备 | |
CN109144231B (zh) | 一种虚拟化电力管理方法及设备 | |
CN115952005B (zh) | 一种元数据负载均衡方法、装置、设备及可读存储介质 | |
CN113282405B (zh) | 一种负载调整的优化方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |