发布日期:2026-10-22 浏览次数:
导航:X技术最新专利计算;推算;计数设备的制造及其应用技术
本专利针对现有数据流运行时系统无法适配众核异构平台的问题,提出多子系统架构解决方案。通过管理单元动态调度任务、计算单元组并行执行,并引入任务窃取与延迟释放机制,实现异构核心间的高效协同。系统支持分布式内存通信,降低众核平台数据流编程复杂度,提升跨平台移植效率。
本申请涉及数据流编程领域,特别是涉及一种面向众核异构平台的数据流运行时系统。
1、数据流模型于20世纪60年代末由麻省理工学院的dennis团队提出,其核心思想是将整个计算任务抽象为一张数据流图,针对数据流的处理过程和流向,其被划分为一系列细粒度的计算单元,并且可以由有向无环图描述,如图1所示。在数据流图中,节点表示计算单元,边代表节点之间的数据依赖关系。当某个计算单元的全部前置依赖均满足时,便可以开始执行。数据流模型可以挖掘出任务中潜在的并行性,可以以数据为中心更自然地表达程序。
2、小代码(codelet)程序执行模型便是基于数据流模型提出的一种细粒度、任务驱动的并行程序执行模型,支持在控制流机器上使用数据流模型进行计算。其最基本的概念叫做codelet,由一段代码片段组成,是可以调度的最小单位。codelet内部包含一个依赖计数,用于描述任务执行前所需要完成的依赖任务。codelet任务和依赖可以构成一张数据流图,称为小代码图(codelet graph,cdg)。为了更好地实现数据局部性,该模型将cdg划分为若干子cdg,并引入线程程序(threadprocedure,tp)保存codelet所需要的数据。
3、当前工作已有基于codelet程序执行模型设计的编程框架和运行时系统。数据流编程模型的优势在于描述可分解任务更多的计算代码,挖掘其中的并行性。然而,现有的数据流运行时系统针对通用平台进行设计。相较于通用平台,众核平台存在着如下特点:众核平台往往含有大量核心,且核心间存在着异构性,并发度更高;众核平台往往存在专用的并行编程模型,内存架构也更加复杂;众核系统往往采用异构计算模式,计算单元间可以通过片上通信方式进行数据共享。同时,现有的数据流运行时系统是针对共享内存进行设计,若想使节点间通信功能,必须要以通信—同步—计算的流程进行,无法实现通信与计算的相互掩盖。同时,手动实现计算和通信的掩盖将会在数据流编程本就困难的基础上进一步增加难度与降低可读性。因此现有的数据流运行时系统无法直接移植到众核平台上。
4、总结而言,目前的数据流框架存在着两个主要问题:(1)仅针对通用平台实现,而针对众核异构平台并没有相关设计与支持;(2)仅适用于单节点共享内存模型,对于多节点间的分布式内存通信没有相应设计和优化。
1、本申请的目的是提供一种面向众核异构平台的数据流运行时系统,可在众核异构平台下实现高效的数据流运行,并降低众核异构平台下数据流编程以及跨平台移植的复杂度。
3、本申请提供了一种面向众核异构平台的数据流运行时系统,包括多个运行时子系统;每个运行时子系统均包括管理单元及计算单元组;
4、所述管理单元用于接收任务及任务间的依赖关系,生成就绪任务队列,存储计算单元状态数组,并根据所述计算单元状态数组,将所述就绪任务队列中满足依赖的任务发送至同一个运行时子系统的计算单元组;所述计算单元状态数组包括每个计算线、所述计算单元组包括若干个计算线程,同一个计算单元组的若干个计算线程映射到众核异构平台的一个计算核心阵列上;所述计算单元组用于执行所述管理单元下发的任务,并在执行完成后释放任务后续的依赖。
6、可选地,所述管理单元包括存储器及调度器;所述存储器用于存储就绪任务队列及计算单元状态数组;所述调度器用于根据所述计算单元状态数组,将所述就绪任务队列中满足依赖的任务发送至同一个运行时子系统的计算单元组。
7、可选地,所述调度器还用于检测所述就绪任务队列中的任务数量,在所述任务数量小于设定阈值时,采用任务窃取策略从其他管理单元的就绪任务队列中窃取任务,以平衡管理单元中的任务数量。
8、可选地,所述调度器还用于在所述就绪任务队列为空,且无法从其他管理单元的就绪任务队列中窃取任务时,主动进入睡眠状态,直至有新的任务加入所述就绪任务队列时唤醒并继续调度。
10、所述调度器根据所述计算单元状态数组,将所述就绪任务队列中满足依赖的任务发送至同一个运行时子系统的计算单元组的过程具体包括:
11、所述调度器轮询所述计算单元状态数组,将处于空闲态的计算线程作为目标计算线程,将所述就绪任务队列中满足依赖的任务发送至所述目标计算线程,并将所述计算单元状态数组中所述目标计算线程的执行状态修改为运行态;
12、当所述目标计算线程的任务执行完成后,所述调度器将所述计算单元状态数组中所述目标计算线程的执行状态修改为结束态。
13、可选地,所述就绪任务队列中的任务包括通信任务和普通任务;所述通信任务用于实现运行时子系统之间的数据传输。
14、可选地,每个运行时子系统还包括代理单元;所述代理单元中存储有通信任务队列;
15、所述管理单元还用于判断满足依赖的任务是否为通信任务,若是,则将所述通信任务插入同一个运行时子系统的代理单元的通信任务队列中,并调度下一个满足依赖的任务;若否,则将满足依赖的任务发送至同一个运行时子系统的计算单元组;
16、所述代理单元用于轮询所述通信任务队列中通信任务的通信状态位,当通信状态位为传输完成时,释放所述通信任务的后续依赖。
17、可选地,所述管理单元还用于判断满足依赖的任务是否为通信任务;若满足依赖的任务是通信任务,则根据所述通信任务的通信状态为判断数据传输是否完成,若完成,则释放所述通信任务的后续依赖,若未完成,则将所述通信任务插入所述就绪任务队列的尾部,并调度下一个满足依赖的任务;若满足依赖的任务是普通任务,则将满足依赖的任务发送至同一个运行时子系统的计算单元组。
18、可选地,每个任务被映射到多个计算线程上;每个计算线程用于执行任务的一个实例。
19、可选地,每个计算单元组对应一个延迟释放队列,所述延迟释放队列用于存储所述计算单元组在执行任务过程中释放的所有依赖;所述管理单元还用于在同一个运行时子系统的计算单元组执行任务完成后,遍历所述计算单元组对应的延迟释放队列,进行依赖计数的更新。
21、本申请提供了一种面向众核异构平台的数据流运行时系统,为众核架构设计了高效的数据流运行时系统,有效解PG电子决了众核平台核心多、异构性导致的数据流系统移植问题,数据流运行时系统包括多个运行时子系统,每个运行时子系统均包括管理单元及计算单元组,用户只需实现计算任务逻辑并构建数据流图即可,管理单元根据任务及任务间的依赖关系,将满足依赖的任务发送至计算单元组执行,在多种硬件平台上都可以快速适应,提高了数据流运行时系统的通用性,并降低了众核异构平台下数据流编程以及跨平台移植的复杂度,提高了众核异构平台下数据流运行的效率。
1.一种面向众核异构平台的数据流运行时系统,其特征在于,所述面向众核异构平台的数据流运行时系统包括多个运行时子系统;每个运行时子系统均包括管理单元及计算单元组;
2.根据权利要求1所述的面向众核异构平台的数据流运行时系统,其特征在于,所述管理单元包括存储器及调度器;
3.根据权利要求2所述的面向众核异构平台的数据流运行时系统,其特征在于,所述调度器还用于检测所述就绪任务队列中的任务数量,在所述任务数量小于设定阈值时,采用任务窃取策略从其他管理单元的就绪任务队列中窃取任务,以平衡管理单元中的任务数量。
4.根据权利要求3所述的面向众核异构平台的数据流运行时系统,其特征在于,所述调度器还用于在所述就绪任务队列为空,且无法从其他管理单元的就绪任务队列中窃取任务时,主动进入睡眠状态,直至有新的任务加入所述就绪任务队列时唤醒并继续调度。
5.根据权利要求2所述的面向众核异构平台的数据流运行时系统,其特征在于,所述计算线程的执行状态包括空闲态、运行态及结束态;
6.根据权利要求1所述的面向众核异构平台的数据流运行时系统,其特征在于,所述就绪任务队列中的任务包括通信任务和普通任务;所述通信任务用于实现运行时子系统之间的数据传输。
7.根据权利要求6所述的面向众核异构平台的数据流运行时系统,其特征在于,每个运行时子系统还包括代理单元;所述代理单元中存储有通信任务队列;
8.根据权利要求6所述的面向众核异构平台的数据流运行时系统,其特征在于,所述管理单元还用于判断满足依赖的任务是否为通信任务;若满足依赖的任务是通信任务,则根据所述通信任务的通信状态为判断数据传输是否完成,若完成,则释放所述通信任务的后续依赖,若未完成,则将所述通信任务插入所述就绪任务队列的尾部,并调度下一个满足依赖的任务;若满足依赖的任务是普通任务,则将满足依赖的任务发送至同一个运行时子系统的计算单元组。
9.根据权利要求1所述的面向众核异构平台的数据流运行时系统,其特征在于,每个任务被映射到多个计算线程上;每个计算线程用于执行任务的一个实例。
10.根据权利要求1所述的面向众核异构平台的数据流运行时系统,其特征在于,每个计算单元组对应一个延迟释放队列,所述延迟释放队列用于存储所述计算单元组在执行任务过程中释放的所有依赖;
本申请公开了一种面向众核异构平台的数据流运行时系统,涉及数据流编程领域,该系统包括多个运行时子系统;每个运行时子系统均包括管理单元及计算单元组;管理单元用于接收任务及任务间的依赖关系,生成就绪任务队列,并根据计算单元状态数组,将就绪任务队列中满足依赖的任务发送至计算单元组;计算单元组包括若干个计算线程,同一个计算单元组的若干个计算线程映射到众核异构平台的一个计算核心阵列上;计算单元组用于执行管理单元下发的任务,并在执行完成后释放任务后续的依赖。本申请为众核架构设计了高效的数据流运行时系统,并降低了众核异构平台下数据流编程以及跨平台移植的复杂度。