CN111274016B - 基于模块融合的动态部分可重构系统应用划分与调度方法 - Google Patents

基于模块融合的动态部分可重构系统应用划分与调度方法 Download PDF

Info

Publication number
CN111274016B
CN111274016B CN202010063341.9A CN202010063341A CN111274016B CN 111274016 B CN111274016 B CN 111274016B CN 202010063341 A CN202010063341 A CN 202010063341A CN 111274016 B CN111274016 B CN 111274016B
Authority
CN
China
Prior art keywords
task
reconstruction
tasks
reconstructed
cluster
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
Application number
CN202010063341.9A
Other languages
English (en)
Other versions
CN111274016A (zh
Inventor
唐麒
王喆
魏急波
郭彪
王杉
熊俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010063341.9A priority Critical patent/CN111274016B/zh
Publication of CN111274016A publication Critical patent/CN111274016A/zh
Application granted granted Critical
Publication of CN111274016B publication Critical patent/CN111274016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及基于模块融合的动态部分可重构系统应用划分与调度方法。解决获得最优的调度方案,得到最小调度长度问题。本方法首先对应用及计算平台进行建模,并提出了一种模块融合技术,基于应用、平台模型及模块融合技术,构建了基于整数线性规划的划分和调度模型,求解动态重构区域划分、任务与重构区域的映射关系、任务的重构顺序及执行时间。本方法能够获得更小的调度长度,得到更优的解决方案,同时减少了重构节点的个数,提高了重构区域的资源利用率。

Description

基于模块融合的动态部分可重构系统应用划分与调度方法
技术领域
本发明属于可重构计算领域,涉及动态部分可重构系统的应用划分和调度问题,特别针对基于FPGA的动态可重构领域应用划分和调度优化问题。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA)是目前普遍使用的一种可编程逻辑器件,兼具软件编程的灵活性和硬件执行的高效性,在硬件加速领域中有着广泛应用。基于FPGA的可重构系统设计包括动态系统和静态系统,静态系统是最常用FPGA的系统设计,但是不能够动态的改变硬件结构、灵活性较差,在大规模应用计算领域存在限制。动态可重构系统在运行的过程中改变电路功能,动态地分时复用 FPGA片上资源。动态部分可重构系统可以在运行时不中断其他重构区域的运行状态,改变某一重构区域的功能,在空间和时间上对资源复用,从而使FPGA的并行处理性能达到最优。当FPGA总片上资源少于计算应用所需资源时,将计算应用划分为多个子任务,动态地在时间和空间上复用资源,实现对计算应用的求解。在不影响FPGA其他部分功能的情况下,通过动态加载实现各种硬件加速器的比特流加载到重构区域,改变部分 FPGA重构区域的功能。大部分现代FPGA架构增加了对动态部分重构的支持,例如Xilinx 的Virtex-7系列、ZYNQ-7000系列等。动态部分可重构系统在多媒体处理、5G、云计算加速、雷达信号处理等领域有着广泛的应用。随着FPGA在硬件加速领域的发展以及展现出的巨大潜力,Intel、亚马逊、百度、微软等推出基于FPGA的云服务,将FPGA平台应用到加速服务器、CNN计算或提升搜索引擎性能等。
目前DPR系统的划分和调度问题求解方法的研究大致可分为两种:启发式求解算法、精确求解算法。启发式求解算法容易陷入局部最优解,且需要考虑收敛速度。常用的精确求解方法包括整数线性规划(ILP)、动态规划算法和混合整数线性规划(MILP),它的优势在于能够精确得到求解结果,获得的解的质量较高。划分和调度问题是一个组合优化问题,动态部分可重构系统的划分和调度产生的最终方案决定了系统的执行效率,目标值是寻找到最小调度长度。由于调度问题本身是个NP问题,没有确定的方案能够找到其最优解,因此找到一个高效可行的划分和调度方法,是找到最优解的关键。
发明内容
本发明针对动态部分可重构系统提出了一种基于模块融合的应用划分和调度优化方法,目的在于获得一个最优的调度方案,得到最小调度长度。该方法属于基于整数线性规划(ILP)理论的优化求解方法,同时提出了一种模块融合技术,可以有效提升调度性能。
目前大多数FPGA是基于SRAM的配置架构,任务的重构不能发生在任意时间、任意区域,可重构系统应用划分与调度须遵循以下约束条件:
(1)重构区域约束:受限于当前的技术水平,动态部分可重构系统中的动态部分可重构区域的资源类型、资源量、位置应在重构发生前确定,不同重构区域在空间上相互独立、不能重叠。此外,FPGA资源量是固定的,在FPGA上规划的动态部分可重构区域资源总量不能超过FPGA资源量;
(2)单重构端口:比特流文件只能通过配置端口写入配置寄存器,当前的FPGA架构只支持单个ICAP/PCAP,不同的重构区域的配置只能串行执行;
(3)重构过程约束:不同区域的重构阶段和执行阶段可以并行执行,同一重构区域的重构阶段和执行阶段需要串行执行,并且任务的执行只能在其重构阶段结束之后开始执行。
本发明采用基于模块融合的动态部分可重构系统的应用划分和调度优化方法,其实现过程主要包括:
1、构建应用并行计算模型
本模型将计算应用划分为多个子任务,并将子任务间的关系建模为有向无环图(Directed Acyclic Graph,DAG),N表示划分出的任务集,D表示有向边的集合,每条边表示一对任务之间的数据依赖关系,故DAG表示为G(N,D)。任务本身具有两种属性,包括:(1)在FPGA上完成任务执行所需的计算时间ehn;(2)在FPGA上实现任务n 所需资源类型p的资源量S(p,n)。每个有向边有一个属性Dcost表示边的源任务到目标任务的通信开销,每个边d∈D表示为一个二元组(a,b),其中a和b分别是边的源任务和目的任务。
2、建立动态部分可重构FPGA模型及变量定义
FPGA可以被虚拟化为一组动态可重构区域,动态可重构区域表示为 RR={RR1,RR2,...,RRRR},每个动态部分可重构区域包含DSP、CLB、BRAM等多种重构资源。用P={p1,p2,...p|P|}表示FPGA的重构资源。各种类型的资源p关联有一个整数TSp,表示资源p的数量。
Figure RE-GDA0002444980230000031
ξab、ξba表示任务a和b在重构区域上的重构顺序,以表示模型单重构端口限制、重构节点和模块融合技术。ξab=1表示在重构区域上任务a在任务b之前重构;ξab=0表示任务a不在任务b之前重构,即任务a与任务b同时重构或任务a 在任务b之后重构;同理,ξba=1表示在重构区域上任务b在任务a之前重构;ξba=0 表示任务b不在任务a之前重构,即任务b与任务a同时重构或任务b在任务a之后重构。需要注意到,在所提出的方法中,需要联合使用ξab和ξba表示任务a与任务b的重构顺序,才能唯一确定任务a与任务b顺序关系。ξ能够明确建模出单重构端口的约束关系,当ξabba=1时,任务a和任务b被串行重构;当ξabba=0时,任务a和任务 b处在同一个重构节点上,因此单重构端口约束关系得到满足。
Figure RE-GDA0002444980230000032
整数rs和es分别表示任务的执行开始时间和重构开始时间。本发明中没有将每个重构节点的开始重构时间建模一个特定变量的公式,它与每个任务的重构开始时间rs和ξab相关联,可以由它们直接推出。
Figure RE-GDA0002444980230000033
RRk∈RR,定义布尔类型变量M(n,k)表示任务n到重构区域RRk的映射关系。M(n,k)=1表示任务n映射到RRk,M(n,k)=0表示任务n没有映射到RRk
Figure RE-GDA0002444980230000034
p∈P,定义整型变量S(p,k),表示重构区域RRk拥有的p类型资源量大小。
3、建立模块融合模型
使用模块融合技术,一些任务可以被融合为多个互不关联的簇。定义模型簇:
Figure RE-GDA0002444980230000035
每个簇可以由一个或者多个任务组成,但是每个任务只能属于一个簇。
在一个簇中的任务可以作为一个整体被映射和重构到同一个重构区域,并且簇内的所有任务在同一时间被重构。由于一个簇的所有任务作为一个整体被重构,因此只需要对簇内的一组任务做一次重构,从而减少了重构的数量。对于一个含有|Ci|个任务的簇,在模块融合之后,重构数量从|Ci|减少了|Ci|-1个。因此,包含|V|个任务的计算应用在模块融合之后有|C|个簇,减少了|V|-|C|个重构节点。
给定一组簇和重构区域,对于簇C={n1,n2,...,n|C|}只有重构区域RRk的资源类型和资源量满足簇的需求,才能够被重构区域容纳。
另外,一个或多个任务融合为簇后,簇的调度没有违反单一重构端口约束规则,即在同一时间内,没有发生重构重叠。在映射到的重构区域重构之后,簇内的任务可以在同一重构区域并行执行,但是遵从DAG图中的数据依赖关系,只有在当前任务所需的数据到达之后,才可以执行当前任务,否则当前任务会处于等待状态。簇的资源占用量等于簇内的各个任务的资源占用量之和。
最后,应用程序的任务通过模块融合技术融合为簇,在被调度到FPGA区域的同时要遵守数据优先级。另外,每个区域的调度都要遵守重配置-执行的顺序。在执行任务之前,必须将其配置到某个区域。在每个区域上,只有在前一个重构的簇的每个任务都完成执行之后,才能触发下一个任务簇的重构。应用程序的任务被调度到FPGA区域,同时遵守数据优先级的关系。
4、确定模型约束关系
对于动态可重构系统的应用划分和调度需要满足约束条件,才能生成可行解,基于 FPGA可重构系统上执行需要满足以下约束条件:
(1)重构区域约束:受限于当前的技术水平,动态部分可重构系统中,各动态部分可重构区域的资源类型、资源量、位置在实际重构发生前应当确定,不同重构区域在空间相互独立、不能重叠。FPGA资源总量在芯片上是固定的,同一时刻执行任务所需的资源量不能超过资源总量;
(2)单重构端口:比特流文件只能通过配置端口写入配置寄存器,当前的FPGA 架构只支持单个ICAP/PCAP,不同的重构区域的配置串行执行;
(3)重构过程约束:不同区域的重构和执行阶段可以并行执行,在同一重构区域重构阶段和执行阶段需要串行执行,并且任务的执行只能在其重构阶段结束之后开始执行。
由于应用程序的每个任务只能执行一次,因此每个任务应该被映射到单个重构区域,约束方程如下所示:
Figure RE-GDA0002444980230000041
即任务与重构区域的映射关系唯一,一个任务只能映射到一个可重构区域。
任务可能依赖于其他任务的输出数据,这些数据由应用程序模型的有向边D建模。当任务a和b之间存在有向边d(a,b)∈D时,任务b只有在任务a的依赖数据已经产生时才能触发。
注意到FPGA上的任务间通信可以由本地存储器完成,因此这种FPGA片上重构区域之间的通信可以视为无延迟通信。因此,以下约束方程保证了每条边d(a,b)∈D的数据优先级:
esa+cha<esb (2)
任务只有在它重构完成之后才可以执行,约束方程如下所示:
Figure RE-GDA0002444980230000051
方程左边建模为任务重构完成时间,即重构开始时间加上重构时间跨度。另外,任务的重构时间不决定与它所需要的资源类型和资源数量,而取决于此任务被划分到的重构区域。即使任务的资源类型和资源数量影响重构区域的资源类型和资源数量,但也可能重构区域的资源类型和资源量超过了任务所需。因此,使用任务映射变量和每个重构区域的重构时间变量对任务的重构时间进行建模。
由于方程3中存在M(a,i)和RTi两个变量,是非线性方程。因此用以下方程取代方程(3)。
Figure RE-GDA0002444980230000052
其中M1是一个较大的正整数,使得rsa+RTi≤esa+M1始终成立。当M(a,i)=1时,将a映射到RRi进行执行,约束减少为rsa+RTi≤esa,使得a的重构在执行之前完成。如果M(a,i)=0,则约束简化为rsa+RTi≤esa+M1,因为M1是一个较大的正整数。
如前面所写的ξab和ξba不能同时为1,为了使ξab有意义,需要满足以下约束方程:
ξabba≤1 (5)
只有属于前重构节点的任务完成重构后,才能开始当前重构节点中的任务。因此,引入约束方程(6),此公式中M2是一个较大的整数,方程如下:
Figure RE-GDA0002444980230000053
如果几个被融合为相同的重构节点,例如ξab=ξba=0,属于同簇的任务应该被映射到相同的重构区域,如以下约束方程所示:
Figure RE-GDA0002444980230000061
首先,ξabba≤1,当约束方程的右边等于1时,约束方程被简化为M(a,i)- M(b,i)≤1,因为M(a,i)和M(b,i)是二元变量,所以M(a,i)-M(b,i)≤1是成立的。若约束方程的右端等于0,则约束方程简化为M(a,i)-M(b,i)≤0,M(a,i)=M(b,i)对所有 RRi∈RR成立(因此M(b,i)-M(a,i)≤0成立),即任务a和b映射到相同的重构区域。
为了减少约束数量,约束方程7被简化为以下方程:
Figure RE-GDA0002444980230000062
此公式中,M3是一个很大的整型数,使左边的等式总是小于或等于右边。
重构和执行在相同重构区域上不能重叠,建立如下约束方程,此公式中M4是一个较大的整数,方程如下:
Figure RE-GDA0002444980230000063
为了建模资源约束关系,对每个RRk∈RR使用整型变量S(p,k)表示RRk上的资源p的资源量大小。动态可重构的模型中,应该满足两种资源约束关系:首先,每个重构区域的资源类型和相应的资源量应该足够大,以容纳分配给它的任何任务。由于考虑了模块融合技术,可以将多个任务合并到一个任务簇中,每个重构区域的资源类型和资源量应该足够大,可以容纳分配给它的每个合并后的任务簇。另外,所有重构区域的总资源消耗应满足FPGA的资源限制。
Figure RE-GDA0002444980230000064
等式左侧计算了划分到特定可重构区域的任务簇中的总资源数量,右侧计算相应可重构区域的资源数量。为了使这个约束成为线性的,它被转换为以下约束方程:
Figure RE-GDA0002444980230000065
下面的等式保证了第二个约束条件:
Figure RE-GDA0002444980230000066
其中TSp表示资源p在FPGA的资源总量。约束方程11确保每个重构区域的资源数量足够大,可以容纳分配给它的任何任务和任务簇。约束方程12保证了所有可重构区域的各类资源的总资源数不超过平台提供的资源数。
引入以下约束,使调度长度与退出任务a∈N的完成时间绑定。
esa+cha≤SL (13)
本发明的模块融合技术能够有效减少重构节点个数,提高重构区域的资源利用率,经过验证,与没有使用模块融合的ILP求解结果相比,本发明的方法可以获得更小的调度长度,精确得到求解结果,获得更高质量的调度方案,能够显著降低重构节点数量、调度长度,增加对重构区域的资源利用率,对基于FPGA的动态可重构技术应用划分和调度优化具有指导意义。
附图说明
图1计算应用DAG图,
图2 DAG图不采用模块融合技术的情况下,DAG的划分和调度结果,
图3 DAG图采用模块融合技术的情况下,DAG的划分和调度结果。
具体实施方式
图1为计算应用的DAG,将图1的任务进行建模并读取到本发明提出的模型中,图 2是基于ILP方法没有使用模块融合技术调度结果,图3使用了模块融合调度技术,可以从图中看出,使用模块融合技术所生成的调度长度明显小于没有使用模块融合技术所生成的调度长度,重构节点也有了明显的减少。在图3中,将多个任务融合为一个簇,同时在同一重构区域重构,减少了重构节点。簇重构完之后,簇内的各个任务在满足数据依赖的情况下,可以在同一重构区域并行执行,有效较少了执行所需的时间,最终获得了更小的调度长度,得到更优的调度方案。
基于模块融合的动态部分可重构系统应用划分与调度方法,在实施过程需要先对问题进行建模,明确求解过程,然后根据模型对应用任务进行划分、确定重构区域数量及其资源大小、确定任务的调度顺序,在求解过程模型的变量要满足约束条件,具体步骤如下:
1、问题建模
本发明的目标平台是Xilinx ZYNQ系列SoC,是具有可重构特性的FPGA系统,平台有1个静态区域和3个动态部分可重构区域,FPGA重构区域的配置可通过SoC上的微处理器ICAP/PCAP进行配置,实现对FPGA重构区域划分和任务调度。
本模型将计算应用划分为多个子任务建模为DAG,计算应用划分出的任务和任务之间的依赖关系建模为G(N,D),任务n∈N之间的依赖关系用有向边d∈D表示,每个任务拥有其自身属性计算的执行时间es、资源占用量S(p,n)。有向边D从源任务指向目标任务,具有属性通信开销Dcost,由于FPGA重构区域的通信可通过共享内存完成,故可以将Dcost视为0。重构区域建模为RR={RR1,RR2,...,RRRR},每个重构区域包括多种资源P={p1,p2,...p|P|},每个重构区域资源量建模为S(p,k),TSp表示FPGA资源p的总数。
对任务之间的重构顺序建模为ξab
Figure RE-GDA0002444980230000081
ξab表示任务的重构顺序a和b在重构区域上的重构顺序,将ξab与ξba联合表示任务a与任务b的重构顺序,才能唯一确定任务a与任务b关系。
Figure RE-GDA0002444980230000084
RRk∈RR,定义布尔类型变量M(n,k)表示任务n到重构区域RRk的映射关系。M(n,k)=1表示任务n映射到RRk,M(n,k)=0表示任务n没有映射到RRk
对于模块融合技术,一些任务可以被融合为多个互不关联的簇。定义模型
Figure RE-GDA0002444980230000082
每个簇可以由一个或者多个任务组成,但是每个任务只能属于一个簇。在一个簇中的任务可以作为一个整体被映射和重构到同一个重构区域,并且簇内的所有任务在同一时间被重构。
2、明确求解过程
基于ILP求解方法和本论文建立的模型,可以将整个求解过程做出明确规划,以通过获得各个分阶段的目标值,从而求出最终目标值,获得最短调度长度。首先建立模型,将各个任务参数添加到模型中,满足任务的依赖关系和资源约束关系进行任务融合。在 ILP求解过程中,会计算出任务的重构顺序、各个重构节点的开始时间、任务与重构区域的映射,得出调度长度。
3、约束条件
(1)、由于应用程序的每个任务只能执行一次,任务与重构区域的映射关系是唯一,一个任务只能映射到一个可重构区域,约束方程如下所示:
Figure RE-GDA0002444980230000083
(2)、FPGA上的任务间通信可以由本地存储器完成,因此这种通信可以视为无延迟。因此,以下约束方程保证了每条边d(a,b)∈D的数据优先级:
esa+cha<esb
(3)、任务只有在它重构完成之后才可以执行,约束方程如下所示:
Figure RE-GDA0002444980230000091
(4)、如前所述ξab和ξba不能同时为1,为了使ξab能正确表示任务之间的重构顺序,需要满足以下约束方程:
ξabba≤1
(5)、只有前重构节点的任务完成重构后,才能开始当前重构节点中的任务。因此,引入以下约束方程:
Figure RE-GDA0002444980230000092
(6)、如果几个任务被融合为相同重构节点,例如ξab=ξba=0,属于同簇的任务应该被映射到相同的重构区域,如以下约束方程所示:
Figure RE-GDA0002444980230000093
此公式中,整数M3使左边的等式总是小于或等于右边。
(8)、重构和执行在相同重构区域上不能重叠,约束方程如下:
Figure RE-GDA0002444980230000094
(9)、为了建模资源约束关系,对每个RRk∈RR使用整型变量S(p,k)表示RRk上的资源p的资源量大小。动态可重构的模型中,应该满足两种资源约束关系。首先,每个重构区域相应资源类型的资源量应该容纳分配给它的任何任务。利用模块融合技术,可以将多个任务合并到一个任务簇中,每个重构区域的资源类型和资源量应该足够大,可以容纳分配给它的每个合并任务。另外,所有重构区域的总资源消耗应满足FPGA的资源限制。
Figure RE-GDA0002444980230000095
下面的等式保证了第二个约束条件:
Figure RE-GDA0002444980230000096
其中TSp表示资源p在FPGA的资源总量。
(10)、引入以下约束,使调度长度与退出任务a∈N的完成时间绑定。
esa+cha≤SL
综上所述,本文提出的模块融合技术能够有效减少重构节点个数,提高重构区域的资源利用率,经过验证,与没有使用模块融合的ILP求解结果相比,本发明提出的方法可以获得更小的调度长度,精确得到求解结果,获得更高质量的调度方案。

