多流并行控制系统及其方法技术方案

技术编号:22329839 阅读:27 留言:0更新日期:2019-10-19 12:13
本公开涉及一种多流并行控制系统,包括:主机线程组件,包括第一执行体和第二执行体,所述第一执行体将一个计算任务插入到多个任务流中的指定任务流中,以及所述第二执行体在每个计算任务被插入之后插入流回调结构体所包含的事件;任务流组件,包括任务执行体以及事件执行体,任务执行体用于执行第一执行体所插入的任务,事件执行体用于执行所插入的流回调结构体所包含的事件;以及线程回调组件,其对应每个流执行组件配置,包括流回调结构体执行体,用于在事件执行体执行完毕时执行流回调结构体并发出事件执行完毕的消息。

【技术实现步骤摘要】
多流并行控制系统及其方法
本专利技术涉及一种对数据处理网络中多流并行的控制系统及其控制方法,更具体而言,涉及一种在CUDA接口中实现对多流并行处理的并行控制系统以及控制方法。
技术介绍
随着大数据计算以及深度学习的兴起,各种协处理器通常被用于分担CPU的数据处理功能。例如GPU(GraphicProcessingUnit)、APU等。GPU具有高并行结构(highlyparallelstructure),所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率。CPU执行计算任务时,一个时刻只处理一个数据,不存在真正意义上的并行,而GPU具有多个处理器核,在一个时刻可以并行处理多个数据。与CPU相比,GPU拥有更多的ALU(ArithmeticLogicUnit,逻辑运算执行体)用于数据处理,而非数据高速缓存和流控制。这样的结构非常适合于对于类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。为了实现这种大量的同类简单运算而不占据CPU资源,多采用在一个或多个CPU上接入多个GPU执行并行数据处理,从而获得高速大量的数据处理结果。目前人们多采用英伟达(NVIDIA)的GPU来实现这种的并行简单数据处理。但是在使用过程中,GPU对流并行的控制存在一些缺陷,使得本来应该并行的流出现串行的现象。图1显示了传统GPU接口中出现的流串行结果示意图。图1左边显示了多个GPU的流执行过程中的并行的情况,图1右边显示了多个GPU的流执行过程中出现流之间串行的情况。在实际运行过程中该,出现的流之间的串行情形并不仅仅只有图1右侧所示的情形。这很显然是CPU在对各个GPU的流的控制过程中导致的问题,因此影响到GPU各自的数据处理速度。为此,人们期望消除上述问题,并提供一种稳定的流并行控制系统。此外,由于传统的GPU接口在执行流中的任务过程中,进入回调函数点位时,GPU会将控制权交还给CPU,CPU在运行完回调函数后,GPU流的控制才会从CPU返回到GPU,因此,在CPU执行回调函数过程中,GPU设备将处于等待状态。这种等待状态尽管时间不长,但是对GPU进行数据处理依然是一种时间的浪费,降低了GPU处理数据的效率。因此,人们希望消除这种低效率的情形。
技术实现思路
为了解决上述问题,本公开提供了一种多流并行控制系统,包括主机线程组件、多个任务流组件以及与任务流组件数量对应的数量的线程回调组件,其中所述主机线程组件包括第一执行体和第二执行体,所述第一执行体将一个计算任务插入到多个任务流中的指定任务流中,以及所述第二执行体在每个计算任务被插入之后向指定任务流中插入包含事件以及回调函数的流回调结构体以及同时向线程回调组件插入流回调结构体;所述任务流组件包括任务执行体以及事件执行体,所述任务执行体用于执行第一执行体所插入的任务,所述事件执行体用于执行所插入的流回调结构体所包含的事件;以及所述线程回调组件,其对应每个任务流组件配置,包括流回调结构体执行体,流回调结构体执行体被插入的流回调结构体,从而用于在任务流组件中的事件执行体执行完毕时执行由流回调结构体中所包含的回调函数。根据本公开的流并行控制系统,其中所述事件执行体在事件执行完毕后修改事件结果标记,所述线程回调组件的流回调结构体执行体在经由线程信道获知所述事件结果标记修改时,执行流回调结构体中所包含的回调函数,并向主机线程组件发送事件执行完毕的消息。根据本公开的另一个方面,提供了一种多流并行控制方法,包括:针对每个任务流,将计算任务异步地插入到所述任务流中;初始化流回调结构体,所述流回调结构体包含的经过初始化的事件以及回调函数;将经过初始化的流回调结构体异步地插入所述任务流中的每个计算任务之后;将经过初始化的流回调结构体插入线程回调组件的回调线程中;所述回调线程在接收到任务流中的事件执行完成的消息时,线程回调组件执行流回调结构体中的回调函数;以及重复以上步骤。根据本公开的流并行控制方法,其中所述事件在被执行完毕后,所述事件的初始值被修改,从而所述线程回调组件通过经由线程信道获知事件初始值的修改而获取事件执行完毕的消息。采用本公开的并行控制系统及其方法。由于线程回调组件的针对每个任务流组件单独设置,因此将各个任务流的执行过程完全分离开,从而彼此不受影响,消除了流串行的可能性。并且,由于线程回调组件执行回调函数以任务流中每个任务之后的事件执行完毕为前提,因此,减少了GPU设备端在进行数据处理过程中被主机线程组件控制的时间,尤其是消除了主机线程组件在确认任务是否执行完毕时GPU设备端等待的时间,从而优化了GPU的效率。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面将参考附图通过实施例来详细介绍本公开,附图中:图1所示的是现有流并行控制结果示意图;图2所示的是根据本公开的流并行控制系统的原理示意图;以及图3所示的根据本公开的流并行控制方法的流程示意图。具体实施方式下面结合实施例和附图对本专利技术做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能设备之一可以被称为第一执行体也可以被称为第二执行体,类似地,两个可能设备的另一个可以被称为第二执行体也可以被称为第一执行体。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。如图1所示,在现有的深度学习计算系统中,多采用GPU来解决大量简单重复的计算任务,并采用多GPU进行并行处理。现有的英伟达(NVIDIA)提供的接口组件会出现图1右侧所示的多个GPU设备所执行的任务流不能并行,尤其是会出现多个任务流彼此之间出现串行的情形。尽管不清楚这种多任务流串行导致的原因,专利技术人进行了各种改进,以便消除图1右侧所示的情形。图2所示的是根据本公开的多流并行控制系统的原理示意图。如图2所示,主机线程组件10包括任意数量的执行体11、12、13、….1N,用于执行各种操作过程。其中第一执行体11基于预定的指令,将分配给GPU执行的任务插入GPU所述的任务流中。具体而言,第一执行体11将任务插入任务流组件30所控制的任务流中,并任务流组件30指令任务执行体31执行所插本文档来自技高网
...

