用于异构架构的数据处理系统及其方法技术方案

技术编号:22075551 阅读:24 留言:0更新日期:2019-09-12 14:05
本公开公开了一种用于异构架构的数据处理系统,包括:作业分解组件,用于将所需完成的作业分解为一系列由异构架构中执行体来执行的任务;任务拓扑图生成组件,在作业分解组件进行作业分解的同时,基于所分解的任务之间的固有关系,生成任务关系拓扑图,所述任务拓扑图的任务节点含有执行对应任务所需的全部节点属性;执行体创建组件,基于任务关系拓扑图在计算资源中为每个任务创建对应的执行体;以及执行体网络组件,包含含有各种所创建的执行体的一条或多条数据处理路径,其在接收实际作业数据时,将实际作业数据分片成为任务数据,所述任务数据被连续输入数据处理路径中,以便完成任务数据的处理。

Data Processing System for Heterogeneous Architecture and Its Method

【技术实现步骤摘要】
用于异构架构的数据处理系统及其方法
本公开涉及一种数据处理技术。更具体地说,本公开涉及一种用于异构架构的数据处理系统及其方法。
技术介绍
随着机器学习的发展以及人工神经网络的研究的逐步深入,深度学习的概念得到广泛的关注和应用。深度学习是一种特殊的机器学习,它采用网状层级结构来表达所学习的对象,通过简单概念来组合成抽象概念,通过简单概念计算来实现抽象的概念表达。目前,深度学习在图像识别、语音识别以及自然语言处理领域有了长足的进展。深度学习涉及的模型参数多,导致计算量巨大,而且训练数据的规模大,因此需要消耗较多的计算资源等特点。当前,无论是通用处理器GPU还是专用芯片TPU相对于CPU都强大了许多倍,但现实应用对计算力的渴求是无止境的,从业者需要以更快的速度,以更大规模的模型处理更大规模的数据,这单靠一个硬件设备无法满足。硬件的发展要受限于制造工艺(芯片面积,功耗,时钟信号传播范围)的限制,不可能无限制的提高一颗芯片的处理能力。因此,人们常常通过高速互联技术把多个高通量的设备连接在一起,协同完成大规模任务。一种常见的GPU集群架构,同一个节点(服务器)内部的GPU通过NVLink或者PCIe通信,多个节点通过高速以太网或者无限带宽(Infiniband)互联。Google内部TPUCloud的硬件部署中每个服务器管理若干个TPU,多个服务器通过高速互联技术连成大规模集群。如何使得多个互联的设备在一起高效工作,这给深度学习软件开发带来了严峻挑战。为此,本领域技术人员提出了数据并行是指把数据分成多份,每个设备处理一份,这样每个设备只需要处理整体数据的一小部分即可,系统运行时间从一个设备处理所有数据需要的时间降低到一个设备处理一小部分数据需要的时间,从而得到加速,这是大数据场景最常见的并行方式。例如,把4个训练样例等分成2份,分别分配给两个设备去处理,两个设备上持有同一份模型的两个拷贝。训练深度学习模型时,一个设备上的前向和后向计算可以独立开展,但每个模型上获得模型的更新梯度后需要在设备间同步,聚合成完整数据集上的梯度之后再做模型更新。数据并行特别适合卷积神经网络这种场景,卷积神经网络的模型由很多小的卷积核构成,模型体积小,从而设备间同步模型梯度时通信量较小。当前,所有框架都能很好的支持这种并行模式。但是模型很大的场景就不适合用数据并行了。在有些场景模型太大以至于使用数据并行通信开销太大,或者模型超过GPU显存容量。因此,对于模型很大的场景,本领域技术人员提出了模型并行。在这种情况必须对模型进行切分,每个设备上只完成一部分模型对应的计算,这称为模型并行。有人曾提出根据并行时传输数据还是传输模型的通信量大小来自动选择数据并行或模型并行。在模型并行模式下,通常一个GPU负责一部分输出神经元的计算,另一个GPU负责另一部分输出神经元的计算,相当于对矩阵进行分片,每个设备只完成一部分计算。因此,在模型并行时,不需要在设备间同步模型,但需要在设备间同步数据。当前绝大部分开源框架不支持模型并行,或者支持比较弱,需要非常微妙的调整才能高效执行。模型并行是业界公认的难题,但是人们也在持续进行艰难的探索。除了模型并行本身比较复杂之外,模型并行模式与其它并行模式的协同也非常复杂,需要小心的管理上下游之间的数据传输(路由)。以相邻的两层神经网络为例,第一个层次使用数据并行,第二个层次使用模型并行,那么在前向计算时,就需要把数据并行部分的结果经过复制(Copy)、Concat(用于连接两个或多个数组的方法)两层路由汇总到模型并行的两个设备上去,如果前后两层在不同的机器上执行,那么还需要通过跨机通信。如果这些复杂的数据路由需要用户手工参与管理,那么一方面过于复杂(想象一下数据并行和模型并行的各种组合模式),另一方面极易出错。理想的情况,这些复杂性应该由深度学习架构来处理,但非常可惜,现有已开源的深度学习架构都不支持这一功能。尽管上述各种并行处理方式使得数据处理速度提升了,但数据在设备之间搬运的速度并没有相对于传统的CPU集群有质的提升,譬如机器内部通信通过PCIe完成,机器之间即使采用最快的无限带宽互联,其带宽也要比GPU核(cores)访问片上内存(devicememory)慢上一到两个数量级。一个小批次的数据在GPU设备上处理的时间可能是数十毫秒,但这批数据从设备外部拷贝到设备上也要花上差不多量级的时间,这就意味着数据的搬运(datamovement)在分布式深度学习架构中在提高架构处理效率时必须得到足够的重视。因此,使得小批次的数据的移动尽可能保持在GPU上将会极大减少设备端与外部的数据通讯开销。最后,GPU高吞吐率的计算需要把计算所依赖的数据(输入数据或模型)首先搬运到显存(devicememory),而显存容量一般要远小于主存(hostmemory),因此使用GPU集群训练深度学习模型在处理大规模模型(譬如一个模型的容量或计算产生的中间数据超过显存容量)时,如何最好利用有限资源也带来了新的问题。例如,当一个神经元的输入来自另一个训练单元上的神经元的输出时,会产生通信开销。大多数情况下,模型并行带来的通信开销和同步消耗超过数据并行计算,因此加速不及数据并行。尽管混合并行是一种优化方案,可以在同一台机器上采用模型并行化(在GPU之间切分模型),在机器之间采用数据并行化。但是混合并行中每个GPU计算的模型参数需要进行交互,导致非常高数量级的交互开销,这会严重影响模型的学习效率。因此,从目前在本领域提出数据并行、模型并行以及混合并行技术手段看,大部分专用AI芯片的研发人员和用户通常只关注计算部分的功耗和效率,譬如怎么设计AI芯片让它能更高效的执行矩阵运算,然而比较少关注数据搬运、数据转发和路由的需求。但是,在基于多个芯片协同执行大规模任务时,数据搬运无论是从功耗还是延迟都非常显著。而且,随着GPU设备以及CPU的性能越来越高,执行体之间的数据的调度已经成为制约深度学习的效率的巨大因素。因此,如何降低各个GPU之间以及GPU设备端与CPU之间的数据调度的开销,正成为深度学习领域所面临的巨大问题。因此,人们期望获得一种用于异构架构的数据处理系统,其能够消除上述现有技术中的一种或多种技术问题,显出提高神经网络训练的速度,降低技术人员使用这种架构进行数据处理难度。
技术实现思路
本公开的目的在于提供一种解决至少上述问题之一,具体而言,本公开提供一种解决方案,使得作业数据在系统中的搬运和数据处理一样被同等重视,通过专门的执行体来实现数据搬运和路由,提高整个系统的数据运送效率。根据本公开的一个方面,提供了一种用于异构架构的数据处理系统,包括:任务拓扑图生成组件,用于将所需完成的作业分解为一系列由异构架构中执行体来执行的任务,并在作业分解的同时,基于所分解的任务之间的固有关系,生成任务关系拓扑图,所述任务拓扑图的任务节点含有执行对应任务所需的全部节点属性;执行体创建组件,基于任务关系拓扑图在计算资源中为每个任务创建对应的执行体;以及执行体网络组件,包含含有各种所创建的执行体的一条或多条数据处理路径,其在接收实际作业数据时,将实际作业数据分片成为任务数据,所述任务数据被连续输入数据处理路径中,以便完成任务数据的处理。根据本公开的用于异构架构本文档来自技高网
...