Claims (4)

1.基于模块融合的动态部分可重构系统应用划分与调度方法,构建基于FPGA动态可重构系统模型,采用DAG对计算应用划分的任务进行描述,建立模块融合模型,其特征在于,具体步骤如下:
(1)构建应用并行计算模型;
模型将计算应用划分为多个子任务,并将子任务间的关系建模为有向无环图DAG,N表示划分出的任务集,D表示有向边的集合,每条边表示一对任务之间的数据依赖关系,DAG表示为G(N,D);
(2)建立动态部分可重构FPGA模型及变量定义;
FPGA被虚拟化为一组动态可重构区域,动态可重构区域表示为RR={RR1,RR2,...,RR|RR|},用P={p1,p2,...p||P}表示FPGA的重构资源,各种类型的资源p关联有一个整数TSp,表示资源p的数量;
(3)建立模块融合模型;
定义模型簇C:
Figure RE-FDA0002460477820000011
|Ci|≥1,
Figure RE-FDA0002460477820000012
每个簇由一个或者多个任务组成,但是每个任务只能属于一个簇;
(4)确定模型约束关系;
约束方程如下所示:
Figure RE-FDA0002460477820000013
即任务与重构区域的映射关系唯一,一个任务只能映射到一个可重构区域;
当任务a和b之间存在有向边d(a,b)∈D时,任务b只有在任务a的依赖数据已经产生时才能触发。
2.根据权利要求1所述的基于模块融合的动态部分可重构系统应用划分与调度方法,其特征在于,所述步骤(2)中变量包括:
Figure RE-FDA0002460477820000014
b∈N,ξab、ξba表示任务a和b在重构区域上的重构顺序,ξab=1表示在重构区域上任务a在任务b之前重构;ξab=0表示任务a不在任务b之前重构,即任务a与任务b同时重构或任务a在任务b之后重构;同理,ξba=1表示在重构区域上任务b在任务a之前重构;ξba=0表示任务b不在任务a之前重构,即任务b与任务a同时重构或任务b在任务a之后重构;
Figure RE-FDA0002460477820000021
整数rs和es分别表示任务的执行开始时间和重构开始时间;
Figure RE-FDA0002460477820000022
RRk∈RR,变量M(n,k)表示任务n到重构区域RRk的映射关系,M(n,k)=1表示任务n映射到RRk,M(n,k)=0表示任务n没有映射到RRk
Figure RE-FDA0002460477820000023
p∈P,变量S(p,k),表示重构区域RRk拥有的p类型资源量大小。
3.根据权利要求 1所述的基于模块融合的动态部分可重构系统应用划分与调度方法,其特征在于,所述步骤(3)中模型簇C,对于一个含有|Ci|个任务的簇,在模块融合之后,重构数量从|Ci|减少了|Ci|-1个,包含|V|个任务的计算应用在模块融合之后有|C|个簇,减少了|V|-|C|个重构节点,
每个簇由一个或者多个任务组成,每个任务只属于一个簇,在一个簇中的任务作为一个整体被映射和重构到同一个重构区域,并且簇内的所有任务在同一时间被重构,只需要对簇的一组任务做一次重构,在被调度到FPGA区域的同时遵守数据优先级,优先级高的先执行,依赖于前一任务数据的任务,数据到达后执行,每个区域的调度遵守重配置-执行的顺序,在每个区域上,只有在前一个重构的簇的每个任务都完成执行之后,才能触发重构。
4.根据权利要求 1所述的基于模块融合的动态部分可重构系统应用划分与调度方法,其特征在于,所述步骤(4)中约束条件为:
(1)重构区域约束:各动态部分可重构区域的资源类型、资源量、位置在实际重构发生前应当确定,不同重构区域在空间相互独立、不能重叠,FPGA资源总量在芯片上是固定的,同一时刻执行任务所需的资源量不能超过资源总量;
(2)单重构端口:比特流文件只能通过配置端口写入配置寄存器,当前的FPGA架构只支持单个ICAP/PCAP,不同的重构区域的配置串行执行;
(3)重构过程约束:不同区域的重构和执行阶段可以并行执行,在同一重构区域重构阶段和执行阶段需要串行执行,并且任务的执行只能在其重构阶段结束之后开始执行。
CN202010063341.9A 2020-01-20 2020-01-20 基于模块融合的动态部分可重构系统应用划分与调度方法 Active CN111274016B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010063341.9A CN111274016B (zh) 2020-01-20 2020-01-20 基于模块融合的动态部分可重构系统应用划分与调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010063341.9A CN111274016B (zh) 2020-01-20 2020-01-20 基于模块融合的动态部分可重构系统应用划分与调度方法

