PG中国电子技术有限公司-核异构体电池技术领军者

您好,欢迎访问PG电子官方网!20年专注核异构体电池研发,能量密度超传统电池1000倍

PG中国电子技术有限公司-核能电源专家

News技术前沿

您当前所在位置: 主页 > 技术前沿 > 企业新闻

面向异构众核处理器的AI框架两级并行加速方法

发布日期:2026-09-16  浏览次数:

  

面向异构众核处理器的AI框架两级并行加速方法(图1)

  本发明公开一种面向异构众核处理器的AI框架两级并行加速方法,包括以下步骤,AI框架调用模型优化模块优化深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图,AI框架将优化后的树形计算图转换成由计算任务组成的线程池,线程管理模块根据相关性将线程池组织成不同的线程队列,线程管理模块监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行,当整个运行任务完成后,线程管理模块和核组管理模块均中止运行,等到下一次运行任务开始后。本发明可以充分利用异构众核的多级存储资源和计算能力,实现自动化的AI框架两级并行加速,显著提升AI框架在异构众核上的好用性和高性能。

  1.一种面向异构众核处理器的AI框架两级并行加速方法,其特征在于,基于以下功能模块,

  模型优化模块,用于对模型做适当的分裂,将一些串行的计算图转换为树状计算图,

  线程管理模块,用于管理AI框架的线程池,并将各个线程调度到空闲的核组上去,

  核组管理模块,用于将计算任务并行分配到各个从核上执行,并在检测到所有从核都完成计算之后,向线程管理模块报告计算任务完成,且将自身置于空闲状态,

  步骤1、AI框架调用模型优化模块优化深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图,

  步骤2、AI框架将步骤1中优化后的树形计算图转换成由计算任务组成的线、线程管理模块根据相关性将步骤2中获得的线程池组织成不同的线程队列,不同队列间的计算任务不具相关性,可以并行执行,同一队列内部的计算任务则必须按任务执行,

  步骤4、线程管理模块监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行,并且保障同时运行于各个核组上的计算任务分属于不同的计算队列,

  当某个核组完成计算任务并处于空闲状态时,线程管理模块继续分配计算任务到该核组,直到所有队列的计算任务都全部完成,

  当某个核组接收到计算任务时,核组管理模块将计算任务并行分配到各个从核上执行,并监测各从核的运行状态,等到所有从核都完成计算任务并处于空闲状态后,核组管理模块向线程管理模块报告任务完成,并等待下一个计算任务的分配,

  步骤5、当整个运行任务完成后,线程管理模块和核组管理模块均中止运行,等到下一次运行任务开始后,线程管理模块和核组管理模块均进入监测状态,等候线程任务和核组计算任务的分配。

  2.根据权利要求1所述的面向异构众核处理器的AI框架两级并行加速方法,其特征在于,所述线程管理模块被配置为,

  自动检测所有的核组资源,当发现处于空闲状态的核组时,在线程池中选择一个计算任务分配到该线程上,并将该核组资源置为忙碌状态,

  3.根据权利要求1所述的面向异构众核处理器的AI框架两级并行加速方法,其特征在于,当某个核组接收到线程管理模块分配到的计算任务后,由主核负责运行一个核组管理模块。

  4.根据权利要求1所述的面向异构众核处理器的AI框架两级并行加速方法,其特征在于,步骤3中线程管理模块根据异构众核处理器的核组个数构建相应的线页

  [0001]本发明涉及一种面向异构众核处理器的AI框架两级并行加速方法,用于面向异构众核处理器的AI框架,属于计算技术领域。

  [0002]当前,AI框架是支撑深度学习领域应用的重要基础软件,经过多年发展,AI框架在传统CPU多核处理器、GPU、AI专用芯片等架构上优化效果显著。在多核CPU架构上,AI框架一般通过多线程实现并行计算,将运算中的核心计算,也就是算子,组织成线程池进行自动调度,在算子内部也通过多线程并行运算,在GPU架构上,AI框架将算子下发到加速卡上进行加速,框架运行在主机上,仅做调度和控制,主体运算都在加速卡上进行。

  [0003]与传统的处理器架构都有所不同,异构众核处理器采用的是异构融合架构,主核核心和从核阵列构成一个核组,多个核组集成在一个处理器上,并且具有多层存储层次,主核核心主要负责控制,从核阵列负责协同加速计算。在这种特殊架构下,传统AI框架的设计方法并不能很好的适应,无法高效利用这种两层并行架构。因此,在异构众核处理器上,AI框架如何高效利用其多级存储层次和强大的计算能力是一个挑战。

  [0004]本发明的目的是提供一种面向异构众核处理器的AI框架两级并行加速方法,可以充分利用异构众核的多级存储资源和计算能力,实现自动化的AI框架两级并行加速,显著提升AI框架在异构众核上的好用性和高性能。

  [0005]为达到上述目的,本发明提供一种面向异构众核处理器的AI框架两级并行加速方法,基于以下功能模块,

  模型优化模块,用于对模型做适当的分裂,将一些串行的计算图转换为树状计算图,

  线程管理模块,用于管理AI框架的线程池,并将各个线程调度到空闲的核组上去,

  核组管理模块,用于将计算任务并行分配到各个从核上执行,并在检测到所有从核都完成计算之后,向线程管理模块报告计算任务完成,且将自身置于空闲状态,

  步骤1、AI框架调用模型优化模块优化深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图,

  步骤2、AI框架将步骤1中优化后的树形计算图转换成由计算任务组成的线、线程管理模块根据相关性将步骤2中获得的线程池组织成不同的线程队列,不同队列间的计算任务不具相关性,可以并行执行,同一队列内部的计算任务则必须按任务执行,

  步骤4、线程管理模块监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行,并且保障同时运行于各个核组上的计算任务分

  当某个核组完成计算任务并处于空闲状态时,线程管理模块继续分配计算任务到该核组,直到所有队列的计算任务都全部完成,

  当某个核组接收到计算任务时,核组管理模块将计算任务并行分配到各个从核上执行,并监测各从核的运行状态,等到所有从核都完成计算任务并处于空闲状态后,核组管理模块向线程管理模块报告任务完成,并等待下一个计算任务的分配,

  步骤5、当整个运行任务完成后,线程管理模块和核组管理模块均中止运行,等到下一次运行任务开始后,线程管理模块和核组管理模块均进入监测状态,等候线程任务和核组计算任务的分配。

  自动检测所有的核组资源,当发现处于空闲状态的核组时,在线程池中选择一个计算任务分配到该线程上,并将该核组资源置为忙碌状态,

  [0007] 2.上述方案的中,当某个核组接收到线程管理模块分配到的计算任务后,由主核负责运行一个核组管理模块。

  [0008] 3.上述方案的步骤3中,线程管理模块根据异构众核处理器的核组个数构建相应的线] 由于上述技术方案的运用,本发明与现有技术相比具有下列优点,

  本发明提供一种面向异构众核处理器的AI框架两级并行加速方法,其在较大尺度的核组间通过多线程自动调度实现数据级的并行,在核组内部通过异构从核计算资源协同加速算子级的运算,充分利用异构众核的多级存储资源和计算能力,实现自动化的AI框架两级并行加速,显著提升AI框架在异构众核上的好用性和高性能。

  [001 1] 实施例,本发明提供一种面向异构众核处理器的AI框架两级并行加速方法,基于以下功能模块,

  模型优化模块,用于对模型做适当的分裂,将一些串行的计算图转换为树状计算图,

  线程管理模块,用于管理AI框架的线程池,并将各个线程调度到空闲的核组上去,

  核组管理模块,用于将计算任务并行分配到各个从核上执行,并在检测到所有从核都完成计算之后,向线程管理模块报告计算任务完成,且将自身置于空闲状态,

  步骤1、AI框架调用模型优化模块优化深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图,

  步骤2、AI框架将步骤1中优化后的树形计算图转换成由计算任务组成的线、线程管理模块根据相关性将步骤2中获得的线程池组织成不同的线程队列,不同队列间的计算任务不具相关性,可以并行执行,同一队列内部的计算任务则必须按任务执行,

  步骤4、线程管理模块监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行,并且保障同时运行于各个核组上的计算任务分属于不同的计算队列,

  当某个核组完成计算任务并处于空闲状态时,线程管理模块继续分配计算任务到该核组,直到所有队列的计算任务都全部完成,

  当某个核组接收到计算任务时,核组管理模块将计算任务并行分配到各个从核上执行,并监测各从核的运行状态,等到所有从核都完成计算任务并处于空闲状态后,核组管理模块向线程管理模块报告任务完成,并等待下一个计算任务的分配,

  步骤5、当整个运行任务完成后,线程管理模块和核组管理模块均中止运行,等到下一次运行任务开始后,线程管理模块和核组管理模块均进入监测状态,等候线程任务和核组计算任务的分配。

  自动检测所有的核组资源,当发现处于空闲状态的核组时,在线程池中选择一个计算任务分配到该线程上,并将该核组资源置为忙碌状态,

  [0013] 当某个核组接收到线程管理模块分配到的计算任务后,由主核负责运行一个核组管理模块。

  [0014] 上述步骤3中,线程管理模块根据异构众核处理器的核组个数构建相应的线] 对上述实施例的进一步解释如下,

  处理器之间的并行,这种并行模式一般通过MPI等通信消息库进行,每个处理器作为一个独立进程运行模型的一部分,或者是训练数据的一部分,然后通过全局通信进行规约,形成统一的结果,这种并行模式不是处理器内部的并行,是更高层次、更粗粒度的数据并行或者模型并行,在异构众核组成的大规模系统上可以直接支持,

  多核处理器内部各核心之间的并行,这种并行模式一般通过pthread库实现,将一个完整的运行过程组成可以并行的线程池,由统一的调度器将线程池中的各个线程调度到各个核心上运行,在单个算子内部也可以通过多线程实现细粒度的并行,但是,异构众核的从核核心无法支持线程模式,多线程模式只能实现主核间的线程并行,而无法利用从核计算资源,

  针对GPU加速卡的分离式异构众核加速模式,该模式会将算子计算流程加载到GPU 上进行执行,主机部分只进行IO、调度等操作,也无法适应异构融合的众核芯片。

  [0016] 本发明结合以上三种并行模式,在芯片间通过MPI库支持分布式运行,在芯片内部实现针对异构众核的两级并行模式,使用多线程支持核组之间计算调度,而每个线页

  是以单核心而是以全核组作为调度单位,而在线程内部再通过加速库实现从核阵列的并行加速计算。这种两级并行模式是为异构众核架构而设计量身打造的,能充分利用其多级存储层次和计算资源,发挥AI框架的效率。

  模型优化模块,为了提升模型的可并行性,模型优化模块负责将模型做适当的分裂,分裂次数与异构芯片的核组数相适应,将一些串行的计算图转换为树状计算图,这样有利于后续的线程分配和调度,

  线程管理模块,负责管理AI框架的线程池,并将各个线程调度到空闲的核组上去,

  该模块会自动检测所有的核组资源,当发现处于空闲状态的核组时,就会在线程池中选择一个计算任务分配到该线程上,并将该核组资源置为忙碌状态,然后该模块继续调度可并行的计算任务到其他核组,等到所有核组都处于忙碌状态之后,线程管理模块进入监测状态,等到下一次的任务分配,

  核组管理模块,当某个核组接收到线程管理模块分配到的计算任务后,由主核负责运行一个核组管理模块,该模块将计算任务并行分配到各个从核上执行,每个从核执行计算任务的一部分,并利用自身的局部存储空间加速访存速度,

  核组管理模块在检测到所有从核都完成计算之后,向线程管理模块报告计算任务完成,然后自身置于空闲状态。

  [0018] 两层相辅相成的并行管理模块设计,上层的线程管理模块依赖pthread多线程实现计算任务的管理、分配和调度,进而支持核组间的并行运算,下层的核组管理模块负责管理核组内的从核阵列,能够高效分配计算任务到各个从核上,并与上层的线程管理模块相互配合,两级并行方法能够高效利用异构处理器的多级存储层次和强大计算资源,提供了当前开源AI框架所缺乏的异构众核后端优化支持,

  AI框架首先调用模型优化模块优化用户编写的深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图,这一优化步骤有利于线程管理模块进行更好的线程分配和调度,

  优化后的计算图由AI框架转换成由计算任务组成的线程池,线程池会进入线程管理模块,线程管理模块会根据相关性将线程池组织成不同的线程队列,不同队列间的计算任务不具相关性,可以并行执行,同一队列内部的计算任务则必须按任务执行,

  线程管理模块根据异构众核处理器的核组个数构建相应的线程队列,同时监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行,并且保障同时运行于各个核组上的计算任务分属于不同的计算队列,

  当某个核组完成计算任务并处于空闲状态时,线程管理模块会继续分配计算任务到该核组,直到所有队列的计算任务都全部完成,

  当某个核组接收到计算任务时,会进入核组管理模块,该模块负责将计算任务并行分配到各个从核上执行,然后监测各从核的运行状态,等到所有从核都完成计算任务并处于空闲状态后,核组管理模块向线程管理模块报告任务完成,并等到下一个计算任务的分配,

  次运行任务开始后,这两个模块都会进入监测状态,等候线程任务和核组计算任务的分配。

  [0019] 适应于异构众核架构的模型优化方法设计,提升模型可并行度,增强多核组并行效率,整体技术方案与具体的AI框架实现无关,所以可以向上支持多种主流AI框架,如TensorFlow、Pytorch等,具有较好的可移植性,专门适配于异构众核处理器的架构设计,整体实现方法对用户透明。

  [0020] 为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释,

  异构众核处理器,将少量承担管理、通信和运算功能的通用主核核心和大量承担运算功能的精简从核核心集成在一颗完整芯片上的高性能异构中央处理器。通用主核核心运行通用的操作系统,主要承担整个芯片的管理和控制功能,也承担一定的运算功能和芯片与外部的通信功能,从核核心起到加速计算的功能。每个处理器一般包含多个核组,每个核组由一个主核核心和多个精简从核PG中国电子技术有限公司核心组成。

  [0021] AI框架,AI框架是人工智能领域非常重要的基础软件,提供一系列功能丰富的上层接口,支撑各类机器学习算法的编程实现,开源的AI框架仅支持CPU、GPU和部分AI专用芯片,常见的AI框架包括TensorFlow、Pytorch、MXNet、Caffe等。

  [0022] 两级并行,适应于异构众核架构的并行模式,包括在单芯片内核组之间的并行和单核组内从核之间的并行。

  [0023] 采用上述面向异构众核处理器的AI框架两级并行加速方法时,其在较大尺度的核组间通过多线程自动调度实现数据级的并行,在核组内部通过异构从核计算资源协同加速算子级的运算,通过全片共享内存资源实现消息交互,通过从核局部内存实现高效访存优化,从而充分利用异构众核的多级存储资源和计算能力,实现自动化的AI框架两级并行加速,显著提升AI框架在异构众核上的好用性和高性能。

  [0024] 上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

在线客服
服务热线

服务热线

13956963336

微信咨询
返回顶部
X

截屏,微信识别二维码

微信号:13956963336

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!