【技术保护点】
1.一种用于异构架构的数据处理系统,包括:任务拓扑图生成组件,用于将所需完成的作业分解为一系列由异构架构中执行体来执行的任务,并在作业分解的同时,基于所分解的任务之间的固有关系,生成任务关系拓扑图,所述任务拓扑图的任务节点含有执行对应任务所需的全部节点属性;执行体创建组件,基于任务关系拓扑图在计算资源中为每个任务节点创建对应的执行体;以及执行体网络组件,包含含有各种所创建的执行体的一条或多条数据处理路径,其在接收实际作业数据时,将实际作业数据分片成为任务数据,所述任务数据被连续输入数据处理路径中,以便完成任务数据的处理。

【技术特征摘要】
1.一种用于异构架构的数据处理系统,包括:任务拓扑图生成组件,用于将所需完成的作业分解为一系列由异构架构中执行体来执行的任务,并在作业分解的同时,基于所分解的任务之间的固有关系,生成任务关系拓扑图,所述任务拓扑图的任务节点含有执行对应任务所需的全部节点属性;执行体创建组件,基于任务关系拓扑图在计算资源中为每个任务节点创建对应的执行体;以及执行体网络组件,包含含有各种所创建的执行体的一条或多条数据处理路径,其在接收实际作业数据时,将实际作业数据分片成为任务数据,所述任务数据被连续输入数据处理路径中,以便完成任务数据的处理。2.根据权利要求1所述的用于异构架构的数据处理系统,其还包括作业描述组件,用于基于作业类型描述作业神经网络模型以及作业所需申请的资源。3.根据权利要求2所述的用于异构架构的数据处理系统,其中所述作业描述组件用于按照彼此区分分离方式从不同维度来描述作业,并且各个维度之间彼此正交。4.根据权利要求1所述的用于异构架构的数据处理系统,其中所述异构架构包括一个或多个中央处理单元以及至少一个与其相连的协处理器设备端。5.根据权利要求4所述的用于异构架构的数据处理系统,其中所述异构架构还包括连接多个中央处理单元之间的网关。6.根据权利要求1所述的用于异构架构的数据处理系统,其中所述任务拓扑图的节点含有执行对应任务所需的全部节点属性。7.根据权利要求6所述的用于异构架构的数据处理系统,其中所述全部节点属性包含指明节点所对应的任务所需的资源的资源属性以及触发任务执行的条件的条件属性。8.根据权利要求1-7之一所述的用于异构架构的数据处理系统,其中所述任务拓扑图生成组件包括冗余节点消除单元以及阻塞节点消除单元之一或其组合。9.根据权利要求1-7之一所述的用于异构架构的数据处理系统,其中每条所述数据处理路径包括一个或多个上游执行体和一个或多个下游执行体,每个下游执行体接收其上游执行体输出的经过处理的任务数据。10.根据权利要求1-7之一所述的用于异构架构的数据处理系统,其中所述执行体包括有限状态机和处理组件,处理组件每次在所述有限状态机满足预定条件时执行被创建时指定的任务。11.根据权利要求1-7之一所述的用于异构架构的数据处理系统,其中所述执行体包括消息仓,并通过消息仓接收其上游或下游执行体的消息,从而基于来自上游执行体的消息获取上游执行体所产生的任务数据以及基于来自下游执行体的消息而空置本地内存。12.根据权利要求1-7之一所述的用于异构架构的数据处理系统,其中所述执行体为搬运执行体或计算执行体。13.一种用于异构架构的数据处...

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

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

1