Publications (2)

Publication Number Publication Date
CN111274016A CN111274016A (zh) 2020-06-12
CN111274016B true CN111274016B (zh) 2022-09-09

Family

ID=70999008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010063341.9A Active CN111274016B (zh) 2020-01-20 2020-01-20 基于模块融合的动态部分可重构系统应用划分与调度方法

Country Status (1)

Country Link
CN (1) CN111274016B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782376B (zh) * 2020-07-22 2022-09-06 中国人民解放军国防科技大学 一种面向动态部分可重构片上系统的列表式软硬件划分方法
CN112148451B (zh) * 2020-09-27 2023-12-29 南京大学 一种低时延的协同自适应cnn推断系统及方法
CN112379998B (zh) * 2020-10-20 2022-11-15 广东工业大学 一种基于任务融合和任务调度的切换时延优化方法
CN112363819A (zh) * 2020-12-02 2021-02-12 深圳市房多多网络科技有限公司 大数据任务动态编排调度方法、装置及计算设备
CN113296846B (zh) * 2021-06-04 2023-04-18 烽火通信科技股份有限公司 一种基于任务调度的芯片端口配置方法与装置
CN115860081B (zh) * 2023-03-01 2023-05-26 之江实验室 一种芯粒算法调度方法、系统、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682294A (zh) * 2016-12-15 2017-05-17 西安交通大学 一种动态可重构fpga的布局方法
CN109656872A (zh) * 2018-12-24 2019-04-19 中国人民解放军国防科技大学 一种动态部分可重构片上系统软硬件划分方法
CN110018887A (zh) * 2018-01-10 2019-07-16 苏州智配信息科技有限公司 一种可重构平台上的任务调度和资源管理算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682294A (zh) * 2016-12-15 2017-05-17 西安交通大学 一种动态可重构fpga的布局方法
CN110018887A (zh) * 2018-01-10 2019-07-16 苏州智配信息科技有限公司 一种可重构平台上的任务调度和资源管理算法
CN109656872A (zh) * 2018-12-24 2019-04-19 中国人民解放军国防科技大学 一种动态部分可重构片上系统软硬件划分方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于混合式两阶段的动态部分重构FPGA软硬件划分算法;马昱春等;《清华大学学报(自然科学版)》;20160315(第03期);全文 *

