CN113703976B - 一种fpga资源分配方法、装置、设备及可读存储介质 - Google Patents
一种fpga资源分配方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113703976B CN113703976B CN202110997998.7A CN202110997998A CN113703976B CN 113703976 B CN113703976 B CN 113703976B CN 202110997998 A CN202110997998 A CN 202110997998A CN 113703976 B CN113703976 B CN 113703976B
- Authority
- CN
- China
- Prior art keywords
- target
- fpga
- identification information
- algorithm
- acceleration 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.)
- Active
Links
- 238000013468 resource allocation Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000001133 acceleration Effects 0.000 claims abstract description 201
- 230000003068 static effect Effects 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 238000012163 sequencing technique Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 102220465832 La-related protein 1_F10A_mutation Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA资源分配方法,包括:对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;获取目标算法比特流的目标算法标识信息;从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息;从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息;将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。本发明实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。本发明还公开了一种FPGA资源分配装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种FPGA资源分配方法、装置、设备及计算机可读存储介质。
背景技术
随着大量不同类型的应用迁移到云上以及数据量的指数级增长,数据中心为保证服务质量需要提供满足需求的算力。受限于场地、功耗、成本等因素,简单依赖服务器数量的增加不是有效之计,因此考虑到FPGA(Field Programmable Gate Arrays,现场可编程门阵列)具备的低能耗、低延迟、硬件可编程等优点,数据中心通过引入能提供算力的FPGA以提高服务器的计算密度。
FPGA在数据中心的使用方式主要是以PCIe(Peripheral ComponentInterconnect express,高速串行计算机扩展总线标准)加速卡的形式安插在服务器PCIe插槽上,作为CPU(Central Processing Unit,中央处理器)的辅助设备加速某一类应用。目前,随着FPGA加速卡在数据中心的大量部署,在设备管理和资源利用率方面提出了一些挑战,在当前数据中心FPGA加速设备和其所搭载的应用加速算法是被看成是一体的,被定位成特定应用加速卡。如果特定应用没有在运行,FPGA加速卡就处于闲置状态,造成FPGA加速设备资源的浪费。
综上所述,如何有效地解决现有的FPGA资源分配方式易造成FPGA加速设备资源浪费的问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种FPGA资源分配方法,该方法实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用;本发明的另一目的是提供一种FPGA资源分配装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种FPGA资源分配方法,包括:
对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;
获取所述目标算法比特流的目标算法标识信息;
从预设算法信息表中查找所述目标算法标识信息对应的目标静态部分标识信息;其中,所述预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;
从预设FPGA加速卡资源表中查找所述目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,所述预设FPGA加速卡资源表中存储有各所述静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;
将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡。
在本发明的一种具体实施方式中,将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡,包括:
判断所述目标FPGA加速卡标识信息对应的目标FPGA加速卡是否处于空闲状态;
若是,则执行所述将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡的步骤;
若否,则输出目标FPGA加速卡已占用提示信息。
在本发明的一种具体实施方式中,将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡,包括:
当处于空闲状态的目标FPGA加速卡的个数为多个时,分别获取各所述目标FPGA加速卡的使用频率;
对各所述使用频率进行高低排序,得到频率排序结果;
根据所述频率排序结果选取使用频率最低的目标FPGA加速卡;
将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的所述使用频率最低的目标FPGA加速卡。
在本发明的一种具体实施方式中,对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流,包括:
对接收到的FPGA资源分配请求进行解析,得到待资源分配的目标应用业务;
获取所述目标应用业务对应的目标算法比特流。
在本发明的一种具体实施方式中,在将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,还包括:
利用所述目标FPGA加速卡执行所述目标应用业务。
在本发明的一种具体实施方式中,在将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,还包括:
将所述目标FPGA加速卡设置为已占用状态。
在本发明的一种具体实施方式中,在将所述目标FPGA加速卡设置为已占用状态之后,还包括:
判断所述目标FPGA加速卡是否对所述目标应用业务执行完成;
若是,则将所述目标FPGA加速卡设置为空闲状态。
一种FPGA资源分配装置,包括:
请求解析模块,用于对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;
算法标识获取模块,用于获取所述目标算法比特流的目标算法标识信息;
静态标识获取模块,用于从预设算法信息表中查找所述目标算法标识信息对应的目标静态部分标识信息;其中,所述预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;
加速卡标识获取模块,用于从预设FPGA加速卡资源表中查找所述目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,所述预设FPGA加速卡资源表中存储有各所述静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;
比特流加载模块,用于将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡。
一种FPGA资源分配设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述FPGA资源分配方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述FPGA资源分配方法的步骤。
本发明所提供的FPGA资源分配方法,对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;获取目标算法比特流的目标算法标识信息;从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息;其中,预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,预设FPGA加速卡资源表中存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。
由上述技术方案可知,通过预先设置算法信息表和FPGA加速卡资源表,设置算法信息表和FPGA加速卡资源表中的静态部分标识信息作为将算法比特流与FPGA加速卡之间的关联媒介。当解析得到待加载的目标算法比特流之后,根据静态部分标识信息查找目标FPGA加速卡标识信息,将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。从而实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。
相应的,本发明还提供了与上述FPGA资源分配方法相对应的FPGA资源分配装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种FPGA资源分配系统的结构框图;
图2为本发明实施例中FPGA资源分配方法的一种实施流程图;
图3为本发明实施例中FPGA资源分配方法的另一种实施流程图;
图4为本发明实施例中一种FPGA资源分配系统的结构框图;
图5为本发明实施例中一种FPGA资源分配装置的结构框图;
图6为本发明实施例中一种FPGA资源分配设备的结构框图;
图7为本实施例提供的一种FPGA资源分配设备的具体结构示意图。
具体实施方式
在现有的FPGA资源分配方案中,由于FPGA加速卡和算法绑定,数据中心只能提供一种应用业务服务。
参见图1,图1为现有技术中一种FPGA资源分配系统的结构框图。当用户需要图像加速服务时,数据中心只能提供包含图像加速服务的服务器1,如果服务器1已被分配出去,尽管服务器2也有FPGA加速卡,但其只能提供视频加速服务,不能分配。这就造成用户需求得不到满足,同时也存在FPGA资源浪费的情况。
为此,本申请中提供的FPGA资源分配方法中,实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,图2为本发明实施例中FPGA资源分配方法的一种实施流程图,该方法可以包括以下步骤:
S201:对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流。
当存储需要执行的应用业务时,生成FPGA资源分配请求,并向数据中心发送FPGA资源分配请求,FPGA资源分配请求中包含待加载的目标算法比特流(Bitstream)。数据中心接收FPGA资源分配请求,并对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流。
S202:获取目标算法比特流的目标算法标识信息。
目标算法比特流中包含目标算法标识信息,获取目标算法比特流的目标算法标识信息。目标算法标识信息一般设置为目标算法比特流对应的算法ID(Identity document,身份标识号)。
S203:从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息。
其中,预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系。
本发明把部署在云上FPGA加速卡的功能抽象成两部分,一部分是和应用业务无关的部分,比如PCIe数据传输链路、DMA(Direct Memory Access,直接存储器访问)、中断以及温度监控等功能,称之为静态部分shell;另一部是和应用业务相关的算法部分,以加速业务处理,称之为动态部分role。其中动态部分role,可以利用FPGA的硬件可编程特性动态改变,以加速不同的应用。
预先设置存储有各算法标识信息与各静态部分标识信息(即shell ID)之间的对应关系的算法信息表。在获取到目标算法比特流的目标算法标识信息之后,从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息。如表1所示,表1为一种算法信息表。
表1
算法信息表中包含算法ID、算法名字、Shell ID以及算法比特流文件所在路径,其中,算法ID为唯一标识。
S204:从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息。
其中,预设FPGA加速卡资源表中存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系。
预先设置存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系的FPGA加速卡资源表。在从预设算法信息表中查找到目标算法标识信息对应的目标静态部分标识信息之后,从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息。如表2所示,表2为一种FPGA加速卡资源表。
表2
FPGA加速卡资源表中包含FPGA加速卡ID、FPGA加速卡名字、shell ID、所在服务器节点,是否已分配等信息。
S205:将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。
在从预设FPGA加速卡资源表中查找到目标静态部分标识信息对应的目标FPGA加速卡标识信息之后,将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡,从而完成FPGA资源的分配。数据中心通过将FPGA加速卡与算法绑定的方式转变为FPGA加速卡与算法相分离,即把FPGA加速卡和算法功能视作两种独立的资源。与现有FPGA加速卡与算法绑定的方式相比,基于FPGA可编程特性,FPGA加速卡可动态加载不同算法比特流以支持不同应用,甚至一开始FPGA加速卡不加载任何算法,为云上FPGA资源的管理和调度提供了便利。
通过将比特流算法加载到具有相同shell ID的FPGA加速卡上,算法开发者可以针对不同的shell ID生成不同的比特流。以上述表1和表2信息为例,ID号为0001和0003的两个F10A加速卡既可以支持视频编码也可以支持压缩。ID号为0002的F37X加速卡目前支持压缩,但加密算法开发者可以针对F37X的shell ID额外编译生成一份算法比特流,F37X也可以支持加密算法。
综上,当收到使用FPGA加速某项应用业务的需求时,数据中心的FPGA管理系统首先根据业务需要的算法,查找算法信息表,找到对应的shell ID。然后基于shell ID查找FPGA加速卡资源表,找到可用的FPGA加速卡信息,最后把算法比特流加载到可用的FPGA加速卡中,分配给客户。从而实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。
由上述技术方案可知,通过预先设置算法信息表和FPGA加速卡资源表,设置算法信息表和FPGA加速卡资源表中的静态部分标识信息作为将算法比特流与FPGA加速卡之间的关联媒介。当解析得到待加载的目标算法比特流之后,根据静态部分标识信息查找目标FPGA加速卡标识信息,将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。从而实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
参见图3,图3为本发明实施例中FPGA资源分配方法的另一种实施流程图,该方法可以包括以下步骤:
S301:对接收到的FPGA资源分配请求进行解析,得到待资源分配的目标应用业务。
FPGA资源分配请求中包含待资源分配的目标应用业务,数据中心通过对对接收到的FPGA资源分配请求进行解析,得到待资源分配的目标应用业务。
S302:获取目标应用业务对应的目标算法比特流。
执行不同的应用业务需要运用不同的算法比特流,在解析得到待资源分配的目标应用业务之后,获取目标应用业务对应的目标算法比特流。
S303:获取目标算法比特流的目标算法标识信息。
S304:从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息。
其中,预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系。
S305:从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息。
其中,预设FPGA加速卡资源表中存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系。
S306:判断目标FPGA加速卡标识信息对应的目标FPGA加速卡是否处于空闲状态,若否,则执行步骤S307,若是,则执行步骤S308。
在查找到目标静态部分标识信息对应的目标FPGA加速卡标识信息之后,判断目标FPGA加速卡标识信息对应的目标FPGA加速卡是否处于空闲状态,若否,则说明当前不存在可用的目标FPGA加速卡,执行步骤S307,若是,则说明当前存在可用的目标FPGA加速卡,执行步骤S308。
S307:输出目标FPGA加速卡已占用提示信息。
当确定目标FPGA加速卡标识信息对应的目标FPGA加速卡未处于空闲状态时,说明当前不存在可用的目标FPGA加速卡,输出目标FPGA加速卡已占用提示信息,从而提示FPGA资源分配请求端需要等待目标FPGA加速卡释放。
S308:将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。
参见图4,图4为本发明实施例中一种FPGA资源分配系统的结构框图。在FPGA加速卡和算法分离方式下,数据中心通过在FPGA加速卡role部分动态加载所需要的算法,两个FPGA加速卡都可以提供用户需要的服务,而不仅限于FPGA加速卡1,这就避免了FPGA资源浪费。
在本发明的一种具体实施方式中,步骤S308可以包括以下步骤:
步骤一:当处于空闲状态的目标FPGA加速卡的个数为多个时,分别获取各目标FPGA加速卡的使用频率;
步骤二:对各使用频率进行高低排序,得到频率排序结果;
步骤三:根据频率排序结果选取使用频率最低的目标FPGA加速卡;
步骤四:将目标算法比特流加载至目标FPGA加速卡标识信息对应的使用频率最低的目标FPGA加速卡。
为方便描述,可以将上述四个步骤结合起来进行说明。
当确定处于空闲状态的目标FPGA加速卡的个数为多个时,分别获取各目标FPGA加速卡的使用频率,对各使用频率进行高低排序,得到频率排序结果。根据频率排序结果选取使用频率最低的目标FPGA加速卡,将目标算法比特流加载至目标FPGA加速卡标识信息对应的使用频率最低的目标FPGA加速卡。通过按照使用频率由低到高的顺序进行FPGA资源分配,进而提升了各FPGA加速卡性能消耗的均衡度,提升了系统性能。
S309:利用目标FPGA加速卡执行目标应用业务。
在将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,利用目标FPGA加速卡执行目标应用业务,从而实现了对FPGA资源的有效分配利用。
S310:将目标FPGA加速卡设置为已占用状态。
在将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,将目标FPGA加速卡设置为已占用状态,从而标识该目标FPGA加速卡当前处于被占用状态,避免了各FPGA资源请求端之间的资源争夺造成的应用业务处理失败。
S311:判断目标FPGA加速卡是否对目标应用业务执行完成,若是,则执行步骤S312,若否,则不做处理。
在利用目标FPGA加速卡执行目标应用业务的过程中,可以实时或每隔一定时间间隔判断目标FPGA加速卡是否对目标应用业务执行完成,若是,则说明目标FPGA加速卡已无待执行应用业务,执行步骤S312,若否,则目标FPGA加速卡仍处于繁忙状态,不做处理。
S312:将目标FPGA加速卡设置为空闲状态。
当前确定目标FPGA加速卡对目标应用业务执行完成时,将目标FPGA加速卡设置为空闲状态,从而使得目标FPGA加速卡及时得到释放,便于为后续的资源请求提供相应的服务。
相应于上面的方法实施例,本发明还提供了一种FPGA资源分配装置,下文描述的FPGA资源分配装置与上文描述的FPGA资源分配方法可相互对应参照。
参见图5,图5为本发明实施例中一种FPGA资源分配装置的结构框图,该装置可以包括:
请求解析模块51,用于对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;
算法标识获取模块52,用于获取目标算法比特流的目标算法标识信息;
静态标识获取模块53,用于从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息;其中,预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;
加速卡标识获取模块54,用于从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,预设FPGA加速卡资源表中存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;
比特流加载模块55,用于将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。
由上述技术方案可知,通过预先设置算法信息表和FPGA加速卡资源表,设置算法信息表和FPGA加速卡资源表中的静态部分标识信息作为将算法比特流与FPGA加速卡之间的关联媒介。当解析得到待加载的目标算法比特流之后,根据静态部分标识信息查找目标FPGA加速卡标识信息,将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。从而实现了应用算法与FPGA资源之间的解绑,能够对FPGA资源进行自由分配,使得FPGA资源得到充分利用。
在本发明的一种具体实施方式中,比特流加载模块55包括判断子模块,用于判断目标FPGA加速卡标识信息对应的目标FPGA加速卡是否处于空闲状态;
第一比特流加载子模块,用于当确定目标FPGA加速卡标识信息对应的目标FPGA加速卡处于空闲状态时,将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡;
提示信息输出子模块,用于当确定目标FPGA加速卡标识信息对应的目标FPGA加速卡未处于空闲状态时,输出目标FPGA加速卡已占用提示信息。
在本发明的一种具体实施方式中,比特流加载模块55包括:
使用频率获取子模块,用于当处于空闲状态的目标FPGA加速卡的个数为多个时,分别获取各目标FPGA加速卡的使用频率;
排序子模块,用于对各使用频率进行高低排序,得到频率排序结果;
加速卡选取子模块,用于根据频率排序结果选取使用频率最低的目标FPGA加速卡;
第二比特流加载子模块,用于将目标算法比特流加载至目标FPGA加速卡标识信息对应的使用频率最低的目标FPGA加速卡。
在本发明的一种具体实施方式中,请求解析模块51包括:
请求解析子模块,用于对接收到的FPGA资源分配请求进行解析,得到待资源分配的目标应用业务;
比特流获取子模块,用于获取目标应用业务对应的目标算法比特流。
在本发明的一种具体实施方式中,该装置还可以包括:
业务执行模块,用于在将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,利用目标FPGA加速卡执行目标应用业务。
在本发明的一种具体实施方式中,该装置还可以包括:
状态设置模块,用于在将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,将目标FPGA加速卡设置为已占用状态。
在本发明的一种具体实施方式中,该装置还可以包括:
判断模块,用于在将目标FPGA加速卡设置为已占用状态之后,判断目标FPGA加速卡是否对目标应用业务执行完成;
状态设置模块,还用于当确定目标FPGA加速卡对目标应用业务执行完成时,将目标FPGA加速卡设置为空闲状态。
相应于上面的方法实施例,参见图6,图6为本发明所提供的FPGA资源分配设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的FPGA资源分配方法的步骤。
具体的,请参考图7,图7为本实施例提供的一种FPGA资源分配设备的具体结构示意图,该FPGA资源分配设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在FPGA资源分配设备301上执行存储器332中的一系列指令操作。
FPGA资源分配设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的FPGA资源分配方法中的步骤可以由FPGA资源分配设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;获取目标算法比特流的目标算法标识信息;从预设算法信息表中查找目标算法标识信息对应的目标静态部分标识信息;其中,预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;从预设FPGA加速卡资源表中查找目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,预设FPGA加速卡资源表中存储有各静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;将目标算法比特流加载至目标FPGA加速卡标识信息对应的目标FPGA加速卡。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种FPGA资源分配方法,其特征在于,包括:
对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;
获取所述目标算法比特流的目标算法标识信息;
从预设算法信息表中查找所述目标算法标识信息对应的目标静态部分标识信息;其中,所述预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;
从预设FPGA加速卡资源表中查找所述目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,所述预设FPGA加速卡资源表中存储有各所述静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;
将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡。
2.根据权利要求1所述的FPGA资源分配方法,其特征在于,将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡,包括:
判断所述目标FPGA加速卡标识信息对应的目标FPGA加速卡是否处于空闲状态;
若是,则执行所述将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡的步骤;
若否,则输出目标FPGA加速卡已占用提示信息。
3.根据权利要求2所述的FPGA资源分配方法,其特征在于,将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡,包括:
当处于空闲状态的目标FPGA加速卡的个数为多个时,分别获取各所述目标FPGA加速卡的使用频率;
对各所述使用频率进行高低排序,得到频率排序结果;
根据所述频率排序结果选取使用频率最低的目标FPGA加速卡;
将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的所述使用频率最低的目标FPGA加速卡。
4.根据权利要求1至3任一项所述的FPGA资源分配方法,其特征在于,对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流,包括:
对接收到的FPGA资源分配请求进行解析,得到待资源分配的目标应用业务;
获取所述目标应用业务对应的目标算法比特流。
5.根据权利要求4所述的FPGA资源分配方法,其特征在于,在将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,还包括:
利用所述目标FPGA加速卡执行所述目标应用业务。
6.根据权利要求5所述的FPGA资源分配方法,其特征在于,在将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡之后,还包括:
将所述目标FPGA加速卡设置为已占用状态。
7.根据权利要求6所述的FPGA资源分配方法,其特征在于,在将所述目标FPGA加速卡设置为已占用状态之后,还包括:
判断所述目标FPGA加速卡是否对所述目标应用业务执行完成;
若是,则将所述目标FPGA加速卡设置为空闲状态。
8.一种FPGA资源分配装置,其特征在于,包括:
请求解析模块,用于对接收到的FPGA资源分配请求进行解析,得到待加载的目标算法比特流;
算法标识获取模块,用于获取所述目标算法比特流的目标算法标识信息;
静态标识获取模块,用于从预设算法信息表中查找所述目标算法标识信息对应的目标静态部分标识信息;其中,所述预设算法信息表中存储有各算法标识信息与各静态部分标识信息之间的对应关系;
加速卡标识获取模块,用于从预设FPGA加速卡资源表中查找所述目标静态部分标识信息对应的目标FPGA加速卡标识信息;其中,所述预设FPGA加速卡资源表中存储有各所述静态部分标识信息和各FPGA加速卡标识信息之间的对应关系;
比特流加载模块,用于将所述目标算法比特流加载至所述目标FPGA加速卡标识信息对应的目标FPGA加速卡。
9.一种FPGA资源分配设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述FPGA资源分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述FPGA资源分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110997998.7A CN113703976B (zh) | 2021-08-27 | 2021-08-27 | 一种fpga资源分配方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110997998.7A CN113703976B (zh) | 2021-08-27 | 2021-08-27 | 一种fpga资源分配方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113703976A CN113703976A (zh) | 2021-11-26 |
CN113703976B true CN113703976B (zh) | 2023-05-19 |
Family
ID=78656198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110997998.7A Active CN113703976B (zh) | 2021-08-27 | 2021-08-27 | 一种fpga资源分配方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703976B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808328A (zh) * | 2014-12-31 | 2016-07-27 | 杭州华为数字技术有限公司 | 任务调度的方法、装置和系统 |
CN110515727A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种fpga的内存空间操作方法及相关装置 |
CN110618871A (zh) * | 2019-09-21 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与系统 |
CN111352735A (zh) * | 2020-02-27 | 2020-06-30 | 上海上大鼎正软件股份有限公司 | 数据加速方法、装置、存储介质及设备 |
CN111858035A (zh) * | 2020-06-29 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga设备分配方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577266B (zh) * | 2012-07-31 | 2017-06-23 | 国际商业机器公司 | 用于对现场可编程门阵列资源进行分配的方法及系统 |
-
2021
- 2021-08-27 CN CN202110997998.7A patent/CN113703976B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808328A (zh) * | 2014-12-31 | 2016-07-27 | 杭州华为数字技术有限公司 | 任务调度的方法、装置和系统 |
CN110515727A (zh) * | 2019-08-16 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种fpga的内存空间操作方法及相关装置 |
CN110618871A (zh) * | 2019-09-21 | 2019-12-27 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与系统 |
CN111352735A (zh) * | 2020-02-27 | 2020-06-30 | 上海上大鼎正软件股份有限公司 | 数据加速方法、装置、存储介质及设备 |
CN111858035A (zh) * | 2020-06-29 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种fpga设备分配方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113703976A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783229B (zh) | 线程资源分配的方法及装置 | |
TWI430102B (zh) | 網路卡資源配置方法、儲存媒體、及電腦 | |
CN112306719B (zh) | 一种任务调度方法与装置 | |
CN112905342B (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN116450355A (zh) | 一种多集群模型训练方法、装置、设备及介质 | |
CN112286688B (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN113703976B (zh) | 一种fpga资源分配方法、装置、设备及可读存储介质 | |
US20140047454A1 (en) | Load balancing in an sap system | |
CN110688223B (zh) | 数据处理方法及相关产品 | |
CN111539281A (zh) | 分布式人脸识别方法及系统 | |
CN111294220B (zh) | 基于nginx的网络隔离配置方法和装置 | |
CN110928687A (zh) | Cpu资源分配方法及测试设备 | |
CN111382141A (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
CN111221644A (zh) | 资源调度方法、装置及设备 | |
CN115509749A (zh) | 任务执行方法和装置、存储介质和电子设备 | |
CN115629853A (zh) | 一种任务调度的方法和装置 | |
CN114237902A (zh) | 一种服务部署方法、装置、电子设备及计算机可读介质 | |
CN114662690B (zh) | 面向深度学习Transformer类模型的移动设备协同推断系统 | |
WO2021135763A1 (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN118502965B (zh) | 加速卡分配方法、装置和人工智能平台 | |
CN113179308B (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 |