【技术保护点】
1.一种多流并行控制系统,包括主机线程组件、多个任务流组件以及与任务流组件数量对应的数量的线程回调组件,其中所述主机线程组件包括第一执行体和第二执行体,所述第一执行体将一个计算任务插入到多个任务流中的指定任务流中,以及所述第二执行体在每个计算任务被插入之后向指定任务流中插入包含事件以及回调函数的流回调结构体以及同时向线程回调组件插入流回调结构体;所述任务流组件包括任务执行体以及事件执行体,所述任务执行体用于执行第一执行体所插入的任务,所述事件执行体用于执行所插入的流回调结构体所包含的事件;以及所述线程回调组件,其对应每个任务流组件配置,包括流回调结构体执行体,流回调结构体执行体被插入的流回调结构体,从而用于在任务流组件中的事件执行体执行完毕时执行由流回调结构体中所包含的回调函数。

【技术特征摘要】
1.一种多流并行控制系统,包括主机线程组件、多个任务流组件以及与任务流组件数量对应的数量的线程回调组件,其中所述主机线程组件包括第一执行体和第二执行体,所述第一执行体将一个计算任务插入到多个任务流中的指定任务流中,以及所述第二执行体在每个计算任务被插入之后向指定任务流中插入包含事件以及回调函数的流回调结构体以及同时向线程回调组件插入流回调结构体;所述任务流组件包括任务执行体以及事件执行体,所述任务执行体用于执行第一执行体所插入的任务,所述事件执行体用于执行所插入的流回调结构体所包含的事件;以及所述线程回调组件,其对应每个任务流组件配置,包括流回调结构体执行体,流回调结构体执行体被插入的流回调结构体,从而用于在任务流组件中的事件执行体执行完毕时执行由流回调结构体中所包含的回调函数。2.根据权利要求1所述的流并行控制系统,其中,所述事件执行体在...

【专利技术属性】
技术研发人员:袁进辉牛冲
申请(专利权)人:北京一流科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1