Also Published As

Publication number Publication date
CN111274016A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111274016B (zh) 基于模块融合的动态部分可重构系统应用划分与调度方法
Karloff et al. A model of computation for MapReduce
Jafer et al. Synchronization methods in parallel and distributed discrete-event simulation
Sun et al. Makespan-minimization workflow scheduling for complex networks with social groups in edge computing
Arkhipov et al. A parallel genetic algorithm framework for transportation planning and logistics management
CN107329828A (zh) 一种面向cpu/gpu异构集群的数据流编程方法和系统
Chen et al. On-the-fly parallel data shuffling for graph processing on OpenCL-based FPGAs
CN109656872B (zh) 一种动态部分可重构片上系统软硬件划分方法
CN107122244A (zh) 一种基于多gpu的图数据处理系统及方法
CN104765589A (zh) 基于mpi的网格并行预处理方法
Ouyang et al. Hardware/software partitioning for heterogenous mpsoc considering communication overhead
Ying et al. Bluefog: Make decentralized algorithms practical for optimization and deep learning
Shan et al. CNN-on-AWS: Efficient allocation of multikernel applications on multi-FPGA platforms
CN108256182B (zh) 一种动态可重构fpga的布局方法
Kodase et al. Improving scalability of task allocation and scheduling in large distributed real-time systems using shared buffers
Gulisano et al. Stretch: Virtual shared-nothing parallelism for scalable and elastic stream processing
CN111090613B (zh) 一种基于图分割的低复杂度软硬件划分与调度方法
CN111045803A (zh) 一种动态部分可重构片上系统软硬件划分与调度的最优化方法
Veeravalli et al. Suboptimal solutions using integer approximation techniques for scheduling divisible loads on distributed bus networks
Navarrete et al. Parallel simulation of NEPs on clusters
Yang et al. Parameter communication consistency model for large-scale security monitoring based on mobile computing
AkashKumar Heuristic for accelerating run-time task mapping in NoC-based heterogeneous MPSoCs
Mariyappan et al. An Efficient Implementation of Divergence State Estimation with Biogeography-Based Optimization (DSEBBO) Framework in FPGA-Based Multiprocessor System
CN112015692A (zh) 一种面向Simulink自动生成多线程代码的核间通信优化方法
Chen et al. MARCO: A High-performance Task M apping a nd R outing Co-optimization Framework for Point-to-Point NoC-based Heterogeneous Computing Systems

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