CN116107726B - Fpga资源调度方法、装置、设备以及存储介质 - Google Patents
Fpga资源调度方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN116107726B CN116107726B CN202310389210.3A CN202310389210A CN116107726B CN 116107726 B CN116107726 B CN 116107726B CN 202310389210 A CN202310389210 A CN 202310389210A CN 116107726 B CN116107726 B CN 116107726B
- Authority
- CN
- China
- Prior art keywords
- fpga
- resource
- resources
- idle
- arrays
- 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/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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种FPGA资源调度方法、装置、设备以及存储介质,属于芯片仿真技术领域,方法包括获取待验证的逻辑设计需求,并获取与实体FPGA资源一一对应的资源分布谱图;计算所需要的FPGA数量;基于FPGA资源类型,从资源分布谱图中遍历出空闲的FPGA资源数组;对多组FPGA资源数组逐一进行分析,设置FPGA虚拟设备,并变更FPGA资源的状态为非空闲状态;控制与FPGA虚拟设备对应的实体FPGA资源运行逻辑设计需求,并输出验证结果;根据验证结果,将FPGA虚拟设备中的FPGA资源的状态变更为空闲状态。通过本申请的处理方案,根据设计需求协调验证资源,动态按需分配硬件资源,并支持多任务处理。
Description
技术领域
本发明涉及芯片仿真技术领域,具体涉及一种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资源根据所述资源分布谱图映射成三维空间点,在所述三维空间中每个点均带有绝对位置信息;对所述三维空间点进行聚类,每个分类均包含所述FPGA数量的空闲FPGA资源,将所述分类作为空闲的FPGA资源数组输出。
在一个实施例中,所述对所述三维空间点进行聚类,包括:以空闲资源为起始,沿实体FPGA资源的电路连接对所述三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是所述FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。
在一个实施例中,所述对多组所述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是本发明的实施例中计算机设备的内部结构图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
如图1所示,本申请实施例提供一种FPGA资源调度方法,可以应用在终端或服务器上,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。方法包括以下步骤:
步骤101,获取待验证的逻辑设计需求,逻辑设计需求携带有资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率以及FPGA资源类型,并获取与实体FPGA资源一一对应的资源分布谱图。
逻辑设计需求是需要运行的各类系统任务,例如时钟、设置电压等。执行该系统任务,都需要消耗资源,资源总消耗量就是执行该系统任务需要消耗的总资源量,可以用内存值等表示。FPGA资源消耗值是芯片运行时可以负载的运算量,可以用内存值或运算速率表示。FPGA资源期望利用率是为保证FPGA资源处理各项任务的效率,所设置的芯片最大利用率,取值范围可以从0%~100%,该范围值不包含两个端值。FPGA的资源类型可以分为以下几种类型:PIO、INT、FF、LUT、BUFG、TBUF、DCM、BRAM、DSP、PPC。计算所需FPGA数量的过程中,可以选择其中一种重要的资源类型,如LUT,也可以选择多种资源类型来综合考虑。资源分布谱图是根据安装FPGA资源的主板、机柜、机房,体现不同FPGA资源之间连接关系的谱图。可以将机房里所有FPGA设备映射成一个资源调度树,使用不同的结构体抽象FPGA主板、机柜、机房,采用拓朴图来代表它们之间电路连接的关系,如图2所示,FPGA资源所在的节点为叶子节点,机房所在的节点为根节点。每块主板上可以设置多个FPGA资源,每个机柜可以设置多个主板,每个机房可以设置多个机柜。
步骤102,根据资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率,计算所需要的FPGA数量。
资源总消耗量为Res_user, FPGA资源期望利用率值为V,设每颗FPGA的FPGA资源消耗值为Res_FPGA。则所需要的FPGA数量为:Num = Res_user / (Res_FPGA * V)。
步骤103,基于FPGA资源类型,从资源分布谱图中遍历出多组空闲的FPGA资源数组,FPGA资源数组中包含FPGA数量的FPGA资源。
服务器可以先基于FPGA资源类型,从资源分布谱图中遍历出所有空闲的FPGA资源,而后根据FPGA数量生成多组空闲的FPGA资源数组。服务器也可以先遍历出所有空闲的FPGA资源,再基于FPGA资源类型和FPGA数量生成多组空闲的FPGA资源数组。
步骤104,对多组FPGA资源数组逐一进行分析,将调度最少的FPGA资源数组设置为FPGA虚拟设备,并变更FPGA虚拟设备中的FPGA资源的状态为非空闲状态。
服务器对多组FPGA资源数组逐一进行分析,将调度最少的FPGA资源数组设置为FPGA虚拟设备,并变更FPGA虚拟设备中的FPGA资源的状态为非空闲状态。服务器可以把如图2所示的树状层级结构映射在三维空间环境下,空间中每个点均带有绝对位置信息,在多组FPGA资源数组里找出FPGA数量个FGPA其相邻距离最近的一组。FPGA虚拟设备内的FPGA资源均有统一身份标识。在一个实施例中,可以将该身份标识用于身份验证,在后续的验证模块中先进行核验,进一步保证逻辑设计需求的验证准确性,当身份验证通过,才能控制与FPGA虚拟设备内的FPGA资源对应的FPGA硬件设施执行正常操作下载、上电、时钟等设置。
步骤105,控制与FPGA虚拟设备对应的实体FPGA资源运行逻辑设计需求,并输出验证结果。
服务器控制与FPGA虚拟设备对应的实体FPGA资源运行逻辑设计需求,并输出验证结果。
步骤106,根据验证结果,将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资源根据资源分布谱图映射成三维空间点,在三维空间中每个点均带有绝对位置信息;对三维空间点进行聚类,每个分类均包含FPGA数量的空闲FPGA资源,将分类作为空闲的FPGA资源数组输出。
服务器可以将所有空闲状态的FPGA资源根据资源分布谱图进行简化成如图3所示的树图。在图3中,树图上的每个节点都对应了其实体FPGA资源的位置信息、主板信息、机柜信息等,所以将树图的层级结构映射在三维空间环境下,空间中每个点均带有绝对位置信息,以在图3中多个FPGA资源里找出4个FGPA资源其相邻距离最近的一组为例(FGPA1为忙碌状态),存在以下方案:
方案一:FPGA2、FPGA3、FPGA4、FPGA5;
方案二:FPGA2、FPGA3、FPGA4、FPGA6;
方案三:FPGA3、FPGA4、FPGA5、FPGA6;等方案。
按排列组合可以有五种可选组合方案,FPGA带有位置信息(x,y,z),其空间坐标映射如图4。
在一个实施例中,对三维空间点进行聚类,包括:
以空闲资源为起始,沿实体FPGA资源的电路连接对三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。搜索周围k*n个点,其SSE最小的一组设备。
在一个实施例中,对多组FPGA资源数组逐一进行分析,将调度最少的FPGA资源数组设置为FPGA虚拟设备,包括:
采用误差平方和作为每组FPGA资源数组的目标函数进行计算;
筛选出误差平方和最小的FPGA资源数组,并设置为FPGA虚拟设备。
采用误差平方和(Sum of the Squared Error,SSE)作为聚类的目标函数,运行K组方案,均值产生不同的簇集,选择SSE最小的那个作为空闲的FPGA资源数组输出。
,其中,ci表示除中心以外的K个数量的FPGA坐标,x表示中心FPGA的坐标,其坐标纬度有M个。
当判定1<机柜数量时,先筛选出机柜空闲FPGA资源最小的组合,而后再将空闲的FPGA资源根据资源分布谱图映射成三维空间点,在三维空间中每个点均带有绝对位置信息;对三维空间点进行聚类,每个分类均包含FPGA数量的空闲FPGA资源,将分类作为空闲的FPGA资源数组输出。
在一个实施例中,如图5所示,提供了一种FPGA资源调度装置,装置包括获取模块501、计算模块502、资源数组遍历模块503、资源数组分析模块504、验证模块505和状态变更模块506。
获取模块501,用于获取待验证的逻辑设计需求,逻辑设计需求携带有资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率以及FPGA资源类型,并获取与实体FPGA资源一一对应的资源分布谱图。
计算模块502,用于根据资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率,计算所需要的FPGA数量。
资源数组遍历模块503,用于基于FPGA资源类型,从资源分布谱图中遍历出多组空闲的FPGA资源数组,FPGA资源数组中包含FPGA数量的FPGA资源。
资源数组分析模块504,用于对多组FPGA资源数组逐一进行分析,将调度最少的FPGA资源数组设置为FPGA虚拟设备,并变更FPGA虚拟设备中的FPGA资源的状态为非空闲状态。
验证模块505,用于控制与FPGA虚拟设备对应的实体FPGA资源运行逻辑设计需求,并输出验证结果。
状态变更模块506,用于根据验证结果,将FPGA虚拟设备中的FPGA资源的状态变更为空闲状态。
在一个实施例中,计算模块包括:
数量提取单元,用于从资源分布谱图中提取出每个主板中FPGA资源的数量、每个机柜中主板的数量。
计算单元,用于根据FPGA数量确定需要的主板数量以及机柜数量。
筛选单元,用于根据主板数量和机柜数量从资源分布谱图中遍历出多组空闲的FPGA资源数组。
在一个实施例中,计算模块包括:
筛选单元,用于当判定FPGA数量小于主板中FPGA资源的空闲数量时,从资源分布谱图中筛选出所有空闲主板。
遍历单元,用于遍历空闲主板的空闲资源节点,生成多组空闲的FPGA资源数组。
在一个实施例中,计算模块包括:
映射单元,用于当判定1<主板数量<机柜中主板的空闲数量时,将空闲的FPGA资源根据资源分布谱图映射成三维空间点,在三维空间中每个点均带有绝对位置信息。
聚类单元,用于对三维空间点进行聚类,每个分类均包含FPGA数量的空闲FPGA资源,将分类作为空闲的FPGA资源数组输出。
在一个实施例中,计算模块包括:
搜索单元,用于以空闲资源为起始,沿实体FPGA资源的电路连接对三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。
在一个实施例中,资源数组分析模块包括:
计算单元,用于采用误差平方和作为每组FPGA资源数组的目标函数进行计算。
筛选单元,用于筛选出误差平方和最小的FPGA资源数组,并设置为FPGA虚拟设备。
关于FPGA资源调度装置的具体限定可以参见上文中对于FPGA资源调度方法的限定,在此不再赘述。上述FPGA资源调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储资源分布谱图等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种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资源根据资源分布谱图映射成三维空间点,在三维空间中每个点均带有绝对位置信息;对三维空间点进行聚类,每个分类均包含FPGA数量的空闲FPGA资源,将分类作为空闲的FPGA资源数组输出。
在一个实施例中,处理器执行计算机程序时实现的对三维空间点进行聚类,包括:以空闲资源为起始,沿实体FPGA资源的电路连接对三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。
在一个实施例中,处理器执行计算机程序时实现的对多组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资源根据资源分布谱图映射成三维空间点,在三维空间中每个点均带有绝对位置信息;对三维空间点进行聚类,每个分类均包含FPGA数量的空闲FPGA资源,将分类作为空闲的FPGA资源数组输出。
在一个实施例中,计算机程序被处理器执行时实现的对三维空间点进行聚类,包括:以空闲资源为起始,沿实体FPGA资源的电路连接对三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。
在一个实施例中,计算机程序被处理器执行时实现的对多组FPGA资源数组逐一进行分析,将调度最少的FPGA资源数组设置为FPGA虚拟设备,包括:采用误差平方和作为每组FPGA资源数组的目标函数进行计算;筛选出误差平方和最小的FPGA资源数组,并设置为FPGA虚拟设备。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种FPGA资源调度方法,其特征在于,包括:
获取待验证的逻辑设计需求,所述逻辑设计需求携带有资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率以及FPGA资源类型,并获取与实体FPGA资源一一对应的资源分布谱图;
根据资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率,计算所需要的FPGA数量;
基于所述FPGA资源类型,从所述资源分布谱图中遍历出多组空闲的FPGA资源数组,所述FPGA资源数组中包含所述FPGA数量的FPGA资源;
对多组所述FPGA资源数组逐一进行分析,将调度最少的所述FPGA资源数组设置为FPGA虚拟设备,并变更所述FPGA虚拟设备中的FPGA资源的状态为非空闲状态;
控制与所述FPGA虚拟设备对应的实体FPGA资源运行所述逻辑设计需求,并输出验证结果;
根据所述验证结果,将所述FPGA虚拟设备中的FPGA资源的状态变更为空闲状态。
2.根据权利要求1所述的方法,其特征在于,所述基于所述FPGA资源类型,从所述资源分布谱图中遍历出多组空闲的FPGA资源数组,包括:
从所述资源分布谱图中提取出每个主板中FPGA资源的数量、每个机柜中主板的数量;
根据所述FPGA数量确定需要的主板数量以及机柜数量;
根据所述主板数量和所述机柜数量从所述资源分布谱图中遍历出多组空闲的FPGA资源数组。
3.根据权利要求2所述的方法,其特征在于,所述根据所述主板数量和所述机柜数量从所述资源分布谱图中遍历出多组空闲的FPGA资源数组,包括:
当判定所述FPGA数量小于主板中FPGA资源的空闲数量时,从所述资源分布谱图中筛选出所有空闲主板;
遍历所述空闲主板的空闲资源节点,生成多组空闲的FPGA资源数组。
4.根据权利要求2所述的方法,其特征在于,所述根据所述主板数量和所述机柜数量从所述资源分布谱图中遍历出多组空闲的FPGA资源数组,包括:
当判定1<所述主板数量<机柜中主板的空闲数量时,将空闲的FPGA资源根据所述资源分布谱图映射成三维空间点,在所述三维空间中每个点均带有绝对位置信息;
对所述三维空间点进行聚类,每个分类均包含所述FPGA数量的空闲FPGA资源,将所述分类作为空闲的FPGA资源数组输出。
5.根据权利要求4所述的方法,其特征在于,所述对所述三维空间点进行聚类,包括:
以空闲资源为起始,沿实体FPGA资源的电路连接对所述三维空间点进行聚类搜索,搜索范围满足k*n≥m,其中m是所述FPGA数量,n是主板中FPGA资源的数量,k∈N正整数,最小的k*n数量为组合搜索范围。
6.根据权利要求1所述的方法,其特征在于,所述对多组所述FPGA资源数组逐一进行分析,将调度最少的所述FPGA资源数组设置为FPGA虚拟设备,包括:
采用误差平方和作为每组所述FPGA资源数组的目标函数进行计算;
筛选出误差平方和最小的所述FPGA资源数组,并设置为FPGA虚拟设备。
7.一种FPGA资源调度装置,其特征在于,所述装置包括:
获取模块,用于获取待验证的逻辑设计需求,所述逻辑设计需求携带有资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率以及FPGA资源类型,并获取与实体FPGA资源一一对应的资源分布谱图;
计算模块,用于根据资源总消耗量、FPGA资源消耗值、FPGA资源期望利用率,计算所需要的FPGA数量;
资源数组遍历模块,用于基于所述FPGA资源类型,从所述资源分布谱图中遍历出多组空闲的FPGA资源数组,所述FPGA资源数组中包含所述FPGA数量的FPGA资源;
资源数组分析模块,用于对多组所述FPGA资源数组逐一进行分析,将调度最少的所述FPGA资源数组设置为FPGA虚拟设备,并变更所述FPGA虚拟设备中的FPGA资源的状态为非空闲状态;
验证模块,用于控制与所述FPGA虚拟设备对应的实体FPGA资源运行所述逻辑设计需求,并输出验证结果;
状态变更模块,用于根据所述验证结果,将所述FPGA虚拟设备中的FPGA资源的状态变更为空闲状态。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310389210.3A CN116107726B (zh) | 2023-04-13 | 2023-04-13 | Fpga资源调度方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310389210.3A CN116107726B (zh) | 2023-04-13 | 2023-04-13 | Fpga资源调度方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116107726A CN116107726A (zh) | 2023-05-12 |
CN116107726B true CN116107726B (zh) | 2023-07-18 |
Family
ID=86267646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310389210.3A Active CN116107726B (zh) | 2023-04-13 | 2023-04-13 | Fpga资源调度方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107726B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009039566A1 (en) * | 2007-09-25 | 2009-04-02 | Michael Reznik | Reconfigurable numeric accelerator |
CN108256182A (zh) * | 2018-01-02 | 2018-07-06 | 西安交通大学 | 一种动态可重构fpga的布局方法 |
CN110719206A (zh) * | 2019-10-21 | 2020-01-21 | 中国科学院空间应用工程与技术中心 | 天基fpga虚拟化计算服务系统、方法和可读存储介质 |
CN110991128A (zh) * | 2019-12-03 | 2020-04-10 | 南京航空航天大学 | 一种基于细胞阵列电路的fpga自修复结构及其容错方法 |
CN111858053A (zh) * | 2020-07-22 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种fpga资源的动态均衡方法、装置和介质 |
CN114492268A (zh) * | 2022-01-29 | 2022-05-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种asic原型验证的方法、系统、设备和存储介质 |
CN114742000A (zh) * | 2022-03-18 | 2022-07-12 | 北京遥感设备研究所 | 基于FPGA集群的SoC芯片验证系统、验证方法、装置 |
CN116108787A (zh) * | 2023-02-17 | 2023-05-12 | 上海思尔芯技术股份有限公司 | 多fpga间的布线代价优化方法、系统、存储介质及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299279A (zh) * | 2011-12-29 | 2013-09-11 | 华为技术有限公司 | 一种资源调度方法及设备 |
US9940166B2 (en) * | 2015-07-15 | 2018-04-10 | Bank Of America Corporation | Allocating field-programmable gate array (FPGA) resources |
CN110162378B (zh) * | 2018-02-13 | 2023-12-29 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
US10719647B2 (en) * | 2018-06-07 | 2020-07-21 | Synopsys, Inc. | Speed converter for FPGA-based UFS prototypes |
US20200226444A1 (en) * | 2019-01-15 | 2020-07-16 | BigStream Solutions, Inc. | Systems, apparatus, methods, and architecture for precision heterogeneity in accelerating neural networks for inference and training |
-
2023
- 2023-04-13 CN CN202310389210.3A patent/CN116107726B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009039566A1 (en) * | 2007-09-25 | 2009-04-02 | Michael Reznik | Reconfigurable numeric accelerator |
CN108256182A (zh) * | 2018-01-02 | 2018-07-06 | 西安交通大学 | 一种动态可重构fpga的布局方法 |
CN110719206A (zh) * | 2019-10-21 | 2020-01-21 | 中国科学院空间应用工程与技术中心 | 天基fpga虚拟化计算服务系统、方法和可读存储介质 |
CN110991128A (zh) * | 2019-12-03 | 2020-04-10 | 南京航空航天大学 | 一种基于细胞阵列电路的fpga自修复结构及其容错方法 |
CN111858053A (zh) * | 2020-07-22 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种fpga资源的动态均衡方法、装置和介质 |
CN114492268A (zh) * | 2022-01-29 | 2022-05-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种asic原型验证的方法、系统、设备和存储介质 |
CN114742000A (zh) * | 2022-03-18 | 2022-07-12 | 北京遥感设备研究所 | 基于FPGA集群的SoC芯片验证系统、验证方法、装置 |
CN116108787A (zh) * | 2023-02-17 | 2023-05-12 | 上海思尔芯技术股份有限公司 | 多fpga间的布线代价优化方法、系统、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116107726A (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515739B (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
Jeannot et al. | Near-optimal placement of MPI processes on hierarchical NUMA architectures | |
Chen et al. | How does the workload look like in production cloud? analysis and clustering of workloads on alibaba cluster trace | |
Xu et al. | Dynamic deployment of virtual machines in cloud computing using multi-objective optimization | |
Gong et al. | Network performance aware MPI collective communication operations in the cloud | |
CN105453040B (zh) | 在分布式计算环境中处理数据流的方法和系统 | |
Di et al. | Characterizing and modeling cloud applications/jobs on a Google data center | |
Pahlevan et al. | Integrating heuristic and machine-learning methods for efficient virtual machine allocation in data centers | |
CN104025053A (zh) | 使用集体操作建模的消息传递接口调谐 | |
CN106168993B (zh) | 电网实时仿真分析系统 | |
Deng et al. | A data and task co-scheduling algorithm for scientific cloud workflows | |
CN103853618A (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
CN105940636B (zh) | 用于为数据中心的工作负荷生成分析模型的方法及服务器 | |
US20240281579A1 (en) | Incremental segmentation processing method and apparatus, computer device, and storage medium | |
Ma et al. | Dependency-aware data locality for MapReduce | |
Filelis-Papadopoulos et al. | A framework for simulating large scale cloud infrastructures | |
Marszałkowski et al. | Time and energy performance of parallel systems with hierarchical memory | |
Ataie et al. | Modeling and evaluation of dispatching policies in IaaS cloud data centers using SANs | |
CN112997156A (zh) | 用于电子设计自动化操作的计算资源的动态分配 | |
Meng et al. | Communication and cooling aware job allocation in data centers for communication-intensive workloads | |
CN115373836A (zh) | 计算网络、算力度量方法、调度装置及相关产品 | |
Gu et al. | Energy-Efficient GPU Clusters Scheduling for Deep Learning | |
Farzaneh et al. | A novel virtual machine placement algorithm using RF element in cloud infrastructure | |
CN116107726B (zh) | Fpga资源调度方法、装置、设备以及存储介质 | |
Jeannot et al. | Topology and affinity aware hierarchical and distributed load-balancing in Charm++ |
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 |